操作系统进程通信练习及答案

进程同步与通信练习题

(一)单项选择题

1.临界区是指( )。A.并发进程中用于实现进程互斥的程序段 B.并发进程中用于实现进程

同步的程序段 C.并发进程中用户实现进程通信的程序段 D.并发进程中与共享变量有关的

程序段

2.相关临界区是指( )。A.一个独占资源 B.并发进程中与共享变量有关的程序段 c.一

个共享资源 D.并发进程中涉及相同变量的那些程序段

3.管理若干进程共享某一资源的相关临界区应满足三个要求,其中( )不考虑。A一个进

程可以抢占己分配给另一进程的资源 B.任何进程不应该无限地逗留在它的临界区中 c.一

次最多让一个进程在临界区执行 D.不能强迫一个进程无限地等待进入它的临界区

4、( )是只能由P和v操作所改变的整型变量。A共享变量 B.锁 c整型信号量 D.记

录型信号量

5.对于整型信号量,在执行一次P操作时,信号量的值应( )。 A.不变 B.加1 C减

1 D.减指定数值

6.在执行v操作时,当信号量的值( )时,应释放一个等待该信号量的进程。A>0 B.<0 c.>=0

D.<=0

7.Pv操作必须在屏蔽中断下执行,这种不可变中断的过程称为( )。A初始化程序 B.原语c.子程序 D控制模块

8.进程间的互斥与同步分别表示了各进程间的( )。 A.竞争与协作 B.相互独立与相

互制约 c.不同状态 D.动态性与并发性

9并发进程在访问共享资源时的基本关系为( )。 A.相互独立与有交往的 B.互斥与同步

c并行执行与资源共享 D信息传递与信息缓冲

10.在进程通信中,( )常用信件交换信息。 A.低级通信 B.高级通信 c.消息通信D.管道通信

11.在间接通信时,用send(N,M)原语发送信件,其中N表示( )。A.发送信件的进程

名 B.接收信件的进程名 C信箱名 D.信件内容

12.下列对线程的描述中,( )是错误的。A不同的线程可执行相同的程序 B.线程是资

源分配单位 c.线程是调度和执行单位 D.同一进程中的线程可共享该进程的主存空间13.实现进程互斥时,用( )对应,对同一个信号量调用Pv操作实现互斥。 A.一个信号

量与一个临界区 B.一个信号量与—个相关临界区 c.一个信号量与一组相关临界区 D一

个信号量与一个消息

14.实现进程同步时,每一个消息与一个信号量对应,进程( )可把不同的消息发送出去。A.在同一信号量上调用P操作 B在不同信号量上调用P操作 c.在同一信号量上调用v

操作 D.在不同信号量上调用v操作

(二)填空题

1.目前使用的计算机的基本特点是处理器______执行指令。 2进程的______是指进程在顺

序处理器上的执行是按顺序进行的。 3.当一个进程独占处理器顺序执行时,具有______

和______两个特性。 4.进程的封闭性是指进程的执行结果只取决于______,不受外界影响。5进程的可再现性是指当进程再次重复执行时,必定获得______的结果。 6.一个进程的工

作在没有全部完成之前,另一个进程就可以开始工作,则称这些进程为______. 7若系统中

存在一组可同时执行的进程,则就说该组进程具有______。 8.如果—个进程的执行不影

响其他进程的执行,且与其他进程的进展情况无关,则说这些并发进程相互之间是______的。 9如果一个进程的执行依赖其他进程的进展情况,则说这些并发进程相互之间是______ 10.有交往的并发进程一定______某些资源。 11.有交往的进程执行时可能产生与时间有

