可剥夺式处理机调度问题实例及进程调度算法

Posted 爱橙子的OK绷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可剥夺式处理机调度问题实例及进程调度算法相关的知识,希望对你有一定的参考价值。

问题一:

在0时刻,进程A进入系统,按照这个顺序,在30时刻,进程B和进程C也抵达;在90时刻,进程D和进程E也抵达。一个时间片是10个单元。(进程A需要占用CPU 50个单元;进程B需要占用CPU 40个单元;进程C需要占用CPU 30个单元;进程D需要占用CPU 20个单元;进程E需要占用CPU 10个单元;)如果按照短作业优先级的方法,哪个进程最后结束?

问题一求解:

解析:短作业优先=最短剩余时间作业优先,即是可剥夺式处理机调度问题,支持抢占。!!!!

看图一目了然。

如果按短作业优先级的方法,进程B最后结束。

问题二:

某多道程序设计系统配有一台处理器和两台外设IO1和IO2,现有3个优先级由高到低的作业J1、J2和J3都已装入了主存,它们使用资源的顺序和占用时间分别是:

J1:IO2(30ms),CPU(10ms),IO1(30ms),CPU(10ms) J2:IO1(20ms),CPU(20ms),IO2(40ms)
J3:CPU(30ms),IO1(20ms) 

处理器调度采用可抢占的优先级算法,忽略其他辅助操作时间,回答下列问题:
(1)分别计算作业J1、J2和J3从开始到完成所用的时间
(2)3个作业全部完成时CPU的利用率

问题二求解:

注意:CPU不可同时使用(单CPU);每个IO设备也不可同时使用,如IO1。!!!!

分析:
(1)J1占用IO2传输30ms时,J1传输完成,抢占J2的CPU,运行10ms,再传输30ms,运行10ms,完成。由图可见,J1从开始到完成所用的时间为:30+10+30+10=80ms。

J2与其并行地在IO1上传输20ms,抢占J3的CPU,J2运行10ms后,被J1抢占CPU,等待10ms之后,J2再次得到CPU,运行10ms,J2启动IO2传输,40ms完成。由图可见,J2从开始到完成所用的时间为:20+10+10+10+40=90ms。

J3在CPU上执行20ms,被J2抢占CPU,等待30ms,再运行10ms,等待10ms,J3启动IO1进行20ms的传输,完成。J3从开始到完成所用的时间为:20+30+10+10+20=90ms。

(2)三个作业全部完成时,CPU的利用率为:(10+20+30+10)/90=7/9=78%。

(3)三个作业全部完成时,外设IO1的利用率为:(20+30+20)/90=7/9=78%。

扩展知识:操作系统进程调度算法

FCFS: 先来先服务,也可以称为先进先出轮转:以一个周期性间隔产生时钟中断,此时当前正在运行的进程被置于就绪队列,基于FCFS选择下一个就绪进程运行。

SPN:最短进程优先,下一次选择所需处理时间最短的进程SRT:最短剩余时间优先,总是选择预期剩余时间最短的进程;

FPF:优先权调度算法类型,当把该算法用于作业调度时,系统将从后备队列中选择若干个优先权最高的作业装入内存。当用于进程调度时,该算法是把处理机分配给就绪队列中优先权最高的进程;又分为:
1)非抢占式优先权算法。在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。
2)抢占式优先权调度算法:在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。

HRRN:在批处理系统中,短作业优先算法是一种比较好的算法,其主要的不足之处是长作业的运行得不到保证。如果我们能为每个作业引入前面所述的动态优先权,并使作业的优先级随着等待时间的增加而以速率a 提高,则长作业在等待一定的时间后,必然有机会分配到处理机。最高响应比优先,R=(w+s)/s,其中R表示响应比,w表示已经等待的时间,s表示期待服务的时间;

时间片轮转法:在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU 分配给队首进程,并令其执行一个时间片。时间片的大小从几ms 到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。
多级反馈队列调度算法:它是目前被公认的一种较好的进程调度算法。进程第一次进入系统是放置于RQ0,第一次被强占并返回就绪态时,放入RQ1,以后每次被强占就下降一级。如果进程处于最低等级,则不再降级,反复返回到该队列,直到结束。

以上是关于可剥夺式处理机调度问题实例及进程调度算法的主要内容,如果未能解决你的问题,请参考以下文章

进程调度算法1——FCFS、SJF、HNNR

处理器调度算法

操作系统笔记三 进程管理处理机调度及典型的调度算法

操作系统进程

操作系统进程

linux内核 进程调度