Red Hat Enterprise Linux 8的9种实时进程调度策略

你说的曾经没有我的故事 提交于 2019-12-18 12:18:27

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

RHEL 8使用是Linux内核版本是Kernel 4.18,其系统进程的实时调度策略有9种,查看ps的帮助手册即可查到:

# man ps |grep -A 10 policy

-    not reported
TS   SCHED_OTHER
FF   SCHED_FIFO
RR   SCHED_RR
B    SCHED_BATCH
ISO  SCHED_ISO
IDL  SCHED_IDLE
DLN  SCHED_DEADLINE
?    unknown value

实际上只有7种,not reported、unknown value可能只是开放的策略,允许用户自定义。查看进程时,可能专门指定查看进程的调度策略,如下:

# ps axo pid,comm,nice,cls --sort=-nice

Linux的进程调度意味着,它是CPU的重要助手,总是要为CPU挑选出下一个要执行的进程。在Linux,进程(process)、线程(thread)和任务(task)都差不多。根据POSIX的定义,进程相当于执行一个程序,特指执行程序时需要的名字空间、内存等资源;而线程则是指执行一行代码时需要的系统资源。即它们关注的对象不同。大家都应该知道,一个程序有很多行代码,几千行,几万行也不稀奇。

挑选进程的标准有两个:

一、调度策略(scheduling policy)

二、静态调度优先度(static scheduling priority)

看来,调度政策挺重要。那么,各种调度策略是什么意思呢?
TS   SCHED_OTHER

在要执行的进程之间,实行普通的轮巡。


FF   SCHED_FIFO


RR   SCHED_RR
B    SCHED_BATCH
ISO  SCHED_ISO
IDL  SCHED_IDLE
DLN  SCHED_DEADLINE
?    unknown value

 

 

 

 

 

 

参考资料:

1、https://access.redhat.com/articles/3078

2、http://man7.org/linux/man-pages/man7/sched.7.html

3、https://stackoverflow.com/questions/9392415/linux-sched-other-sched-fifo-and-sched-rr-differences

4、https://lwn.net/Articles/723248/

5、https://www.kernel.org/doc/html/v5.4/scheduler/sched-rt-group.html

6、https://www.cs.montana.edu/~chandrima.sarkar/AdvancedOS/CSCI560_Proj_main/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!