关的错误,造成不正确的因素与进程______、______和外界的影响有关。 12.对______的使用不受限制,这是使有交往的并发进程执行时出现与时间有关的错误的根本原因。 13.临界区是指并发进程中与______有关的程序段。 14.______是指并发进程中涉及到相同变量的那些程序段。 15.只要涉及相同变量的若干进程的相关临界区______,就不会造成与时间有关的错误。 16.进程的______是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用。 17.Pv操作是在一个信号量上进行的______的过程,这种过程也称为______ 18.利用Pv操作管理相关临界区时,必须成对出现,在进入临界区之前要调用______,在完成临界区操作后要调用______。l9.若信号量的初值为1,用Pv操作能限制一次______进程进入临界区操作。 20进程的______是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息。 21 ______能把它进程需要的消息发送出去,也能测试自己需要的消息是否到达。 22.Pv操作不仅是实现______的有效工具,而且也是一种简单而方便的______工具。 23.用Pv操作实现进程同步时,调用______测试消息是否到达,调用______发送消息。 24.用Pv操作实现生产者消费者之间的同步时,在访问共享缓冲区的______和______分别调动P操作和v操作。 25.进程的互斥实际上是进程______的一种持殊情况。 26.进程的互斥是进程间______共享资源的使用权,其结果没有______,而进程的同步则在共享资源的并发进程之间有一种______依赖关系。 27.Pv操作也可看作为进程间的一种通信方式,由于只交换了少量的信息,故称为______ 28.通过专门的通信机制实现进程间交换大量信息的通信方式称为______。 29.采用高级通信方式时,进程间用

______来交换信息。 30.最基本的通信原语有两条,它们是______原语和______原语。 31.进程通信方式有两种:______和______。 32.直接通信是固定在______进程之间通信,而间接通信以信箱为媒体实现通信。 33.一个信息可以由______和______两部分组成。 34.进程间通过信件交换信息,可实现______。 35______是进程中可以独立执行的子任务。 36.线程是处理器的独立______单位,多个线程可以______执行。 37.线程与进程有许多相似之处,所以线程又称为______。 38.线程在生命周期内会经历______、______和______之间各种状态变化。 39.采用多线程技术可把生产者消费者两个进程作为一个进程和进程中的两个线程来处理,这两个线程仍具有______,但不在需要额外的______。 40.在使Pv

操作实现进程互斥时,调用______相当于申请一个共享资源,调用______相当于归还共享资源的使用权。 41.在多线程操作系统中,线程与进程的根本区别在于进程作为______单位,而线程是______单位。

(二)简答题

1.什么是进程的顺序性和并发性? 2为什么并发进程执行时可能会产生与时间有关的错误?如何避免? 3.简述临界区的相关临界区的概念。 4.管理相关临界区有些什么要求? 5.假设PV操作用信号量s管理某个共享资源,请问当s>0,S=0和S<0时,它们的物理意义是什么? 6.请给出Pv操作的定义。 7.用Pv操作实现进程间同步与互斥应注意些什么? 8.何谓进程通信?最基本的通信原语有哪些? 9直接通信与间接通信有何区别? 10.线程与进程的根本区别是什么?

(四)应用题

1.有一南北向的单行车道,在车道A、B两端以外一段距离处有减速标志和自动计数系统,A、B两处设有信号灯,信号灯的管理要求如下:绿灯行,红灯停,A、B两端红绿灯同时变换,一方红变绿时另一方绿变红。绿灯保持到同一方向进入的车辆全部驶入AB段,当AB之间无车辆行驶时,允许到达A端(或B端)的车辆驶入AB段,但只准某一方的车辆进入;一方最后一辆车进入AB段后,双向亮红灯让车辆全部通过(假设2分钟),然后让已在等待的任何一方车辆驶入。试用Pv操作管理AB路段车辆的行驶。

2在测温系统中要完成采样、转换和显示等任务。采样过程把从传感器上得到的整型微电压

值存入一个缓冲区,转换过程把微电压值从缓冲区中取出,计算转换成温度值再存入该缓冲区,显示过程把缓冲区中的温度值取出并显示。试用Pv操作实现三个过程共享缓冲区的同步问题。

3,现有三个进程,Reader进程把键盘输入的一个整数读入缓冲区B1,Executor进程把B1中的数据取出进行处理,处理完后存到输出缓冲区B2中,最后由Pinter进程将B2中的数据打印出来。假设B1和n2都只能存放一个整数,请用Pv操作管理这三个并发进程的执行. 4.用进程通信的方法解决生产者消费者问题。要求生产者能告诉消费者产品的说明、规格、价格等。而消费者能反馈对物品的评价和处理情况。

