在一个单CPU的计算机系统中,采用可剥夺式(也称抢占式)优先级
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一个单CPU的计算机系统中,采用可剥夺式(也称抢占式)优先级相关的知识,希望对你有一定的参考价值。
在一个单CPU的计算机系统中,采用可剥夺式(也称抢占式)优先级的进程调度方案,且所有任务可以并行使用I/O设备。下表列出了三个任务T1、T2、T3的优先级和独立运行时占用CPU与I/O设备的时间。如果操作系统的开销忽略不计,这三个任务从同时启动到全部结束的总时间为( )ms,CPU的空闲时间共有( )ms
本题考查的是操作系统进程调度方面的知识。
根据题意可知,三个任务的优先级T1>T2>T3, 所有任务可以并行使用I/O设备:说明不同任务的I/O可以同时进行, 进程调度过程如下图所示。分析 如下:
t0时刻:进程调度程序选任务T1投入运行,运行10ms,任务T1占用I/O;
t1时刻:此时由于CPU空闲,进程调度程序选任务T2投入运行,运行10ms后任务T2占用I/O。此时,t1与t2时刻任务T1占用I/O,任务T2在运行。
t2时刻:此时由于CPU空闲,进程调度程序选任务T3投入运行,运行3ms后,任务T1结束占用I/O。此时,t2与t3时刻任务T1、任务T2占用I/O,任务T3在运行。
t3时刻:由于系统采用可剥夺式优先级的进程调度方案,所以,强行地将任务T3占用的CPU剥夺,分配给任务T1。在运行5ms后到t4时刻任务T1运行完毕。此时,t3与t4时刻任务T1在运行,任务T2等待,任务T3占用I/O。
t4时刻:将CPU分配给T3运行5ms后,到t5时刻任务T2结束占用I/O,强行地将任务T3占用的CPU剥夺,任务T2开始运行。此时,t4与t5时刻任务T1结束,任务T2占用I/O,任务T3在运行。
t5时刻:运行5ms后,到t6时刻任务T2运行完毕。
t6时刻:系统将CPU分配给任务3,运行2ms后,到t7时刻任务T3占用I/O。
t7时刻到t6时刻:共计13ms,没有待运行的任务。
t8时刻:任务T3结束占用I/O,运行5ms后,到t9时刻任务T3运行结束。
从以上分析可见,这三个任务从同时启动到全部结束的总时间为58ms,CPU的空闲时间共有13ms
计算机要运行应用程序,就先把程序读取加载到内存中,程序加载完毕,就开始执行存储和计算的指令, 参考技术B 58ms
13ms
可剥夺式处理机调度问题实例及进程调度算法
问题一:
在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,以后每次被强占就下降一级。如果进程处于最低等级,则不再降级,反复返回到该队列,直到结束。
以上是关于在一个单CPU的计算机系统中,采用可剥夺式(也称抢占式)优先级的主要内容,如果未能解决你的问题,请参考以下文章