好记性不如铅笔头

C && C++, kernel, 深入理解LINUX内核, 编程, 读书笔记

《深入理解LINUX内核》读书笔记:进程调度

备注:

1 本笔记是作者根据自己的理解简化和总结的,可能有遗漏或者错误,还请各位路过的大拿们指正。

2 本笔记中的所有截图版权归属于原作者所有。

调度策略:

Linux的调度基于 分时 技术,即多个进程以“时间多路复用”方式运行。

在linux中,调度算法可以明确的确认所有实时程序的身份,但是没有办法区分交互式程序和批处理程序。

进程的抢占:

调度算法:

普通进程的调度:

首先备注下:

1 静态优先级上决定了进程的基本时间片。

2 动态优先级决定了调度程序是否选择该进程抢占。

静态优先级和动态优先级的范围都是100-139,值越大优先级越低。新进程总是继承其父亲的静态优先级。

=====

===

平均睡眠时间越久,bonus就越大,那么动态优先级就越高(值越小)。

活动和过期进程:

实时进程的调度:

实时进程永不过期,因此如果有实时进程在,那么普通进程就没有执行的机会,因为实时进程优先级(1-99)永远高于普通进程(100-139)。即使时基于时间片的实时进程,当当前实时进程时间片耗尽后,它会自动重新获取时间片,但是它会被放在运行队列链表的末尾,这时其他实时进程会有机会运行,但是普通进程仍无法运行。

Leave a Reply

3 × 4 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据