【推荐】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/
来源:oschina
链接:https://my.oschina.net/u/589241/blog/3144379