当前位置:文档之家› p_v操作例题

p_v操作例题

p_v操作例题
p_v操作例题

1.某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请用PV操作实现管理。

解:定义一个信号量S,初值为20

parbegin

process pl(l=1,2,……)

begin

wait(S);

进入售票厅;

购票;

退出;

signal(S)

end

2.桌上有一空盘,允许存放一个水果,爸爸可向盘内放苹果,妈妈可向盘内放桔子,儿子专等吃盘内的桔子,女儿专等吃盘中的苹果,请用P、V 操作实现爸爸、妈妈、儿子、女儿四个并发进程的同步与互斥。

int S=1;int Sa=0;int Sb=0;

main()

{cobegin

father();

mather();

son();

daughter();

coend}

father() mather()

{while(1) { while(1)

{p(S); {p(S) ;

将一个苹果放入盘中将一个桔子放入盘中

V(Sa);} V(Sb);}

} }

son() daughter()

{ while(1) { while(1)

{p(Sb); { p(Sa);

从盘中取出桔子从盘中取出苹果

V(S);吃桔子;} V(S);吃苹果;}

}

3.生产围棋的工人不小心把相等数量的黑子和白子混装在一个盒子里,现在要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程PA和PB组成,系统功能如下:

(1)PA专拣黑子,PB专拣白子;

(2)每个进程每次只拣一个子,当一个进程拣子时,不允许另一个进程去拣子;

(3)当一个进程拣一个子(黑或白)后,必须让另一个进程去拣一个子(白或黑)

请回答:①这两个并发进程之间的关系是同步还是互斥

②写出PV操作管理时应定义的信号量及其初值。

③根据定义的信号量,写出用PV操作管理两个并发进程的程序

答:①两个进程之间是同步关系

②定义两个信号量S1和S2,初值为1和0

③process PA process PA

begin begin

repeat repeat

wait(S1) wait(S2)

拣黑子拣白子

signal(S2) signal(S1)

until false until false

end end

4.有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假若阅览室共有100个座位。试用信号量和PV操作来实现用户进程的同步算法。

解:设置如下3个信号量

seat:表示阅览室中空座位数,其初值为100.

readers:记录阅览室中的读者数,其初值为0.

mutex:互斥信号量(对于读者而言,阅览室是一个临界资源,任何时刻最多只有一位读者填写登记表或撤销登记表),初值为1.

对应的算法描述如下:

semaphore seats=100;

semaphore readers=0;

semaphore mutex=1;

main()

{

cobegin

{

读者进入阅览室进程readerini(i=1,2,…,n)

while(true)

{

p(seats); //递减空座位数

p(mutex);

填写登记表

进入阅览室;

v(mutex); //允许其他读者访问阅览室

v(readers); //递增读者数

}

读者离开阅览室进程readerouti (i=1,2, …,n)

while(true)

{

p(readers);

p(mutex);

撤销登记;

离开阅览室;

v(mutex);

v(seats);

}

}

coend

}

解法二:

解:var name:array[1..100]of A

A=record

number:integer;

name:string;

end

for i:=1 to 100 do

{A[i].number:=i;A[i].name:=null;}

mutex,seatcount:semaphore;

mutex:=1;seacount:=100;

cobegin

process readeri(var readername:string)(i=1,2…)

begin

p(seatcount);

p(mutex);

for i:=1 to 100 do i++

if A[i].name=null then A[i].name:= readername;

reader get the seat number=i;

v(mutex);

进入阅览室座位号i,坐下读书;

p(mutex);

A[i].name:=null;

V(mutex);

V(seatcount);

离开阅览室;

end

coend

5.三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义。要求用伪代码描述。[2009

年全国考研试题]

解:缓冲区是一互斥信号量,因此设互斥信号量mutex

P1、P2因为奇数的设置与取用而同步,设同步信号量odd;P1、P3因为偶数的设置与取用而同步,设同步信号量even;P1、P2、P3因为共享缓冲区,设同步信号量empty。

semaphore mutex=1; //缓冲区互斥信号量

semaphore odd=0, even=0 ; //奇数、偶数进程的同步信号量

semaphore empty=N ; //空缓冲区单元个数信号量

main( )

cobegin{

process P1

while(true){

number=produce();

p(empty); //递减空缓冲区的单元个数

p(mutex); //互斥访问缓冲区

put( );

v(mutex); //恢复访问缓冲区

if number%2==0 v(even); //为偶数允许取偶数

else v(odd); //为奇数允许取奇数

}

process P2 process P3

while(true){ while(true){

p(odd); //互斥奇数p(even);

p(mutex); //互斥访问缓冲区p(mutex);

getodd( ); getevend( );

v(mutex); //恢复访问缓冲区v(mutex);

v(empty); //递增空缓冲区的单元个数v(empty);

countodd(); } counteven();}

}

coend

【例】一个buffer,多个生产者,多个消费者,多个生产者和消费者都在不断地存取buffer,即生产者不断地进行putdata操作,消费者不断进行getdata操作。

【解答】

只有buffer为空时能进行putdata操作,只有buffer有数据时能进行putdata操作。

不允许多个进程同时操作buffer,即不允许多个消费者同时进行getdata,不允许多个生产者进行putdata操作

信号量

full:buffer是否有数据,初值为0

empty:buffer是否为空,初值为1

mutex:buffer是否可操作,初值为1

p_v操作例题

1.某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请用PV操作实现管理。 解:定义一个信号量S,初值为20 parbegin process pl(l=1,2,……) begin wait(S); 进入售票厅; 购票; 退出; signal(S) end 2.桌上有一空盘,允许存放一个水果,爸爸可向盘内放苹果,妈妈可向盘内放桔子,儿子专等吃盘内的桔子,女儿专等吃盘中的苹果,请用P、V 操作实现爸爸、妈妈、儿子、女儿四个并发进程的同步与互斥。 int S=1;int Sa=0;int Sb=0; main() {cobegin father(); mather(); son(); daughter(); coend} father() mather() {while(1) { while(1) {p(S); {p(S) ; 将一个苹果放入盘中将一个桔子放入盘中 V(Sa);} V(Sb);} } } son() daughter()

{ while(1) { while(1) {p(Sb); { p(Sa); 从盘中取出桔子从盘中取出苹果 V(S);吃桔子;} V(S);吃苹果;} } 3.生产围棋的工人不小心把相等数量的黑子和白子混装在一个盒子里,现在要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程PA和PB组成,系统功能如下: (1)PA专拣黑子,PB专拣白子; (2)每个进程每次只拣一个子,当一个进程拣子时,不允许另一个进程去拣子; (3)当一个进程拣一个子(黑或白)后,必须让另一个进程去拣一个子(白或黑) 请回答:①这两个并发进程之间的关系是同步还是互斥 ②写出PV操作管理时应定义的信号量及其初值。 ③根据定义的信号量,写出用PV操作管理两个并发进程的程序 答:①两个进程之间是同步关系 ②定义两个信号量S1和S2,初值为1和0 ③process PA process PA begin begin repeat repeat wait(S1) wait(S2) 拣黑子拣白子 signal(S2) signal(S1) until false until false end end 4.有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假若阅览室共有100个座位。试用信号量和PV操作来实现用户进程的同步算法。 解:设置如下3个信号量 seat:表示阅览室中空座位数,其初值为100.

计算机操作系统典型例题解析之四

计算机操作系统复习题之四【例1】可变分区存储管理系统中,若采用最佳适应分配算法,“空闲区表”中的空闲区可按(A)顺序排列。 A、长度递增 B、长度递减 C、地址递增 D、地址递减分析:最佳适应算法要求每次都分配给用户进程能够满足其要求的空闲区中最小的空闲区,所以为了提高算法效率,我们把所有的空闲区,按其大小以递增的顺序形成一空闲分区链。这样,第一个找到的满足要求的空闲区,必然是符合要求中最小的。所以本题的答案是A。 【例2】虚拟存储技术是(B)。 A、扩充主存物理空间技术 B、扩充主存逻辑地址空间技术 C、扩充外存空间的技术 D、扩充输入/输出缓冲区技术 分析:所谓虚拟存储器,是指仅把作业的一部分装入内存便可运行作业的存储器系统。具体地说,所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。实际上,用户所看到的大容量只是一种感觉,是虚的,故称之为虚拟存储器。虚拟存储技术是一种性能非常优越的存储器管理技术、故被广泛地应用于大、中、小型机器和微型机中。所以本题的答案是B。 【例3】很好地解决了“零头”问题的存储管理方法是(A)。A、分页存储管理方式B、分段存储管理方式C、多重分区管理D、可变式分区管理 分析:“零头”也就是内存碎片,是指内存中无法被利用的小空闲

区。在有些内存管理方式下,系统运行一段时间后,内存的碎片会占据相当的数量的空间。分段存储管理方式、多重分区管理、可变式分区管理都会因为内存分配回收产生“零头”,而分页存储管理方式,按事先划分好的内存块为单位分配回收内存,所以不会产生“零头”。所以本题的答案是A。 【例4】系统“抖动”现象的发生是由(B)引起的。 A、交换的信息量过大 B、置换算法选择不当 C、内存容量不足 D、请求分页管理方案 分析:“抖动”现象是指刚被换出的页很快又要被访问,为此,又要换出其他页,而该页又很快被访问,如此频繁地置换页面,以致大部分时间都花在页面置换上。交换的信息量过大,内存容量不足都不是引起系统“抖动”现象的原因,而选择的置换算法不当才是引起“抖动”现象的根本原因,例如,先进先出算法就可能产生“抖动”现象。所以本题的答案是B。 【例5】虚拟存储管理系统的基础是程序的(C)理论。 A、全局性 B、虚拟性 C、局部性 D、动态性 分析:虚拟存储技术是基于程序的局部性原理的,程序的局部性原理体现在两个方面:时间局部性和空间局部性。时间局部性是指一条指令被执行后,那么它可能很快会再次被执行,空间局部性是指若某一存储单元被访问,那么与该存储单元相邻的单元可能也会很快被访问。所以本题的答案是C。

PV操作题解

(一)图书馆有100个座位,每位进入图书馆的读者要在登记表上登记,退出时要在登记表上注销。要几个程序有多少个进程(答:一个程序;为每个读者设一个进程) (1)当图书馆中没有座位时,后到的读者在图书馆为等待(阻塞)(2)当图书馆中没有座位时,后到的读者不等待,立即回家。 解(1 ) 设信号量:S=100; MUTEX=1 P(S) P(MUTEX) 登记 V(MUTEX) 阅读 P(MUTEX) 注销 V(MUTEX) V(S) 解(2) 设整型变量COUNT=100; 信号量:MUTEX=1; P(MUTEX); IF (COUNT==0) { V(MUTEX); RETURN; } COUNT=COUNT-1; 登记 V(MUTEX); 阅读 P(MUTEX); COUNT=COUNT+1; V(MUTEX); RETURN; (二)有一座东西方向的独木桥;用P,V操作实现:(1)每次只允许一个人过桥; (2)当独木桥上有行人时,同方向的行人可以同时过桥,相反方向的人必须等待。 (3)当独木桥上有自东向西的行人时,同方向的行人可以同时过桥,从西向东的方向,只允许一个人单独过桥。(此问题和读者与写者问题相同,东向西的为读者,西向东的为写者)。 (1)解 设信号量MUTEX=1 P (MUTEX) 过桥 V (MUTEX) (2)解 设信号量:MUTEX=1 (东西方互斥) MD=1 (东向西使用计数变量互斥) MX=1 (西向东使用计数变量互斥) 设整型变量:CD=0 (东向西的已上桥人数)

CX=0 (西向东的已上桥人数) 从东向西: P (MD) IF (CD=0) {P (MUTEX) } CD=CD+1 V (MD) 过桥 P (MD) CD=CD-1 IF (CD=0) {V (MUTEX) } V (MD) 从西向东: P (MX) IF (CX=0) {P (MUTEX) } CX=CX+1 V (MX) 过桥 P (MX) CX=CX-1 IF (CX=0) {V (MUTEX) } V (MX) (3) 解:从东向西的,和(2)相同;从西向东的和(1)相同。

计算机操作系统典型例题解析之三

计算机操作系统典型例题解析之三 【例1】分配到必要的资源并获得处理机时的进程状态是(B )。A、就绪状态B、执行状态 C、阻塞状态D、新状态 分析:进程有三种基本状态:就绪状态、执行状态和阻塞状态。当进程已分配到除CPU以外的所有必要的资源后,只要能再获得处理机便可立即执行,这时的状态称为就绪状态;处于就绪状态的进程如果获得了处理机,其状态转换为执行状态;进程因发生某种事件(如I/O请求、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种状态为阻塞状态;而新状态是指创建了进程但尚未把它插入到就绪队列前的状态。所以本题的答案是B。 【例2】挂起的进程被激活,应该使用(C)原语。 A、Create B、Suspend C、Active D、Wakeup 分析:在不少系统中,进程除了三种基本状态外,又增加了一些新的状态,其中最重要的是挂起状态。“挂起”的实质是使进程不能继续执行,即使挂起后的进程处于就绪状态,它也不能参加对CPU的竞争,进程的挂起调用Suspend()原语。因此,被挂起的进程处于静止状态,相反,没有挂起的进程则处于活动状态。而且,处于静止状态的进程,只有通过“激活”动作,调用Active()原语,才能转换成活动状态,调入内存。所以本题的答案是C。 【例3】任何时刻总是让具有最高优先数的进程占用处理器,此时采用的进程调度算法是(D)。A非抢占式的优先数调度算法B、时间片轮转调度算法C、先来先服务调度算法D、抢占式的优先

数调度算法 分析:“让具有最高优先数的进程占用处理器”,我们可以知道,采用的进程调度算法是优先数调度算法,但是我们还要进一步分析是抢占式的还是非抢占式的。“任何时刻总让”,通过这句话我们知道采用的是抢占式的,所以本题的答案是D。 【例4】若P、V操作的信号量S初值为2,当前值为-1,则表示有(B)等待进程。A、0个B、1个C、2个D、3个分析:信号量的初始值表示系统中资源的数目,每次的Wait操作意味着进程请求一个单位的资源,信号量进行减1的操作,当信号量小于0时,表示资源已分配完毕,进程自我阻塞。因此,如果信号量小于0,那么信号量的绝对值就代表当前阻塞进程的个数。所以本题的答案是B。 【例5】发生死锁的必要条件有四个,要预防死锁的发生,可以破坏这四个必要条件,但破坏(A)条件是不太实际的。 A、互斥 B、请求和保 C、不剥夺 D、环路等待 分析:预防死锁是指通过破坏死锁的某个必要条件来防止死锁的发生。四个必要条件中,后三个条件都可以被破坏,而第一个条件,即“互斥”条件,对某些像打印机这样的设备,可通过SPOOLing技术予以破坏,但其他资源,因受它们的固有特性的限制,该条件不仅不能被破坏,反而应加以保证。所以本题的答案是A。 【例6】有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是1 至1-m。

pv操作的一些习题

1、进程P0和P1的共享变量定义及其初值为: boolean falg[2]; int turn=0; falg[0]=FALSE; falg[1]=FALSE; 若进程P0和P1访问临界资源的类C伪代码实现如下: 则并发执行进程P0和P1时产生的情形是【全国联考2010】 A. 不能保证进程互斥进入临界区、会出现“饥饿”现象 B. 不能保证进程互斥进入临界区、不会出现“饥饿”现象 C. 能保证进程互斥进入临界区、会出现“饥饿”现象 D. 能保证进程互斥进入临界区、不会出现“饥饿”现象 分析进程的执行过程:一开始,没有进程处于临界区中,现在进程P0开始执行,通过设置其数组元素和将turn置1来标识它希望进入临界区,由于进程P1并不想进入临界区,所以P0跳出while循环,进入临界区。如果进程P1现在开始执行,进程P1将阻塞在while循环直到flag[0]变为false,而该事件只有进程P0退出临界区时才会发生。 现在考虑两个进程几乎同时执行到while循环的情况,它们分别在turn中存入1和0,但只有后被保存进去的进程号才有效,前一个被重写而丢失。假设进程P1是后存入的,则turn为0。进程P0将循环0次而进入临界区,而进程P1则将不停地循环且不能进入临界区,直到进程退出临界区为止。 因此,该算法实现了临界区互斥。 “饥饿”出现的时机:使用忙等待实现互斥,当一个进程离开临界区时,如果有多个进程等待进入临界区,系统会随机选择一个进程执行,因为这种随机性,会导致有些进程长期得不到执行,因而导致“饥饿”。 本题中,如果P1已经等在while上的时候,P0至多执行一次临界区,否则下次执行的时候,即便它在P1测试条件前出了临界区并重新设定了flag,但由于它必须要设定turn=1(此时P1不会再设置turn了),因此这样P0必然卡在while上,从而换到P1执行。所以不会出现“饥饿”现象。 2、在一间酒吧里有三个音乐爱好者队列,第一个音乐爱好者只有随身听,第二个只有音乐磁带,第三个只有电池,而要听音乐就必须有随身听,音乐磁

PV操作的例题

PV操作的例题 一、线程是进程的一个组成部分,一个进程可以有多个线程,而且至少有一个可执行线程。进程的多个线程都在进程的地址空间内活动。 资源是分给进程的,而不是分给线程的,线程需要资源时,系统从进程的资源配额中扣除并分配给它。处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。线程在执行过程中,需要同步。 二、在计算机操作系统中,PV操作是进程管理中的难点。 首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S>=0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1; ②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。 PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。PV操作属于进程的低级通信。 什么是信号量?信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。 一般来说,信号量S>=0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S 的值加1;若S?0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。 利用信号量和PV操作实现进程互斥的一般模型是: 进程P1 进程P2 ……进程Pn ……………… P(S);P(S);P(S); 临界区;临界区;临界区; V(S);V(S);V(S); …………………… 其中信号量S用于互斥,初值为1。 使用PV操作实现进程互斥时应该注意的是: (1)每个程序中用户实现互斥的P、V操作必须成对出现,先做P操作,进临界区,后做V操作,出临界区。若有多个分支,要认真检查其成对性。 (2)P、V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。(3)互斥信号量的初值一般为1。 利用信号量和PV操作实现进程同步 PV操作是典型的同步机制之一。用一个信号量与一个消息联系起来,当信号量的值为0时,表示期望的消息尚未产生;当信号量的值非0时,表示期望的消息已经存在。用PV操作实现进程同步时,调用P操作测试消息是否到达,调用V操作发送消息。 使用PV操作实现进程同步时应该注意的是:

操作系统例题讲解

操作系统例题讲解 一、调度算法 对如下表所示的5个进程: 采用可剥夺的静态最高优先数算法进行调度(不考虑系统开销)。 问 题: ⑴ 画出对上述5个进程调度结果的Gantt 图; ⑵ 计算5个进程的平均周转时间、平均带权周转时间。 解: ⑴ 调度结果的Gantt 图如下: 0 2 4 5 7 9 10 12 14 (2) 时间计算: 二、存储管理 某系统采用虚拟页式存储管理方式,页面大小为2KB ,每个进程分配的页框数固定为4页。采用局部置换策略,置换算法采用改进的时钟算法,当有页面新装入内存时,页表的时钟指针指向新装入页面的下一个在内存的表项。设当前进程P 的页表如下(“时钟”指针指向逻辑页面3的表项): 逻辑页号 0 1 2 3 4 5 问 题: ⑴ 当进程P 依次对逻辑地址执行下述操作: ① 引用 4C7H ; ② 修改 19B4H ; ③ 修改 0C9AH ; 写出进程P 的页表内容; ⑵ 在 ⑴ 的基础上,当P 对逻辑地址27A8H 进行访问, 该逻辑地址对应的物理地址是多少?

解:页面大小为2KB,2KB=2×210=211, 即逻辑地址和物理地址的地址编码的低11位为页内偏移; ⑴①逻辑地址4C7H=0100 1100 0111B,高于11位为0,所以该地址访问逻辑页面0; 引用4C7H,页表表项0:r=1; ②逻辑地址19B4H=0001 1001 1011 0100B,高于11位为3,所以该地址访问逻辑页面3; 修改19B4H,页表表项3:r=1, m=1; ③逻辑地址0C9AH=0000 1100 1001 1010B,高于11位为1,所以该地址访问逻辑页面1; 逻辑页1不在内存,发生缺页中断; ①、②两操作后,P的页表如下: 逻辑页号 1 2 3 4 5 按改进的时钟算法,且时钟指针指向表项3,应淘汰0页面, 即把P的逻辑页面1读到内存页框101H,页表时钟指针指向表项2。 并执行操作:修改0C9AH。 经上述3个操作后,P的页表如下: 逻辑页号 1 2 3 4 5 ⑵逻辑地址27A8H=0010 0111 1010 1000B,高于11位为4,所以该地址访问逻辑页面4; 页面4不在内存,发生缺页中断;按改进的时钟算法,淘汰页面2,页面4读到110H页框, 所以,逻辑地址27A8H对应的物理地址为: 0001 0001 0000 111 1010 1000B=887A8H。 三、设备与I/O管理 设系统磁盘只有一个移动磁头,磁道由外向内编号为:0、1、2、……、199;磁头移动一个磁道所需时间为1毫秒;每个磁道有32 个扇区;磁盘转速R=7500r/min. 系统对磁盘设备的I/O请求采用N-Step Look (即N-Step Scan,但不必移动到磁道尽头),N=5。设当前磁头在60号磁道,向内移动;每个I/O请求访问磁道上的1个扇区。现系统依次接收到对磁道的I/O请求序列如下: 50, 20, 60, 30, 75, 30, 10, 65, 20, 80,15, 70 问题: ⑴写出对上述I/O请求序列的调度序列,并计算磁头引臂的移动量; ⑵计算:总寻道时间(启动时间忽略)、总旋转延迟时间、总传输时间和总访问处理时间。 解:⑴考虑序列中有重复磁道的I/O请求,调度序列为: 60→75→50→30→20→15→10→65→70→80 磁头移动量=(75-60)+(75-50)+(50-30)+(30-20)+ (20-15)+(15-10)+(65-10)+(70-65)+(80-70) =15+25+20+10+5+5+55+5+10=155(磁道)

操作系统练习题_及答案解析

操作系统练习题 第一章引言 (一单项选择题 1操作系统是计算机系统的一种( 。A.应用软件 B.系统软件c.通用软件D.工具软件 2.操作系统目的是提供一个供其他程序执行的良好环境,因此它必须使计算机( A.使用方便 B.高效工作 C.合理使用资源 D.使用方便并高效工作 3.允许多个用户以交互方式使用计算机的操作系统是( 。A.分时操作系统 B.批处理单道系统 C.实时操作系统 D.批处理多道系统 4.下列系统中( 是实时系统。A.计算机激光照排系统 B.办公自动化系统 C.化学反应堆控制系统 D.计算机辅助设计系统 5.操作系统是一种系统软件,它( 。A.控制程序的执行 B.管理计算机系统的资源 C.方便用户使用计算机 D.管理计算机系统的资源和控制程序的执行 6.计算机系统把进行( 和控制程序执行的功能集中组成一种软件,称为操作系统 A.CPU管理 B.作业管理 C.资源管理 D.设备管理 7.批处理操作系统提高了计算机系统的工作效率,但( 。 A.不能自动选择作业执行 B.无法协调资源分配 c.不能缩短作业执行时间 D在作业执行时用户不能直接干预 8.分时操作系统适用于( 。A.控制生产流水线B.调试运行程序c.大量的数据处理D.多个计算机资源共享 9.在混合型操作系统中,“前台”作业往往是指( 。A.由批量单道系统控制的作业 B.由批量多道系统控制的作业 c.由分时系统控制的作业D.由实时系统控制的作业

10.在批处理兼分时的系统中,对( 应该及时响应,使用户满意。A.批量作业B.前台作业c.后台作业D.网络通信 11.实时操作系统对可靠性和安全性要求极高,它( 。A.十分注重系统资源的利用率B.不强调响应速度 c.不强求系统资源的利用率 D.不必向用户反馈信息 12.分布式操作系统与网络操作系统本质上的不同之处在于( 。A.实现各台计算机之间的通信B.共享网络个的资源 c.满足较大规模的应用 D.系统中若干台计算机相互协作完成同一任务 13.SPOOL技术用于( 。A.存储管理B.设备管理C.文件管理 D.作业管理 14.( 为用户分配主存空间,保护主存中的程序和数据不被破坏,提高主存空间的利用率。 A处理器管理 B.存储管理 c.文件管理 D.作业管理 (二填空题 1. 计算机系统是按用户要求接收和存储信息,自动进行_______并输出结果信息的系统。 2.计算机是由硬件系统和_______系统组成。 3.软件系统由各种_______和数据组成。 4.计算机系统把进行_______和控制程序执行的功能集中组成一种软件称为操作系统。 5.操作系统使用户合理_______,防止各用户间相互干扰。 6.使计算机系统使用方便和_______是操作系统的两个主要设计目标。 7.批处理操作系统、_______和实时操作系统是基本的操作系统。 8.用户要求计算机系统中进行处理的一个计算机问题称为_______。

操作系统习题与解析

第二章进程的描述与控制 【例1】判断题:并发是并行的不同表述,其原理相同。() 答案×。分析并发是指多道程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。但对单CPU系统而言,每一时刻只有一个程序在CPU上运行(有可能此时其他的程序在进行输入、输出)。也就是说,占有CPU的只能有一个程序。因此,并发实际上是“在宏观上并行执行,在微观上串行执行”。而并行是真正意义上的并行执行,因此两者的含义是不同的。 【例2】在操作系统中引入“进程”概念的主要目的是()。 A.改善用户编程环境B.提高程序的运行速度 B.C.描述程序动态执行过程的性质D.使程序与计算过程一一对应 答案C 分析操作系统中多道程序的引入,使得它们在并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各道程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。这些都是在程序的动态过程中发生的。而程序本身是机器能够翻译或执行的一组动作或指令,它或者写在纸面上,或者存放在磁盘等介质上,是静止的。很显然,直接从程序的字面上无法看出它什么时候运行、什么时候停顿,也看不出它是否影响其它程序或者一定受其它程序的影响。因此,用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。为此,人们引入进程的概念来描述程序动态执行过程的性质,这是引入“进程”概念的主要目的。 【例3】下列进程状态的转换中,不正确的是()。 A.就绪 阻塞B.运行 就绪 C.就绪 运行D.阻塞 就绪 答案A 分析回答这道题要知道进程的3种基本状态,以及它们之间的转换关系。通过下图可以看到,凡是图中有箭头指向的转换都是可行的,而没有箭头指向的则不可能。因此A 是不正确的。 如果有的同学记不住这张图,那就从理解的角度进行思考。首先要理解3种状态的含义,然后再理解它们之间的转换。例如:运行的进程能变成就绪吗?可以,如果运行进程的时间片到了,就必修让出CPU,转换为就绪态。就绪的进程能变成阻塞吗?不可以,就绪态的进程已经具备了运行条件,只在等待CPU,怎么可能还退回到还不具备运行条件的阻塞态呢?因此,如果理解了,这张图就可以自己画出来,并不需要死记硬背。 【例4】进程控制块是描述进程状态和特性的数据结构,一个进程()。 A.可以有多个进程控制块B.可以和其他进程共用一个进程控制块

pv操作练习题

用P,V操作实现下述问题的解。 一、桌上有一个盘子,可以放一个水果;父亲总是放苹果到盘子中;母亲总是放香蕉到盘子中。一个儿子专等吃盘中的香蕉,而一个女儿专等吃盘中的苹果。父母只放水果不吃,儿女只吃水果不放。实现父亲,母亲,儿子,女儿的进程同步。 二、在公共汽车上,司机和售票员的活动分别是: 司机的活动:启动车辆,正常行车,到站停车。 售票员的活动:上下乘客,关车门,售票,开车门,上下乘客。 在汽车不停的到站,停站,行驶过程中,这两个活动有什么同步关系?用信号量和P,V操作实现它们的同步。 三、某寺庙,有小,老和尚若干,有一个水缸,有小和尚提水入缸供老和尚饮用。水缸可以放10桶水,水从一个井里面提。水井狭窄,每次只能容纳一个桶取水。水桶总数为3个。每次入、取缸水只能是1桶,且不可以同时进行。试给出取水,入水的算法描述。 四、一个快餐厅有4类职员:(1)领班:接受顾客点菜,出菜单;(2)厨师:根据菜单,准备顾客的饭菜;(3)打包工:将做好的饭菜打包;(4)出纳员:收款并提交食品。每个职员可被看作一个进程,试用一种同步机制写出能让四类职员正确并发运行的程序。 五、假设有一个作业由四个进程组成,这四个进程在运行时必须按如图所示的次序依次执行,试用P,V原语表达四个进程的同步关系: 六、观察者和报告者是两个并发执行的进程,观察者不断观察并对通过的卡车计数,报告者定时的将观察者的计数值打印,打印完毕,将计数值清零。 七、假定阅览室最多可同时容纳100个人阅读,读者进入时,必须在阅览室门口的一个登记表上登记,内容包括姓名、座号等,离开时要撤掉登记内容。用P、V操作描述读者进程的同步算法。

经典PV操作讲解和练习题

在计算机操作系统中,PV操作是进程管理中的难点。 首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S30,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1; ②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。 PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。PV操作属于进程的低级通信。 什么是信号量?信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。 一般来说,信号量S30时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S 的值加1;若S£0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。 利用信号量和PV操作实现进程互斥的一般模型是: 进程P1 进程P2 ……进程Pn ……………… P(S); P(S); P(S); 临界区;临界区;临界区; V(S); V(S); V(S); …………………… 其中信号量S用于互斥,初值为1。 使用PV操作实现进程互斥时应该注意的是: (1)每个程序中用户实现互斥的P、V操作必须成对出现,先做P操作,进临界区,后做V操作,出临界区。若有多个分支,要认真检查其成对性。 (2)P、V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。(3)互斥信号量的初值一般为1。 利用信号量和PV操作实现进程同步 PV操作是典型的同步机制之一。用一个信号量与一个消息联系起来,当信号量的值为0时,表示期望的消息尚未产生;当信号量的值非0时,表示期望的消息已经存在。用PV操作实现进程同步时,调用P操作测试消息是否到达,调用V操作发送消息。 使用PV操作实现进程同步时应该注意的是: (1)分析进程间的制约关系,确定信号量种类。在保持进程间有正确的同步关系情况下,哪个进程先执行,哪些进程后执行,彼此间通过什么资源(信号量)进行协调,从而明确要设置哪些信号量。

4月全国自考操作系统试题及答案解析

全国2018年4月高等教育自学考试 操作系统试题 课程代码:02326 第一部分选择题(共30分) 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.设计分时操作系统的主要目标是() A.吞吐量和周转时间B.交互性和响应时间 C.灵活性和可适应性D.可靠性和完整性 2.用户通常利用键盘命令、系统调用命令请求操作系统服务,有时也会用()A.宏指令B.汇编语言 C.作业控制语言D.计算机高级语言 3.操作系统中的中断处理程序很大部分是处理()中断的。 A.程序B.访管 C.I/O D.外部 4.用作业控制语言编写作业控制说明书主要用在()系统。 A.分时B.实时 C.批处理D.多CPU 5.采用多道程序设计能() A.增加平均周转时间B.发挥且提高并行工作能力 C.缩短每道程序执行时间D.降低对处理器调度的要求 6.程序状态字反映了()状态。 A.进程调度B.作业调度 C.与处理器有关的系统D.主存储器分配 7.为了对紧急进程或重要进程进行调度,调度算法应采用() A.先来先服务B.轮转法 C.优先权调度D.短执行时间优先调度 8.单个分区的存储管理不适用于() A.个人计算机B.专用计算机 C.单道程序系统D.多道程序系统 9.页式管理中的地址结构分页号和页内地址两部分,它() A.仍是线性地址B.是个二维地址 C.是个三维地址D.是个四维地址 10.把逻辑文件存放到存储介质上时,如果组织成()文件,则逻辑记录可以按任意次序存放在不相邻的存储块中。 A.流式B.记录式 C.顺序D.链接 11.为了保证存取文件的可靠性,用户要求读一个文件前应首先请求系统执行()文 1

操作系统练习题

四十一、在UNIX系统中运行下面程序,最多可产生多少个进程?画出进 程家族树。P249 main() { fork(); fork(); fork(); } [分析及相关知识]系统调用fork的功能是创建一个新进程,新进程运行与其创建者一样的程序,新创建的进程称为子进程,调用fork的进程称为父进程,父子进程都从fork调用后的那条语句开始执行。 当程序执行时,若所有进程都能成功地执行系统调用fork,则会产生最多数目的进程。为了描述方便起见,将开始执行时的进程称为A进程,此时程序计数器PC,指向第一个fork调用。 main() { fork(); /* ←PC,进程A*/ fork(): fork(); } 当进程A成功地执行完第一个fork调用时,它创建了一个子进程,将此子进程称 为进程B。此时,进程A、B的程序计数器PC指向第二个fork调用,进程A派生 了1个子孙进程. main() { fork(): fork(); /* ←PC,进程A*/ fork(); } main() { fork(); fork(); /* ←PC,进程B*/ fork(); } 当进程A、B成功地执行完第二个fork调用时,它们分别创建了一个子进程,将 这些子进程分别称为进程C、D.此时,进程A、B、C、D的程序计数器PC指向第 三个fork调用,进程A派生了3个子孙进程。

main() { fork(); fork(); fork(); /* ←PC,进程A*/ } main() { fork(); fork(); fork(); /* ←PC,进程B*/ } main() { fork(); fork(); fork(); /* ←PC,进程C*/ ) main() { fork(); fork(); fork(); /* ←PC,进程D*/ ) 当进程A、B、C、D成功地执行完第三个fork调用时,它们分别创建了一个子进 程,将这些子进程分别称为进程E、F、C、H.此时,进程A、B、C、D、E、F、G、 H的程序计数器PC指向程序结束处,进程A派生了7个子孙进程。 main() { fork(); fork(); fork(); } /* ←PC,进程A*/ main() { fork(); fork(); fork(); ) /* ←PC,进程B*/ main()

操作系统习题讲解Word版

操作系统习题讲解 一、单项选择题 1、关于操作系统的叙述,是不正确 ...的。 A、管理资源的程序 B、能使系统资源提高效率的程序 C、管理用户程序执行的程序 D、能方便用户编程的程序 2、不是分时系统的基本特征。 A、及时性 B、实时性 C、交互性 D、独立性 3、如果允许不同用户的文件可以具有相同的文件名,通常采用来保证按名存取的安全性。 A、建立索引表 B、多级目录结构 C、重名翻译机构 D、建立指针 4、设计批处理多道系统时,首先要考虑的是。 A、交互性和响应时间 B、系统效率和吞吐量 C、灵活性和可适应性 D、实时性和可靠性 5、对于辅助存储器,的说法是正确的。 A、可被中央处理器直接访问 B、能永久地保存信息,是文件的主要存储介质 C、是CPU与主存之间的缓冲存储器 D、不是一种永久性的存储设备 6、中文Windows系统本身不提供的输入法。 A、全拼 B、双拼 C、微软 D、五笔字型 7、Windows XP不支持文件系统。 A、FAT32 B、NTFS C、ext2 D、FAT 按硬件结构来划分操作系统,可分为。 A、单用户操作系统、多用户操作系统 B、批处理操作系统、分时操作系统和实时操作系统 C、分时操作系统、分布式操作系统和多媒体操作系统 D、网络操作系统、分布式操作系统和多媒体操作系统 9、清理磁盘不能 ..对进行整理。 A、硬盘 B、软盘 C、光盘 D、以上三种 10、菜单命令后的“…”表示。 A、暂时不能用的菜单 B、选择该项后会出现子菜单 C、选择该项后会出现一个对话框 D、该项已经被选中 11、应用程序窗口不包含部分。 A、标题栏 B、选项卡 C、工具栏 D、最小化、最大化/恢复按钮、关闭按钮 12、对话框与其它窗口相比有什么区别。 A、没有菜单栏 B、对话框可以移动,不能改变窗口的大小。 C、没有工具栏 D、对话框不可以移动,不能改变窗口的大小。 13、下面有关计算机操作系统的叙述中,______是不正确 ...的。 A、UNIX、Windows 2000属于操作系统 B、操作系统只管理内存,而不管理外存 C、操作系统属于系统软件 D、计算机的内存、I/O设备等硬件资源也由操作系统管理。

计算机操作系统典型例题解析之五

计算机操作系统例题及解析之五 【例1】什么是文件?什么是文件系统? 答:文件是在逻辑上具有完整意义的信息集合,它有一个名字作标识。文件具有三个基本特征:文件的内容为一组相关信息、文件具有保存性、文件可按名存取。文件系统是操作系统中负责管理和存取文件的程序模块,也称为信息管理系统。它是由管理文件所需的数据结构(如文件控制块、存储分配表)和相应的管理软件以及访问文件的一组操作所组成。 【例2】什么是文件的物理结构和逻辑结构? 答:文件的逻辑结构是从用户观点出发所看到的文件组织形式,是用户可以直接处理的数据及其结构。文件的逻辑结构有两种形式:有结构的记录文件和无结构的流式文件。文件的物理结构是指文件在外存上的存储组织形式。文件的物理结构有三种形式:顺序结构、链接结构和索引结构。 【例3】假定盘块的大小为1KB,硬盘的大小为500MB,采用显示链接分配方式时,其FAT需要占用多少存储空间? 答:FAT的每个表项对应于磁盘的一个盘块,其中用来存放分配给文件的下一个盘块的块号,故FAT的表项数目由物理盘块数决定,而表项的长度则由磁盘系统的最大盘块号决定(即它必须能存放最大的盘块号)。为了地址转换的方便,FAT表项的长度通常取半个字节的整数倍,所以必要时还必须由最大盘块号获得的FAT表项长度作一些调整。由题意可知,该硬盘共有500K个盘块,故FAT中共有500K个表项;如

果盘块从1开始编号,为了能保存最大的盘块号500K,该FAT表项最少需要19位,将它扩展为半个字节的整数倍后,可知每个FAT表项需20位,即2.5个字节。因此,FAT需占用的存储空间的大小为: 2.5×500K=1250KB 【例4】存放在某个磁盘上的文件系统,采用混合索引分配方式,其FCB中共有13个地址项,第0~9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。如果每个盘块的大小为4K字节,若盘块号需要用4个字节来描述,请问该系统中允许的文件的最大长度是多少? 答:由题意可得,每个盘块最多存放4K/4=1K个盘块地址。在混合索引分配方式中,文件的FCB的直接地址中登记有分配给文件的前n块(0到n-1)的物理块号(本题中为10);一次间接地址中登记有一个一次间接块的块号,而在一次间接块中则登记有分配给文件的第n到第n+k-1块的块号(本题中k的值为1k);二次间接地址中登记有一个二次间接块的块号,其中可给出k个一次间接块的块号,而这些一次间接块被用来登记分配给文件的第n+k块到第n+k+k2-1块的块号;三次间接地址中则登记有一个三次间接块的块号,其中可给出k 个二次间接块的块号,这些二次间接块有可给出k2个一个间接块的块号,而这些一次间接块则用来登记分配给文件的第n+k+k2块到n +k+k2+k3-1块的物理块号。则该系统中一个文件的最大长度是:4K×(10+1K+1K×1K+1K×1K×1K)=40K+4M+4G+4T 【例5】什么是文件控制块?文件控制块中包含哪些信息?

信号量地PV操作(例题)

???信号量的PV操作是如何定义的?试说明信号量的PV操作的物理意义。 参考答案:P(S):将信号量S减1,若结果大于或等于0,则该进程继续执行;若结果小于0,则该进程被阻塞,并将其插入到该信号量的等待队列中,然后转去调度另一进程。 V(S):将信号量S加1,若结果大于0,则该进程继续执行;若结果小于或等于0,则从该信号量的等待队列中移出一个进程,使其从阻塞状态变为就绪状态,并插入到就绪队列中,然后返回当前进程继续执行。 PV操作的物理含义:信号量S值的大小表示某类资源的数量。当S>0时,其值表示当前可供分配的资源数目;当S<0时,其绝对值表示S信号量的等待队列中的进程数目。每执行一次P操作,S值减1,表示请求分配一个资源,若S≥0,表示可以为进程分配资源,即允许进程进入其临界区;若S<0,表示已没有资源可供分配,申请资源的进程被阻塞,并插入S的等待队列中,S的绝对值表示等待队列中进程的数目,此时CPU将重新进行调度。每执行一次V操作,S值加1,表示释放一个资源,若S>0,表示等待队列为空;若S≤0,则表示等待队列中有因申请不到相应资源而被阻塞的进程,于是唤醒其中一个进程,并将其插入就绪队列。无论以上哪种情况,执行V操作的进程都可继续运行。 1、设公共汽车上,司机和售票员的活动分别是: 司机的活动:启动车辆; 正常行车; 到站停车; 售票员的活动: 关车门; 售票; 开车门; 在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用P、V操作实现它们的同步。 设两个信号量S和C,初值为S=0;C=0; 司机: L1:正常行车售票员: L2:售票 到站停车 P(S) V(S)开车门 P(C)关车门 启动开车 V(C) GO TO L1 GO TO L2 2、请用PV操作实现他们之间的同步关系: (1)桌上一个盘子,只能放一只水果。爸爸放苹果,妈妈放桔子,儿子只吃桔子,女儿只吃苹果。 (2)桌上一个盘子,只能放一只水果。爸爸放苹果,妈妈放桔子,儿子吃桔子、苹果。 参考答案: 第一步:确定进程 4个进程Father(爸爸)、Mother(妈妈)、Son(儿子)、Daughter(女儿) Father进程: 将苹果放入盘中

操作系统历年试题与答案分析

一、选择题 1、操作系统内核与用户程序、应用程序之间的接口是(A )。 A. shell命令 B. 图形界面 C. 系统调用 D. C语言函数 2、面对一般用户,通过(A ) 方式控制操作系统 A. 系统调用 B.操作命令 C.用户调用 D.内核操作 3、用户要在程序一级获得系统帮助,必须通过(D)。 A.进程调度 B.作业调度 C.键盘命令D .系统调用 4、在操作系统中,JCB是指(A )。 A. 作业控制块 B.进程控制块 C.文件控制块 D.程序控制块 5、作业调度的关键在于(B)。 A.选择恰当的进程管理程序B .选择恰当的作业调度算法 C.用户作业准备充分 D.有一个较好的操作环境 6、按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指(A )调度算法。 A .先来先服务B. 最短作业优先 C.定时轮转法 D. 优先数法 7、为了对紧急进程或重要进程进行调度,调度算法应采用(B)。 A.先进先出调度算法 B. 优先数法 C.最短作业优先调度 D. 定时轮转法 8、关于处理机调度,以下说法错误的是。C A. 衡量调度策略的主要指标有:周转时间、吞吐率、响应时间和设备利用率。 B. 处理机调度可以分为4 级:作业调度、交换调度、进程调度和线程调度。 C. 作业调度时,先来先服务法不利于长作业,最短作业优先法不利于短作业。 D. 进程调度的算法有:轮转法、先来先服务法、优先级法和线性优先级法。 9、在非剥夺调度方式下,运行进程执行V原语后,其状态( A) A.不变

B.要变 C.可能要变 D.可能不变 10、作业从进入后备队列到被调度程序选中的时间间隔称为( C) A.周转时间 B.响应时间 C.等待时间 D.触发时间 11、操作系统作业管理的主要功能是(A )。 A. 作业调度与控制 B. 作业提交 C. 作业准备 D. 编制程序 12、操作系统中的作业管理是一种(A )。 A. 宏观的高级管理 B. 宏观的低级管理 C. 系统刚开始加电 D. 初始化引导完成 13、系统调用的目的是(A)。 A. 请求系统服务 B. 终止系统服务 C. 申请系统资源 D. 释放系统资源 14、系统调用是由操作系统提供的内部调用,它(B )。

计算机操作系统PV操作例题

计算机操作系统P V操 作例题 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

问题1一个司机与售票员的例子在公共汽车上,为保证乘客的安全,司机和售票员应协调工作: 停车后才能开门,关车门后才能行车。用PV操作来实现他们之间的协调。 S1:是否允许司机启动汽车的变量 S2:是否允许售票员开门的变量 driver()有三个进程R、M、P,它们共享一个缓冲区。R负责从输入设备读信息,每次读出一个记录并把它存放在缓冲区中:M在缓冲区加工读入的记录;P把加工后的记录打印输出。输入的记录经加工输出后,缓冲区中又可存放下一个记录。请用P、V操作为同步机构写出他们并发执行时能正确工作的程序。 答:三个进程共用一个缓冲区,他们必须同步工作,可定义三个信号量: S1:表示是否可把读人的记录放到缓冲区,初始值为1. S2:表示是否可对缓冲区中的记录加工,初始值为0. S3:表示记录是否加工好,可以输出,初始值也为0. 三个进程可如下设计: Begin S1,S2,S3:semaphore; S1:=l;S2:=S3:=0; cobegin process R begin L1:读记录; P(S1); 记录存入缓冲区;

V(S2); goto L1; end; process M begin L2:P(S2); 加工记录; V(S3); goto L2; end; process P begin L3:P(S3); 输出加工后的记录; V(S1); goto L3; end; coend; end. 6.现有4个进程R1,R2,W1,W2,它们共享可以存放一个数的缓冲器B.进程R1每次把从键盘上投入的一个数存放到缓冲器B中,供进程W1打印输出;进程R2每次从磁盘上读一个数放到缓冲器B中,供进程W2打印输出。当一个进程把数据存放到缓冲器后,在该数还没有被打印输出之前不准任何进程再向缓冲器中存数。在缓冲器

相关主题
文本预览
相关文档 最新文档