2026考公/考研寄宿

高三式 半军事化 强化管理 一战成硕

2026考研专业课资料

覆盖全国7万+初试/复试专业课资料

134 5670 7733

各地信息

操作系统进程调度算法 订阅+ 进入阅读模式

2024-09-25 09:15 来源:刘老师

操作系统进程调度算法决定了进程获取CPU的顺序,五种经典算法各有适用场景,其性能对比如下:

1. 先来先服务(FCFS):按进程到达顺序调度,实现简单但可能导致"短作业等待长作业"现象。例如:进程A(运行时间10ms,0时刻到达)、B(5ms,1ms到达),FCFS调度顺序A→B,平均周转时间为(10+14)/2=12ms,若B先运行则为(5+15)/2=10ms。适用于CPU繁忙型作业,不适用于交互系统。

2. 短作业优先(SJF):优先调度运行时间最短的进程,能最小化平均周转时间,但可能导致长作业饥饿。需注意"最短剩余时间优先"(SRTN)是SJF的抢占式版本,当新进程到达且剩余时间更短时,会抢占CPU。例如:进程C(8ms,0到达)、D(4ms,2ms到达),非抢占SJF周转时间(8+10)/2=9ms,抢占式则为(5+10)/2=7.5ms。

3. 优先级调度:按进程优先级(静态/动态)调度,静态优先级创建时确定,动态优先级随等待时间增加而提高(避免饥饿)。实时系统常用抢占式优先级调度,确保紧急任务优先执行。

4. 时间片轮转(RR):适用于分时系统,将CPU时间划分为固定时间片(10-100ms),进程按到达顺序轮流占用CPU,时间片用完则就绪队列尾部等待。时间片过小会增加上下文切换开销,过大则退化为FCFS。例如时间片2ms,进程E(5ms)、F(3ms),调度顺序E→F→E→F→E,周转时间(9+7)/2=8ms。

5. 多级反馈队列:结合RR和优先级调度,设置多个队列(优先级依次降低),高优先级队列时间片小。新进程入最高级队列,时间片用完未完成则入低一级队列;低优先级队列进程仅在高优先级队列为空时运行,可动态提升等待久的进程优先级。兼顾短作业快速响应和长作业不饥饿,是现代OS常用调度策略(如Linux CFS)。

选择算法时需权衡公平性、响应时间、吞吐量等指标,实时系统侧重截止时间,分时系统侧重响应速度,批处理系统侧重吞吐量。

THE END  

声明:本站点发布的来源标注为“思研教育”的文章,版权均属思研教育所有,未经允许不得转载。

免责声明:本站所提供试题均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。