好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

进程同步与通信 练习题

(一) 单项选择题

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

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

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

c ?一

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

3 ?管理若干进程共享某一资源的相关临界区应满足三个要求

,其中()不考虑。A 一个进

c ? 一

程可以抢占己分配给另一进程的资源 次最多让一个进程在临界区执行

5.

A .不变B.加1 C减 I D .减指定数值

B?任何进程不应该无限地逗留在它的临界区中

D .不能强迫一个进程无限地等待进入它的临界区

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

对于整型信号量,在执行一次 P操作时,信号量的值应()。

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

A>0 B.<0 c.>=0

操作必须在屏蔽中断下执行,这种不可变中断的过程称为 程序 D 控制模块

&进程间的互斥与同步分别表示了各进程间的

()。A初始化程序B ?原语c ?子

()。A ?竞争与协作 B .相互独立与相

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

9并发进程在访问共享资源时的基本关系为

()。A ?相互独立与有交往的 B ?互斥与同步

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

10 在进程通信中, ( ) 常用信件交换信息。 A 低级通信 B 高级通信 c 消息通信 D 管道通信 II ?在间接通信时,用 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操作管理相关临界区时,必须成对出现,在进入临界区之前要 调用 ______ ,在完成临界区操作后要调用 ________ o 19.若信号量的初值为1,用Pv操作能限 制一次 _____ 进程进入临界区操作。 20 进程的 ______ 是指并发进程之间存在一种制约关系 , 一个进程的执行依赖另一个进程的消息。 测试自己需要的消息是否到达。

21 ________ 能把它进程需要的消息发送出去,也能

22 . Pv操作不仅是实现 ________ 的有效工具,而且也是一种

简单而方便的 _____ 工具。23 .用Pv操作实现进程同步时, 调用 ________ 测试消息是否到达, 调用 ______ 发送消息。24 .用Pv操作实现生产者消费者之间的同步时,

在访问共享缓冲区

的 _____ 和 ______ 分别调动P操作和v操作。25 ?进程的互斥实际上是进程 _____________ 的一种 持殊情况。26 ?进程的互斥是进程间 __________ 共享资源的使用权,其结果没有 _________ ,而进 程的同步则在共享资源的并发进程之间有一种 _________ 依赖关系。27 . Pv操作也可看作为进 程间的一种通信方式,由于只交换了少量的信息,故称为 ___________ 28 .通过专门的通信机 制实现进程间交换大量信息的通信方式称为 ________ o 29 .采用高级通信方式时 , 进程间用

来交换信息。30 .最基本的通信原语有两条,它们是 固定在 进程之间通信,而间

原语和 原语。31 .进 程通信方式有两种: 和 o 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操作实现进程间同步与互斥应注意些什么 么

(四)应用题

1.有一南北向的单行车道,在车道

8 .何谓

进程通信最基本的通信原语有哪些 9直接通信与间接通信有何区别 10 .线程与进程的根 本区别是什

A、B两端以外一段距离处有减速标志和自动计数系统,

A、B两端红绿灯同时变

AB段,当AB之

A、B两处设有信号灯,信号灯的管理要求如下:绿灯行,红灯停,

换,一方红变绿时另一方绿变红。绿灯保持到同一方向进入的车辆全部驶入

间无车辆行驶时,允许到达 A端(或B端)的车辆驶入AB段,但只准某一方的车辆进入;一 方最后一辆车进入 AB段后,双向亮红灯让车辆全部通过 (假设2分钟),然后让已在等待的任 何一方车辆驶入。试用 Pv操作管理AB路段车辆的行驶。

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

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

3,现有三个进程, Reader 进程把键盘输入的一个整数读入缓冲区

B1, Executor 进程把 B1

中的数据取出进行处理, 处理完后存到输出缓冲区 B2中,最后由Pin ter进程将B2中的数据

打印出来。假设B1和n2都只能存放一个整数,请用

4.用进程通信的方法解决生产者消费者问题。

Pv操作管理这三个并发进程的执行 ?

要求生产者能告诉消费者产品的说明、 规格、

价格等。而消费者能反馈对物品的评价和处理情况。 第八章 进程同步与通信 练习题参考答案

(一) 单项选择题

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 .占用处理器的时间,执行的速度 1 2 .共享资源 1 3共享变

量 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

时,表示无资源可供使用和表示不允许进程再进入临界区。 用资源的进程个数或表示等待进入临界区的进程个数。

6. Pv操作是指在信号量上进行的

s v 0时,|S|表示等待使

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;{l=1,2, v(sa); { 从A端驶入AB段}

p(sa); ca:=ca-1; if ca=0 then begin Process car- bj;{j=1,2, ... }

Begin p(sb); cb:=cb+1; if cb=1 then p(s); v(sb); { B端驶入AB段}

... }

Begin p(sa); ca:=ca+1; if ca=1 then p(s);

使信号灯A端绿,B端红,车辆

{A,B 两端都亮红灯 2分钟 } v(s) end; end;

使信号灯B端绿,A端红;车辆从 两端都

亮红灯 2分钟 } v(s) end; end;

p(sb); cb:=cb-1; if cb=0 then begin {A,B coend; end;

2分析:此题类似于两个生产者消费者问题。采样过程相当于生产者,转换过程相当于消费

者,显示过程为消费者,而转换过程还充当生产者。为此设立三个信号量: 值为0; sD表示缓冲区是否有温度值要显示,初值为

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;

SS表示采集的

,初

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

0。解决此同步问题的程序段为:

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

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 ; SEI表示缓冲区Bl中是否已存有数据

B2,初值为1; sP表示缓冲区

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

B2中是否已存有数据可供打印,初值为 Cobegin

Process reader; Var number:integer;

0。用Pv操作管理这三个并发进程的程序如下:

BEGIN sr,se1,se2,sp: semaphore; b1,b2 : integer; sr:=1; se1:=0; sp:=0; se2:=1;

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;

0gb573437300kc5204u903ypi6bk8900j1g
领取福利

微信扫码领取福利

微信扫码分享