第3章进程同步与通信练习题
(一)单项选择题
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操作必须在屏蔽中断下执行,这种不可变中断的过程称为()。
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 ?有交往的并发进程一定________ 某些资源。
门?有交往的进程执行时可能产生与时间有尖的错误,造成不正确的因素与进程________________ 、
_____ 和外界的影响有矢。
12 ?对_____ 的使用不受限制,这是使有交往的并发进程执行时出现与时间有尖的错误的根本原
因。
13 ?临界区是指并发进程中与 _________ 有尖的程序段。
14?—是指并发进程中涉及到相同变量的那些程序段。
15 ?只要涉及相同变量的若干进程的相尖临界区 __________ ,就不会造成与时间有尖的错误。
16 ?进程的—是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用。
17. Pv操作是在一个信号量上进行的 _________ 的过程,这种过程也称为__________
18 ?利用Pv操作管理相尖临界区时,必须成对出现,在进入临界区之前要调用______ ,在完成临
界区操作后要调用_______ 。
19. ___________________________________________ 若信号量的初值为〔,用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和Sv 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 ?用进程通信的方法解决生产者消费者问题。要求生产者能告诉消费者产品的说明、规格、价格等。而消费者能反馈对物品的评价和处理情况。
答案
第3章进程同步与通信练习题参考答案
(一)单项选择题
1 ? D2. D3. A4. c5. c6. D7. B8. A9B10B11. C 12. B 13. C 14. D
(二)填空题
1.顺序
2.顺序性
3.封闭性,可再现件
4.进程本身
5.相同
6.可同时执行的7并发性8.无尖9.有交往的10 .共享11.占用处理器的时间,执行的速度12 .共享资源13共享变量14 .相尖临界区15互斥执行16?互斥1
7.不可被中断,原语1
8. P操作,v操作1
9.只有一个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 )一次最多让一个进程在临界区执行;⑵任何一个进入临界区
执行的进程必须在有限的时间内退岀临界区;(3)不能强迫一个进程无限地等待进入它的临界区。
5 ?信号量S的物理意义如下:s〉0时,S表示可使用的资源数或表示可使用资源的进程数。s= 0时,表示无资源可供使用和表示不允许进程再进入临界区。sv 0时,丨S丨表示等待使用资源的
进程个数或表示等待进入临界区的进程个数。
6. Pv操作是指在信号量上进行的P操作和v操作。假定信号量为s,则
P(s)和v(s)的定义如下:
Procedure p(Var s:semaphore);
begin s:=s; 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)对每一个共享资源(含变量)都要设立信号量,互斥时对一个共享资源设一个信号量,同步时
对一个共享资源可能要设两个或多个信号量,视由几个进程来使用该共享变量而定。⑵互斥时
信号量的初值可大于或等于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和SBo所设计的程序段如下:
BEGIN s,sa,ab: semaphore; ca,cb:integer; s:=1; sa:=1; sb:=1;
Cobegi n
Process car-ai;{l=1,2, ........ }
Begin p(sa); ca:=ca+1; if ca=1 then p(s); v(sa); {使信号灯A 端绿,B 端红,车辆从A 端驶入人8段} p(sa); ca:=ca-1; if ca=0 then beg in {A,B 两端都亮红灯2 分钟} v(s) en d; end;
Process car-bj;{j=12 .......... }
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;
Cobegi n
Process sample;
Begin L1: get a sample; p(ss); buffers sample; v(sc); goto L1 end;
Process con vert;
Begin L2: p(sc); take a sample from buffer; convert the sample to temperature;
buffers 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进程为消费者,由于这里有两个缓冲区,所以要设四个信号量:sF表示是否能把数据存入缓冲区B1,初值为1 ; SE表示缓冲区BI中是否已存有数据可供处理,初值为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;
Cobegi n
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侣,M); end; goto L1 end;
PROCESS consumer;
L 3 : receive侣,Y);
If {丫中表示产品已完成}then beg in {按信件中地址取岀比物品,组织回信M ;回信中表示物品已取走'并反映对产品的评价和处理情况}send(B ‘ m); goto L3; end;
.End; end;