1、 设有三个进程,它们的提交时间及运行时间如下表,若采用短进程优先调度策略,试给出进程串
行运行时的调度次序及平均周转时间。 作业 提交时间 运行时间 J1 0 4 J2 2 8 J3 3 5 答:
进程 提交时间 开始时间 完成时间 周转时间 J1 0 0 4 4 J2 2 9 17 15 J3 3 4 9 6 平均周转时间=(4+15+6)/3=25/3=8.33 各进程的调度次序: J1,J3,J2
2、 设有三道作业,它们的提交时间及运行时间如下表,若采用短作业优先调度策略,试给出作业单
道串行运行时的调度次序及平均周转时间。 (8分)
作 业 提交时间(单位:基本时间单位) 运行时间(单位:基本时间单位) J1 J2 J3
作业 提交时间 开始时间 完成时间 周转时间 J1 0 0 7 7 J2 2 7 11 4 J3 3 11 16 13
平均周转时间=(7+9+13)/3=29/3=9.67 (4分) 各作业的调度次序:
1
0 2 3 7 4 5 (3分)
3、 假定在单CPU条件下,有A,B,C,D四个作业依次到达(后面的作业依次比前一作业迟到一个时
间单位)。四个作业分别需要运行11,6,2和1个时间单位,如果系统采用FCFS的调度算法,请计算: (1) (2) (3) (4) 解答:
作业 作业到达时间 运行时间 完成时间 周转时间 带权周转时间 A 0 11 11 11 1 B 1 6 17 16 2.67 C 2 2 19 17 8.5 D 3 1 20 17 17
平均周转时间T= 15.25 平均带权周转时间 W= 7.29
4、 假设在单处理机上有五个(1,2,3,4,5)进程争夺运行,其运行时间分别为10、1、2、1、5(秒),
其优先级分别为4、1、3、5、2;在某时刻这五个进程按照1,2,3,4,5的顺序同时到达。试回答: (1) 给出这些进程分别使用轮转法(时间片为2秒)、非剥夺优先级调度法时的运行进度表。 (2) 在上述各算法的调度下每个进程的周转时间和等待时间为多少? 解答:
(1) 轮转法运行进度表:
P1 P2 P3 p4 P5 P1 P5 P1 P5 P1
0 2 3 5 6 8 10 12 14 15 19
非剥夺优先级调度法运行进度表: 0 1 11 13 18 19
(2) 轮转法周转时间和等待时间: 作业 1 2
各作业的周转时间 系统此时的平均周转时间; 各作业的带权周转时间; 系统此时的平均带权周转时间;
P4 P1 P3 P5 P2
运行时间(小时) 周转时间(小时) 10 1 19 3
等待时间(小时) 0+6+2+1=9 2 2
3 4 5 2 1 5 5 6 15 3 5 6+2+2=10 非剥夺优先级调度法周转时间和等待时间: 作业 优先级 1 2 3 4 5 4 1 3 5 2 调度顺序 2 5 3 1 4 运行时间(小时) 周转时间(小时) 10 1 2 1 5 11 19 13 1 18 等待时间(小时) 1 18 11 0 13
5、 画出进程的五种状态变化图,并说明状态变化原因。
答:变化原因在图上说明。
6、 某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外
的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题: (1)用PV(或wait和signal)操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。
(2)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。
(3)根据所定义的信号量,把应执行的PV(或wait和signal)操作填入下述括号中,以保证进程能够正确地并发执行。
Buyi(I=1,2,……) { Do{
3
进入售票厅; ( ) 购票;
( )
退出; }while(1)
} 解答:
(1)定义一信号量S,初始值为20。 (1分) 意义:
S>0 S的值表示可继续进入售票厅的人数 (1分) S=0 表示售票厅中已有20名顾客(购票者) (1分) S<0 |S|的值为等待进入售票厅的人数 (1分) (2) S的最大值为20 (1分) S的最小值为20-n (1分) (3) 上框为P(S) (1分) 下框为V(S) (1分)
注:信号量的符号可不同(如写成t),但使用时应一致(即上述的s全应改成t)。
7、 现为某临界资源设一把锁w,当w=1时,表示关锁,w=0时,表示锁已打开,试写出开锁和关锁
的原语,并说明如何利用它们去控制对该临界资源的互斥访问?(7分) ① 开锁原语unlock(w)如下: unlock(w):w:=0 关锁原语lock(w)如下: Lock(w):
L: if w=1 then go to L e else w:=1; (4分)
② 可设临界段cs放在两者之间来实现互斥,即 Lock(w); cs;
unlock(w) (3分)
4
8、 有两个用户进程A和B,在运行过程中都要使用系统中的一台打印机输出计算结果。
(1) 试说明A、B两进程之间存在什么样的制约关系?
(2) 为保证这两个进程能正确地打印出各自的结果,请用信号量和P、V操作写出各自的有关申
请、使用打印机的代码。要求给出信号量的含义和初值。
解答:(1) A、B两进程之间存在互斥的制约关系。因为打印机属于临界资源,必须一个进程使用
完之后另一个进程才能使用。(2分)
(2)mutex:用于互斥的信号量,初值为1。(2分) 进程A 进程B ... ... P(mutex) P(mutex) 申请打印机 申请打印机 使用打印机 使用打印机 V(mutex) V(mutex) ... ...
9、 进程process_A 进行计算后通过进程process_B输出,这两个并发进程的程序如下:int Count=0; process_A() { do
{ Count = Count + 10 }while(1) }
process_B() { do
{ print(Count) Count =0; }while(1) } 请回答:
(1) 指出这两个并发进程的临界区。
(2) 指出它们并发执行时可能出现的与时间有关的错误。 (3) 用信号量机制进行管理,写出它们能正确并发执行的程序。 解答:
(1) 临界区为process_A():Count = Count + 10, process_B():print(Count) Count =0; (2)错误顺序(不是唯一的) ① print(Count)
5