第22卷第l期
计算机应用
VoI.22.No.1
2002年1月
cor“PuterApplica【ions
Jan.2002
文章编号:1001—9081(2002)1—0042一03
Linux的进程调度
钟小玲,袁宏春
(电子科技大学计算机学院,四川成都610054)
摘要:描述了Ljnux进程调度的过程。L抽ux采用时间片轮转和可剥夺调度优先级相结合的调度策略,它把进程分成两类:实时进程和非实时进程。实时进程总是在非实时进程之前运行。
关键词:调度时机;调度策略;进程调度;优先级;时间片
中图分类号:7I粥12文献标识码:A
进程蠲度是操作系统的核心,调度算法的优劣直接关系TAsL辄)PPED:暂停状态,通过其它进程的信号才能被
到系统的运行效率。~个好的调度算法应该考虑很多方面:唤醒。
公平、有欢、响应时间、周转时间、吞吐量等等,但是这些因素TAskZ()BIE:僵死状态,大部分资源已经释放,进程终IL
之间又是相互矛盾的,最终的取台根据系统要达到的目标而前的一个过渡状态。,
定。本文以Linux操作系统为例,详细描述其进程嗣度策略,所有就绪进程处于同一个可运行队列中,即“nux只有以期对进程调度过程有更为感性的认识。
一个可运行队列,不存在多级调度队列。这是一个烈向循环1
Knux迸程调度时机
链表,0进程位于队首.并且。进程和当前运行进程始终在可运行队列中。
介绍进程词度策略之前,先了解“nux中何时引起进程
进程PcB中涉及进程调度的域:
倜度,即调度时机,有助于把握调度过程的发生。ur雌调度㈣dtask_目n℃t『
时机分两种情况。
主动调度:主动调度指显式调用sc}】edule()函数明确释放
v山mc
long“e止嘲ch。d
c硎,引起新一轮进程调度。一般发生在当前进程状态改变,
10ng
c邮mer;
例如:进程终止、进程睡眠等;进程对某些信号处理过程中等10ngm钟:等,
unsi印d
l∞g州1cy;
被动调度:被动调度指不显式调用删ule()函数,只是
u肼蝉甜10ngrL_州(Jn“;
将进程PcB中调度标志neeL鹏ej】ed置1,而每当中断处理和
系统调用返回时,核心都会主动查询r札豫dd的状态:如
);
NeeLrescl州域是进程调度标志.该域置位将引起新的果置位,则主动诃甩schedllle()函数。一般发生在新的进程产进程调度。c。叫er域是当前进程剩余的时间片值,随着进程
生时、某个进程优先级改变时、某个进程等待的资源可用被唤的执行,时间片逐渐减小,时间片用完引起进程调度。它是进醒时、当前进程时间片用完等等。
程的动态优先级,保证当前进程不会一直占有cPU,给其它进2
Ijnux进程调度策略
程披调度的机会。如果进程尚未终止,核心继续向该进程分配时间片,但是,是否立即重新分配时问片,即向(=0un【er域赋Lir呲采用时间片轮转和可剥夺诃度优先级相结台的调
值,则根据P曲cv域值不同而不同。时间片初值根据时钟频度簟略,每个进程都分配一定的时间片和优先级,凹u上始终
率}Iz的不同而采用不同的计算形式。当}亿=100时,时间是优先级最高的进程在运行。片初值等于((20一(Ni(:e))/4+1)。N妇域被称为调度量子,2】与进程调度相关的数据结构
它的取值范围是一20.J9。改变Mce域值,进程的动态优先u眦进程有以下几种状态:
级随之改变:当其取负值时进程优先级增加;取正值则降低优TAsK—m朋fN矾G:进程正在运行处于运行状态或者将要先级。
运行处于就绪状态。
un啦把进程分为实时(Red—time)进程和非实时
TAsK一肌邛RL庄哪LE:可中断睡眠,可以通过资源有效
(NonRd一血m)进程来处理。进程类型不同,调度策略也不
或信号唤醒。
TAslLL『NINl砷l册LE:不可中断睡眠.只能通过资源
同。蹦jcv域决定调度策略,它可以选择scHEn一呷瑾R、
sc}ⅡjⅡF伍D或Sc|ⅢnRR中的任一个值。特别是Poucy域
有效唤醒一
还可以加s(m功Y衄D.它不是一种漏度策略.而是表示进
收稿日期:200l一07—18
作者简介:钟小玲(】97】一),女,河南安珀市^,碗士研究阜,主要研究冉向:网络及其多媒体技术与应用i袁宏奉(1940J.男,湖北武汉
』、,教授,主要研究方向:网络驶其多媒体技术与应用.
万
方数据