在一个单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

参考技术A CPU也叫中央处理器,是电脑的核心硬件。其功能主要是计算解码计算机指令以及处理计算机软件中运行的数据。电脑中所有操作都由CPU负责读取指令,并对指令译码并执行指令。
计算机要运行应用程序,就先把程序读取加载到内存中,程序加载完毕,就开始执行存储和计算的指令,
参考技术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的计算机系统中,采用可剥夺式(也称抢占式)优先级的主要内容,如果未能解决你的问题,请参考以下文章

计算机系统结构体系

第七次读书笔记

操作系统介绍

计算机发展史 进程

Linux系统的进程调度

多进程浏览器多线程页面渲染与js的单线程