1、假设一个系统中有5个进程,它们处于就绪状态的时刻和估计运行时间如下表所示,忽略I/O以及其它开销时间,若分别按先来先服务,最短进程优先,最短剩余时间优先、响应比优先、时间片轮转(时间片=1)、非抢占多级反馈队列(第i级队列的时间片=2的i次方-1)以及抢占的多级反馈队列调度算法进行CPU调度,请给出各进程的调度顺序、完成时间、周转时间。
2、在单CPU和两台I/O设备(I1,I2)的多道程序设计环境下,同时投入3个作业Job1 、Job2、 Job3运行。这3个作业对CPU和I/O设备的使用顺序和时间如下所示:
Job1: I2(30ms);CPU(10ms); I1 (30ms);CPU(10ms); I2(20ms)
Job2: I1 (20ms);CPU(20ms); I2(40ms)
Job3: CPU(30ms); I1 (20ms);CPU(10ms); I1(10ms)
假定CPU、 I1、I2都能并行工作, Job1优先级最高,Job2次之,Job3最低,优先级高的作业可以抢占优先级低的作业的CPU但不可抢占I1,I2。求:
(1)3个作业从投入到完成分别需要的时间。
(2)从投入到完成的CPU利用率。
(3)I/O设备利用率。
3、【2016统考真题】某进程调度程序采用基于优先数(priority)的调度策略,即选择优先数最小的进程运行,进程创建时由用户指定一个nice作为静态优先数。为了动态调整优先数,引入运行时间cpuTime和等待时间waitTime,初值均为0。进程处于执行态时,cpuTime定时加1,且waitTime置0;进程处于就绪态时,cpuTime置0, waitTime定时加1。请回答下列问题:
1 )若调度程序只将nice的值作为进程的优先数,即priority = nice,则可能会出现饥饿现象。为什么?
2 )使用nice, cpuTime和waitTime设计一种动态优先数计算方法,以避免产生饥饿现象,
并说明waitTime的作用。
1)由于采用了静态优先数,当就绪队列中总有优先数较小的进程时,优先数较大的进程一直没有机会运行,因而会出现饥饿现象。
2)优先数 priority 的计算公式为 priority=nice+k1×cpuTime-k2×waiTime,其中k1>0,k2>0,用于分别调整cpuTime 和 waitTime 在 priority 中所占的比例。waitTime 可使长时间等待的进程优先数减少,从而避免出现饥饿现象。