提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、题目
在一个单CPU的处理机中,有P1,P3,P5三个作业,有两个IO设备IO1,IO2,并且能够实现抢先式多任务并行工作的多道程序环境中,投入运行优先级由高到低P5,P1,P3三个作业,他们使用设备的先后顺序和占用设备的时间分别为:
P1:IO2(10ms) CPU(10ms) IO1(30ms)CPU(10ms);
P3:IO1(30ms) CPU(10ms) IO2(30ms)CPU(10ms);
P5:CPU(20ms) IO1(30ms) CPU(10ms) IO2(15ms)
忽略其他的时间损耗,3个作业投入到全部完成的情况下。请计算IO2的设备利用率
二、解题步骤
0.分析:
由于是抢先式多任务并行环境,所以资源能抢到就占用,优先级高的会剥夺优先级低的进程持有的资源。同一设备每时刻只能被一个进程占用,
首先:三个进程并行执行,优先级高的P5抢占CPU成功,P1、P3分别抢占IO2、IO1成功;P5使用完CPU后,尝试占用IO1,发现P3在使用,但是我P5优先级高,直接抢占成功执行30ms,这30ms内P3一直阻塞。
对于P1进程使用完IO2后尝试占用CPU,发现优先级更高的进程P5正在使用,阻塞在这里,等待P5使用完后才尝试获取CPU。它获取CPU成功并使用10ms后开始尝试占用IO1,发现P5在使用IO1,于是又阻塞在这里,这里P3也阻塞在这里,而P1优先级高,所以等P5使用完后,先阻塞的P3并不是先获得IO1,而是又被P1阻塞在这里。后面执行过程类似…
P5执行一路无阻,神挡杀神,最先执行完。
1.图解:
横虚线为时间:三个进程结束时共耗时140个时间单位(ms),IO2耗时55个时间单位,CPU耗时70个时间单位,IO1耗时90个时间单位。
所以设备IO2 利用率=55÷140=0.3928
CPU利用率=70÷140=0.5
IO1利用率=90÷140=0.6428