第八章进程同步与通信练习题参考答案

(一)单项选择题

1.D 2.D 3.A 4.c 5.c 6.D 7.B 8.A 9 B 10 B 11.C 12.B 13.C 14.D

(二)填空题

1.顺序 2.顺序性 3封闭性,可再现件 4.进程本身 5.相同 6.可同时执行的 7并发性 8.无关 9.有交往的 10.共享 11.占用处理器的时间,执行的速度 12.共享资源 13共享变量14.相关临界区 15互斥执行 16.互斥 17.不可被中断,原语 18.P操作,v操作 19.只有一个 20.同步 21.同步机制 22.进程互斥,同步 23.P操作,v操作 24.前,后 25.同步 26.竞争,固定的必然关系,必然的 27.低级通信方式 28.进程通信 29.信件 30.send,receive 31.直接通信,间接通信 32.一对 33.信箱说明,信箱体 34.进程同步 35.线程 36.调度,并发 37.轻型进程 38.等待态,就绪态,运行态 39并发性,公共缓冲区 40.P 操作,v操作 41.资源分配,调度和执行

(三)简答题

1.进程的顺序性是指进程在顺序的处理器上严格地按顺序执行。若系统中存在一组可同时执行的过程,则该组程序具有并发性。可同时执行的进程是指这些进程执行时在时间上是重叠的,即一个进程的工作没有全部完成之前,另一个进程就可以开始工作。

2.有交往的并发进程可能会同时使用共享资源,如果对这种情况不加控制,由于进程占用处理器的时间、执行的速度和外界的影响等,就会引起与时间有关的错误。只要使若干并发进程的相关临界区互斥执行,就可避免造成这类错误。

3.临界区是指并发进程中与共享变量有关的程序段。相关临界区是指并发进程中涉及到相同变量的那些程序段。

4.管理相关临界区有三点要求:(1)一次最多让一个进程在临界区执行;(2)任何一个进入临界区执行的进程必须在有限的时间内退出临界区;(3)不能强迫一个进程无限地等待进入它的临界区。

5.信号量S的物理意义如下: s>0时,S表示可使用的资源数或表示可使用资源的进程数。s=0时,表示无资源可供使用和表示不允许进程再进入临界区。s<0时,│S│表示等待使用资源的进程个数或表示等待进入临界区的进程个数。

6.Pv操作是指在信号量上进行的P操作和v操作。假定信号量为s,则P(s)和v(s)的定义如下:

Procedure p(Var s:semaphore);

begin s:=s-1; if s<0 then w(s) end;

Procedure v(Var s:semaphore);

begin s:=s+1; if s<=0 then r (s) end;

其中,W(s)表示将调用P(s)过程的进程置成“等待信号量s”的状态,且将其排入等待队列。R(s)表示释放一个“等待信号量s”的进程,该进程从等待队列退出并加入就绪队列中.

7.(1)对每一个共享资源(含变量)都要设立信号量,互斥时对一个共享资源设一个信号量,

同步时对一个共享资源可能要设两个或多个信号量,视由几个进程来使用该共享变量而定。(2)互斥时信号量的初值可大于或等于1,同步时,至少有一个信号量的初值大于等于1。(3)Pv

操作一定要成对调用,互斥时在临界区前后对同一信号量作Pv操作,同步时则对不同的信

号量作Pv操作,Pv操作的位置一定要正确。(4)对互斥和同步混合问题.PV操作可能会嵌套,—般同步的Pv操作在外,互斥的Pv操作在内。

8通过专门的通信机制实现进程间交换大量信息的通信方式称为进程通信。最基本的通信原

语有send原语和receive原语,前者负责发送信件,后者负责接收信件。

9.直接通信是固定在一对进程间进行的,而间接通信时以信箱为媒体实现通信。因此在send

和receive原语中,第一个参数互不相同。直接通信时分别为接收者进程名和发送者进程名,

