问答题
阅读下列说明和图表,回答问题1到问题3。
[说明]
在多道程序系统中,各个程序之间是并发执行的,共享系统资源。CPU需要在各个运行的程序之间来回地切换,这样的话,要想描述这些多道的并发活动过程就变得很困难。为此,操作系统设计者提出了进程的概念。
进程是具有独立功能的程序关于某个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位。
问答题
进程在生命消亡前处于且仅处于三种基本状态之一。运行态(Running):进程占有CPU,并在CPU上运行。就绪态(Ready):一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)。等待态(Blocked):指进程因等待某种事件的发生而暂时不能运行的状态,即使CPU空闲,该进程也不可运行。指出如下进程状态转换图(图4-1)中“状态1”~“状态3”分别是什么状态。
[图4-1]
[*]
【正确答案】状态1:运行态,状态2:就绪态,状态3:等待态。
【答案解析】根据问题1中对进程3种状态的描述,易于判断状态1:运行态,状态2:就绪态,状态3:等待态。
问答题
如果单CPU系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个,最少几个:等待进程最多几个,最少几个?
【正确答案】运行进程最多1个,最少0个;就绪进程最多N-1个,最少0个;等待进程最多N个,最少0个。
【答案解析】问题1给出了三种状态的具体表现形式。对于单CPU系统,运行的进程最多只有1个,最少可以是0个(当所有进程都处于阻塞态时)。就绪进程最多只可能有N-1个,因为有就绪进程的话,肯定有运行进程,最少0个。等待进程最多可有N个,最少可为0个(1个运行,N-1个就绪)。
问答题
进程调度算法解决以何种次序对各就绪进程进行处理机的分配以及按何种时间比例让进程占用处理机。
常见的的调度算法有:先进先出FIFO(按照进程进入就绪队列的的先后次序选择)、时间片轮转RR(进程轮流运行一个时间片)、最高优先级HPF(分配给具有最高优先级的就绪进程)。
在实际系统中,调度模式往往是几种调度算法的结合。某系统按优先级别设置若干个就绪队列,对级别较高的队列分配较小的时间片S
i(i=1,2,…,n),即有S
1<S
2<…
n。除第n级队列是按RR法调度之外,其他各级队列均按FIFO调度。系统总是先调度级别较高的队列中的进程,仅当该队列为空时才去调度下一级队列中的进程。当执行进程用完其时间片时便被剥夺并进入下一级就绪队列。当等待进程被唤醒时,它进入其优先级相应的就绪队列,若其优先级高于执行进程,便抢占CPU执行进程。
现有五个进程P1、P2、P3、P4、P5,它们同时依次进入就绪队列,它们所需的CPU时间和优先级如图4-2所示。注意,优先数越大优先级越低。
[图4-2] 进程 | CPU时间 | 优先数 |
P1 | 10 | 3 |
P2 | 1 | 1 |
P3 | 2 | 3 |
P4 | 1 | 4 |
P5 | 5 | 2 |
在该系统中,假定不同级别的时间片为S1=2i-1(i为优先数),请给出五个进程的CPU占用序列,并注明每次占用所用的时间。
从下列的3道试题(试题五至试题七)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。
【正确答案】P2(1)、P5(2)、P1(4)、P3(2)、P5(3)、P4(1)、P1(6)。括号内数字表示该进程还需的执行时间。
【答案解析】根据题意,开始调度前,各个级别队列为:
· 优先数1:P2(1),时间片为1单位;
· 优先数2:P5(5),时间片为2单位;
· 优先数3:P1(10)、P3(2),时间片为4单位;
· 优先数4:P4(1),时间片为8单位。
根据调度策略“系统总是先调度级别较高的队列中的进程,仅当该队列为空时才去调度下一级队列中的进程;当执行进程用完其时间片时便被剥夺并进入下一级就绪队列”,系统先调度P2进程,执行1单位时间,时间片到,P2亦执行完毕,各个级别队列为:
· 优先数1:时间片为1单位;
· 优先数2:P5(5),时间片为2单位;
· 优先数3:Pl(10)、P3(2),时间片为4单位;
· 优先数4:P4(1),时间片为8单位。
系统调度P5进程,执行2单位时间,进程P5还需3单位时间,进入优先数3队列,各个级别队列为:
· 优先数1:时间片为1单位;
· 优先数2:时间片为2单位;
· 优先数3:P1(10)、P3(2)、P5(3),时间片为4单位;
· 优先数4:P4(1),时间片为8单位。
系统调度P1进程,执行4单位时间,进程P1还需6单位时间,进入优先数4队列;继续调度P3进程,执行2单位时间,进程P3执行完毕;调度进程P5,执行3单位时间,执行完毕,各个级别队列为:
· 优先数1:时间片为1单位;
· 优先数2:时间片为2单位;
· 优先数3:时间片为4单位;
· 优先数4:P4(1)、P1(6),时间片为8单位。
系统调度P4进程,执行l单位时问,进程P4执行完毕;继续调度P1进程,执行6单位时间,进程P1执行完毕。
至此,可得五个进程的CPU占用序列以及其占用时间。P2(1)、P5(2)、P1(4)、P3(2)、P5(3)、P4(1)、P1(6)。