当前位置:首页 > 《操作系统》试题库-综合题
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 0 2 3 7 4 5 作业 提交时间 开始时间 完成时间 周转时间
J1 0 0 7 7 J2 2 7 11 4 J3 3 11 16 13
平均周转时间=(7+9+13)/3=29/3=9.67 (4分) 各作业的调度次序:
(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) 轮转法运行进度表:
1
P1 P2 P3 p4 P5 P1 P5 P1 P5 P1
0 2 3 5 6 8 10 12 14 15 19 非剥夺优先级调度法运行进度表:
P4 P1 P3 P5 P2 0 1 11 13 18 19 (2) 轮转法周转时间和等待时间: 作业 1 2 3 运行时间(小时) 10 1 2 19 3 5 周转时间(小时) 等待时间(小时) 0+6+2+1=9 2 3 5 6+2+2=10 周转时间(小时) 11 19 13 1 等待时间(小时) 1 18 11 0 4 1 6 5 5 15 非剥夺优先级调度法周转时间和等待时间: 作业 1 2 3 4 优先级 4 1 3 5 调度顺序 2 5 3 1 运行时间(小时) 10 1 2 1 5 2 4 5 18 13 5、 画出进程的五种状态变化图,并说明状态变化原因。
答:变化原因在图上说明。
6、 某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可
立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
(1)用PV(或wait和signal)操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。
(2)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。
(3)根据所定义的信号量,把应执行的PV(或wait和signal)操作填入下述括号中,以保证进程能够正确地并发执行。
Buyi(I=1,2,……) { Do{
进入售票厅; ( ) 购票;
( )
退出; }while(1)
}
2
解答: (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分)
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) }
3
请回答:
(1) 指出这两个并发进程的临界区。
(2) 指出它们并发执行时可能出现的与时间有关的错误。
(3) 用信号量机制进行管理,写出它们能正确并发执行的程序。 解答:(1) 临界区为process_A():Count = Count + 10, process_B():print(Count) Count =0; (2)错误顺序(不是唯一的)
① print(Count) ② Count = Count + 10 ③ Count =0; (3)实现同步
信号量:S1=1,S2=0; 信号量:mutex=1;
process_B()
int Count=0;
{ do{ wait(S2)
process_A()
wait(mutex);
{ do{ wait(S1)
print(Count)
wait(mutex);
Count =0;
Count = Count + 10
Signal(mutex)
Signal(mutex)
Signal(S1)
Signal(S2)
}while(1)
}while(1)
}
}
10、 有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括
座号和读者姓名等,读者离开时要消掉登记的信息,试问:(?) (1)为描述读者的动作,应编写几个程序,设置几个进程? (2)试用PV操作描述读者进程之间的同步关系。
答:读者的动作有两个,一是填表进入阅览室,这时要考虑阅览室里是否有座位;一是读者阅读完毕,离开阅览室,这时的操作要考虑阅览室里是否有读者。读者在阅览室读书时,由于没有引起资源的变动,不算动作变化。
算法的信号量有三个:seats——表示阅览室是否有座位(初值为100,代表阅览室的空座位数);readers——表示阅览室里的读者数,初值为0;用于互斥的mutex,初值为1。 读者进入阅览室的动作描述getin: while(TRUE){
P (seats); /*没有座位则离开*/ P(mutex) /*进入临界区*/ 填写登记表;
进入阅览室读书;
V(mutex) /*离开临界区*/ V(readers) }
读者离开阅览室的动作描述getout: while(TRUE){
P(readers) /*阅览室是否有人读书*/ P(mutex) /*进入临界区*/ 消掉登记;
离开阅览室;
V(mutex) /*离开临界区*/
V(seats) /*释放一个座位资源*/ }
4
共分享92篇相关文档