而间接通情时均为信箱名。

10.在采用线程技术的操作系统中,线程与进程的根本区别在于:进程是资源的分配单位,而线程是调度和执行单位。

(四)应用题

1分析:本题可参考读者写者问题,相当于两组读者使用一个共享文件的互斥问题。对共享

资源AB路段设一个信号量s,对A、B两端的共享计数器cA和cB应设两个信号量sA和SB。所设计的程序段如下:

BEGIN s,sa,ab: semaphore; ca,cb:integer; s:=1; sa:=1; sb:=1;

Cobegin

Process car-ai;{I=1,2,……}

Begin p(sa); ca:=ca+1; if ca=1 then p(s); v(sa); {使信号灯A端绿,B端红,车辆

从A端驶入AB段}

p(sa); ca:=ca-1; if ca=0 then begin {A,B两端都亮红灯2分钟} v(s) end; end; Process car-bj;{j=1,2,……}

Begin p(sb); cb:=cb+1; if cb=1 then p(s); v(sb); {使信号灯B端绿,A端红;车辆从

B端驶入AB段}

p(sb); cb:=cb-1; if cb=0 then begin {A,B两端都亮红灯2分钟} v(s) end; end; coend; end;

2分析:此题类似于两个生产者消费者问题。采样过程相当于生产者,转换过程相当于消费者,显示过程为消费者,而转换过程还充当生产者。为此设立三个信号量:SS表示采集的

微电压值能否存入缓冲区,初值为1;Sc表示缓冲区中是否有微电压值要转换成温度值,,初

值为0;sD表示缓冲区是否有温度值要显示,初值为0。解决此同步问题的程序段为:

BEGIN ss,sc,sd: semaphore; buffer : integer; ss:=1; sc:=0; sd:=0;

Cobegin

Process sample;

Begin L1: get a sample; p(ss); buffer:= sample; v(sc); goto L1 end;

Process convert;

Begin L2: p(sc); take a sample from buffer; convert the sample to temperature;

buffer:= temperature; v(sd); goto L2 end;

Process display;

Begin L3: p(sd); take a temperature from buffer; v(ss); display the temperature; goto L3 end;

Coend; end;

3.分析:本题也可看作是两个生产者消费者问题。Reader进程为生产者,Executor进程既

是消费者又是生产者,Printer进程为消费者,由于这里有两个缓冲区,所以要设四个信号量:sR表示是否能把数据存入缓冲区B1,初值为1;SEl表示缓冲区Bl中是否已存有数据

可供处理,初值为0;SE2表示是否把处理过的数据存入缓冲区B2,初值为1;sP表示缓冲区

B2中是否已存有数据可供打印,初值为0。用Pv操作管理这三个并发进程的程序如下:BEGIN sr,se1,se2,sp: semaphore; b1,b2 : integer; sr:=1; se1:=0; sp:=0; se2:=1; Cobegin

Process reader;

Var number:integer;

Begin L1: read a number ; p(sr); b1:= number; v(se1); goto L1 end;

Process executor;

Var number2:integer;

Begin L2: p(se1); take a number from b1; v(sr); process the number to number2;

p(se2); b2:= number2; v(sp); goto L2 end;

Process printer;

Begin L3: p(sp); take a number from b2; v(se2); print the number; goto L3 end; Coend; end;

4.设生产者消费者进程要设立的公用信箱B,假设现在信箱中放一封初始信件,表示物品

已取走。用进程通信管理生产者消费者问题的程序如下:

begin …..

PROCESS Producer;

……

L1: Produce a product;

L2: receive(B,H);

If {x中没有表示物品已取走} then go to L2

else begin {组织回信M,M中含产品完成存放地点,产品说明,规格,价格等}

send(B,M); end; goto L1 end;

PROCESS consumer;

……

L 3:receive(B,Y);

If {Y中表示产品已完成} then begin {按信件中地址取出比物品,组织回信M;回信中

表示物品已取走,并反映对产品的评价和处理情况} send(B,m); goto L3; end; ……. End; end;

相关推荐
相关主题
热门推荐