《操作系统》试题库-综合题

更新时间:2023-12-02 03:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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) 轮转法运行进度表:

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)

}

解答: (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) }

请回答:

(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) /*释放一个座位资源*/ }

11、 假定进程A负责为用户作业分配打印机,进程B负责释放打印机,系统中设立一个打印机分配表如下,由各

个进程共用。 打印机编号 0 1 2 分配标志 0 0 0 用户名 用户定义的设备名 试用P,V操作实现两进程对分配表的互斥操作。 解答: 设一个互斥信号量mutex,其初值为1。

P1(分配进程)和P2(释放进程)的临界区代码可按下述形式组成:

P(mutex); P(mutex); 分配打印机; 释放打印机; (读写分配表) (读写分配表) V(mutex); V(mutex);

12、 设系统中只有一台打印机,有二个用户的程序在执行过程中都要使用打印机输出计算结果。设每个用户程序

对应一个进程。问:这二个进程间有什么样的制约关系?试用P,V操作写出这二个进程使用打印机的算法。 解答: 因为打印机是一种临界资源,所以这二个进程只能互斥地使用这台打印机。即一个用户的计算结果打印完后,另一个用户再打印,因此是互斥关系。

设两个进程分别为A和B,设一个互斥信号量mutex,其初值为1,其算法如下: A进程 B进程

P(mutex); P(mutex); 使用打印机; 使用打印机; V(mutex); V(mutex);

13、 设P1,P2两进程共用一个缓冲区F,P1向F写入信息,P2则从F中读出信息。问这两个进程间是什么样的

制约关系?试用P,V操作写出这两个进程读写缓冲区的算法。

解答: A,B两进程间是同步关系,即A进程向Q写满信息后,B进程才能从Q中取走信息。为此,设立两个信号量:

empty:表示缓冲区Q为空(0为不空,1为空),初值为1, full: 表示缓冲区Q为满(0为不满,1为满),初值为0。 算法如下:

A进程: B进程: while(true){ while(true){ P(empty); P(full);

向Q写入信息; 从Q中读出信息; V(full); V(empty); } }

注:若信号量初值不同,算法有些不同。如若empty和full的初值均为0,则A进程的算法中P(empty)语句应放在V(full)之后,即 解法不惟一 。

14、 设A1,A2为两个并发进程,它们共享一临界资源,其临界区代码分别为CS1,CS2。问这两个进程间是什么

样的制约关系?试用P,V操作写出这两个进程共享临界资源的算法。

本文来源:https://www.bwwdw.com/article/m2vt.html

Top