单选题 假设当前计算机并发系统中有一个用户进程,它的工作流程如下图所示,再假设系统只有三个基本状态,用户进程具有最高优先级,采用不可抢先时间片轮转调度算法,时间片为20ms,其它进程不用磁盘及其它IO设备。则该进程运行完成所需时间是( )。
开始 CPU 磁盘读写 CPU 磁盘读写 CPU 结束
15ms 25ms 10ms 30ms 5ms
A.85ms B.140ms C.105ms D.110ms

【正确答案】 D
【答案解析】[解析] 本题考查考生对抢先式和非抢先式,以及时间片轮转调度算法的理解。根据题意,并发系统不止一个进程,所以它们会竞争CPU,考虑一个简单系统,只有用户进程是使用磁盘的,其它进程不用,所以磁盘的使用可以不用等待,由此,我们画出如下示意图,其中注意,CPU是不可抢夺的。
开始 15ms 20ms 20ms 10ms 20ms 20ms 5ms 结束
CPU CPU CPU
磁盘 磁盘
由于CPU不可抢夺,所以当用户进程从磁盘读写返回时,它不能抢夺其它正在运行的进程,必须等待,到下一个调度时机的时候,由于其优先级最高,所以可以占有CPU运行。同理分析,直到该进程运行结束。计算出总时间。注意本题中,进程运行少于20ms而主动出让CPU是可以的,并不是一定要到20ms才调度,我们所说的不可抢先是指被迫出让CPU的情形是不允许的。