处理机调度的三道经典例题

作业的两种调度问题
在单CPU环境下,设有4道作业,它们的提交时间及执行时间(时间单位:小时)如下:
在这里插入图片描述
试计算采用先来先服务调度算法(FCFS)和最短作业优先调度算法(SJF)时的平均周转时间和平均带权周转时间,并指出它们的调度顺序。
问题解决:
首先要明白几个概念:
一项作业的完成时间=上一项作业的完成时间+这项作业的执行时间
一项作业的周转时间=这项作业的完成时间–这项作业的到达时间
一项作业的带权周转时间=这项作业的周转时间/这项作业的执行时间
1.先来先服务
当在作业调度中采用该算法时,每次从作业后备队列中选择一个等待时间最长的作业调入内存,并为其分配资源,建立进程,然后放入就绪队列。
故此题的调度顺序为1,2,3,4。
在这里插入图片描述
平均周转时间:T=(120+160+170+178)/4=157
平均带权周转时间:W=(1+2.67+5.67+9.89)/4=4.81
2.短作业优先
是以进入系统的作业所要求的CPU运行时间的长短为标准,总是选取预计计算时间最短的作业优先调度的算法。其从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。
故此题的调度顺序为1,4,3,2。
在这里插入图片描述
平均周转时间:T=(120+208+128+88)/4=136
平均带权周转时间:W=(1+3.47+4.27+4.89)/4=3.41
进程状态图转化问题
进程状态转换图如下图所示,请说明:
在这里插入图片描述
(1)引起变迁0、变迁1、变迁2、变迁3、变迁4、变迁5的典型事件分别有哪些?
(2)下述三种状态变迁能否发生?为什么?
1)变迁2→(引起)变迁1
2)变迁3→(引起)变迁2
3)变迁4→(引起)变迁1
问题解决:
(1)变迁0:进程创建,典型事件:用户登录、作业调度、提供服务、应用请求。
变迁1:就绪T运行,典型事件:CPU空闲,就绪态进程被调度程序选中。
变迁2:运行T就绪,典型事件:正在运行的进程用完了本次分配给它的时间片、在采用抢占式调度方式的系统中,正运行进程的处理机被优先级更高的就绪进程所抢占。
变迁3:运行T阻塞,运行态进程因某种条件未满足而放弃对CPU的占用,典型事件:请求IO、申请资源失败、新数据尚未到达、等待新任务的到达。
变迁4:阻塞T就绪,阻塞态进程所等待的事件发生了,典型事件: I/O 操作完成、等待的资源得到、新数据到达、新任务的到达。
变迁5:进程撤销,典型事件:进程任务完成、发生异常事件导致进程结束、外界干预。
(2)对于下述状态变迁:
2->1:可以。运行进程用完了本次分配给它的时间片,让出CPU发生变迁2,引起进程调度,从就绪队列中选出一个进程投入运行发生变迁1。
3->2:不可以。任何时候-一个进程只能处于-一种状态,它既然由运行态变为阻塞态发生变迁3,就不能再变为就绪态发生变迁
4->1:可以。某阻塞态进程等待的事件出现了发生变迁4,而且此时就绪队列为空,该进程进入就绪队列后马上又被调度运行发生变迁2,或在采用抢先式调度方式的系统中,某一阻塞态进程等待的事件出现了发生变迁4,而其优先级又高于正运行进程,立即弓|起进程调度抢占处理机发生变迁1。
系统效率问题
若程序Pa和Pb单独执行时分别用Ta和Tb,Ta=1小时,Tb=1.5小时,其中处理器工作时间分别为ta=18分钟,tb=27分钟。如果采用多道程序设计方法,让Pa,Pb并发执行,假定处理器利用率达到50%,另加15分钟系统开销,请问系统效率能提高百分之几?
问题解决:
在多道系统下Pa和Pb共用CPU时间(18+27)/50%=90(分钟)
系统效率的提高:
[(60+90)-(90+15)]/(60+90)=45/150=30%

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值