进程 | 等待时间 | 需要的CPU时间 | 优先权 |
---|---|---|---|
P1P_1P1 | 30us | 12us | 10 |
P2P_2P2 | 15us | 24us | 30 |
P3P_3P3 | 18us | 36us | 20 |
由优先权可知,进程的执行顺序为P2P_2P2->P3P_3P3>P1P_1P1。P2P_2P2的周转时间为1+15+24=40us;P3P_3P3的周转时间为18+1+24+1+36=80us;P1P_1P1的周转时间为30+1+24+1+36+1+12=105us;平均周转时间为(40+80+105)/3=225/3=75us,因此选D。
进程P1P_1P1,P2P_2P2依次创建后进入队列Q1Q_1Q1,根据时间片调度算法的规则,进程P1P_1P1,P2P_2P2将依次被分配10ms的CPU时间,两个进程分别执行完一个时间片后都会被转入队列Q2Q_2Q2,就绪队列Q2Q_2Q2采用短进程优先调度算法,此时P1P_1P1还需要20ms的CPU时间,P2P_2P2还需要10ms的CPU时间,所以P2P_2P2会被优先调度执行,10ms后进程P2P_2P2执行完成,之后P1P_1P1再调度执行,再过20ms后P1P_1P1也执行完成。运行图表如下所示。
进程P1P_1P1,P2P_2P2的等待时间分别为图中的虚横线部分,平均等待时间=(P1P_1P1等待时间+P2P_2P2等待时间)/2=(20+10)/2,因此答案选C。
Ⅰ、进程控制块
Ⅱ、时钟中断处理程序
Ⅲ、进程就绪队列
Ⅳ、进程阻塞队列
在分时系统的时间片轮转调度中,当系统检测到时钟中断时,会引出时钟中断处理程序,调度程序从就绪队列中选择一个进程为其分配时间片,并且修改该进程的进程控制块中的进程状态等信息,同时将时间片用完的进程放入就绪队列或让其结束运行。Ⅰ、Ⅱ、Ⅲ正确。
阻塞队列中的进程只有被唤醒并进入就绪队列后,才能参与调度,所以该调度过程不适用阻塞队列。
多个进程可以共享系统中的资源,一次仅允许一个进程使用的资源称为临界资源。访问临界资源的那段代码称为临界区。
信号量是一个特殊的整形变量,只有初始化和PV操作才能改变其值。通常,信号量分为互斥量和资源量,互斥量的初值一般为1,表示临界区只允许一个进程进入,从而实现互斥。当互斥量等于0时,表示临界区已有一个进程进入,临界区外尚无进程等待;当互斥量小于0时,表示临界区中有一个进程,互斥量的绝对值表示在临界区外等待进入的进程数。同理,资源信号量的初值可以是任意整数,表示可用的资源数,当资源数小于0时,表示所有资源已全部用完,而且还有进程正在等待使用该资源,等待的进程数就是资源量的绝对值。
P操作即wait操作,表示等待某种资源直到可用。若这种资源暂时不可用,则进程进入阻塞态。注意,执行P操作时的进程处于运行态。
只有就绪进程能获得处理器资源,被唤醒的进程并不能直接转换为运行态。
互斥信号量的初值设置为1,P操作成功则将其减1,禁止其他进程进入;V操作成功则将其加1,允许等待队列中的一个进程进入。
与互斥信号量初值一般置1不同,用P,V操作实现进程同步时,信号量的初值应根据具体情况来确定。若期望的消息尚未产生,则对应的初值应设为0;若期望的消息已存在,则信号量的初值应设为一个非0的正整数。
P操作和V操作都属于原语操作,不可被中断。