当前位置:文档之家› 《操作系统》试题库-综合题汇总

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

1、设有三个进程,它们的提交时间及运行时间如下表,若采用短进程优先调度策略,试给出进程串行运行时的调度次序及平均周转时间。

作业提交时间运行时间J1 0 4J2 2 8J3 3 5答:进程提交时间开始时间完成时间周转时间J1 0 0 4 4J2 2 9 17 15J3 3 4 9 6平均周转时间=(4+15+6)/3=25/3=8.33各进程的调度次序: J1,J3,J22、设有三道作业,它们的提交时间及运行时间如下表,若采用短作业优先调度策略,试给出作业单道串行运行时的调度次序及平均周转时间。

(8分)作业提交时间开始时间完成时间周转时间J1 0 0 7 7J2 2 7 11 9J3 3 11 16 13平均周转时间=(7+9+13)/3=29/3=9.67 (4分)各作业的调度次序:1 (3分)3、假定在单CPU条件下,有A,B,C,D四个作业依次到达(后面的作业依次比前一作业迟到一个时间单位)。

四个作业分别需要运行11,6,2和1个时间单位,如果系统采用FCFS的调度算法,请计算:(1)(2)(3)(4)解答:作业作业到达时间运行时间完成时间周转时间带权周转时间A 0 11 11 11 1B 1 6 17 16 2.67C 2 2 19 17 8.5D 3 1 20 17 17平均周转时间T= 15.25平均带权周转时间 W= 7.294、假设在单处理机上有五个(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 P10 2 3 5 6 8 10 12 14 15 19非剥夺优先级调度法运行进度表:0 1 11 13 18 19各作业的周转时间系统此时的平均周转时间;各作业的带权周转时间;系统此时的平均带权周转时间; P4 P1 P3 P5 P225、画出进程的五种状态变化图,并说明状态变化原因。

答:变化原因在图上说明。

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 eelse w:=1; (4分)②可设临界段cs放在两者之间来实现互斥,即Lock(w);cs;unlock(w) (3分)48、有两个用户进程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② Count = Count + 10③ Count =0;(3)实现同步信号量:S1=1(含义不清),S2=0;信号量:mutex=1;int Count=0;process_A(){ do{ wait(S1)wait(mutex);Count = Count + 10Signal(mutex)Signal(S2)}while(1)}process_B(){ do{ wait(S2)wait(mutex);print(Count)Count =0;Signal(mutex)Signal(S1)}while(1)}10、有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息,试问:(?)(1)为描述读者的动作,应编写几个程序,设置几个进程?(2)试用PV操作描述读者进程之间的同步关系。

答:读者的动作有两个,一是填表进入阅览室,这时要考虑阅览室里是否有座位;一是读者阅读完毕,离开阅览室,这时的操作要考虑阅览室里是否有读者。

读者在阅览室读书时,由于没有引起资源的变动,不算动作变化。

算法的信号量有三个:seats——表示阅览室是否有座位(初值为100,代表阅览室的空座位数);readers——表示阅览室里的读者数,初值为0;用于互斥的mutex,初值为1。

读者进入阅览室的动作描述getin:while(TRUE){P (seats); /*没有座位则离开*/P(mutex) /*进入临界区*/6填写登记表;进入阅览室读书;V(mutex) /*离开临界区*/V(readers)}读者离开阅览室的动作描述getout:while(TRUE){P(readers) /*阅览室是否有人读书*/P(mutex) /*进入临界区*/消掉登记;离开阅览室;V(mutex) /*离开临界区*/V(seats) /*释放一个座位资源*/}11、假定进程A负责为用户作业分配打印机,进程B负责释放打印机,系统中设立一个打印机分配表如下,由各个进程共用。

试用P,V操作实现两进程对分配表的互斥操作。

解答: 设一个互斥信号量mutex,其初值为1。

P1(分配进程)和P2(释放进程)的临界区代码可按下述形式组成:P(mutex); P(mutex);分配打印机;释放打印机;(读写分配表)(读写分配表)V(mutex); V(mutex);12、设系统中只有一台打印机,有二个用户的程序在执行过程中都要使用打印机输出计算结果。

设每个用户程序对应一个进程。

问:这二个进程间有什么样的制约关系?试用P,V操作写出这二7个进程使用打印机的算法。

解答: 因为打印机是一种临界资源,所以这二个进程只能互斥地使用这台打印机。

即一个用户的计算结果打印完后,另一个用户再打印,因此是互斥关系。

设两个进程分别为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操作写出这两个进程共享临界资源的算法。

解答: 因为A,B两个进程是并发的,它们共享一个临界资源,所以两个进程间应互斥地进入临界区。

设立一个互斥信号量mutex,其初值为1。

具体算法如下:A进程: B进程:8P(mutex); P(mutex);临界区代码Csa;临界区代码Csb;V(mutex); V(mutex);15、设有一台计算机,有一条I/O通道,接一台卡片输入机,卡片机把一叠卡片逐一输入到缓冲区Q1中,计算机从缓冲区Q1中取出数据再进行加工处理。

假设系统中设一个输入进程Pr和一个计算进程Pc来完成这个任务。

问这两个进程间有什么样的制约关系?请用P,V操作写出这些进程的算法。

解答: 进程Pr受Pc进程的影响,B1放满信息后,Pr进程要等待,等Pc进程将其中全部信息取走,才能继续读入信息;同样地,Pc进程受Pr进程的约束,B1中信息放满后Pc进程才能从中取走信息。

相关主题