当前位置:文档之家› 操作系统第三讲进程通信习题课

操作系统第三讲进程通信习题课


第三讲

习题课
【例3.3】★若信号量S的初值为2,当前值 为-1,则表示有__________等待进程。 A. 0个 B. 1个 C. 2个 D. 3个 解:当信号量值小于0时,其绝对值表示系 统中因请求该类资源而被阻塞的进程数目, 故本题答案为B。
【例3.4】进程从运行态到阻塞态不可能是 由于现运行进程( )。 A.出现缺页中断 B.发生越界中断 C.申请磁带读/写 D.执行了V操作 解:处于运行的进程由于A、B、C事件的 发生都可能变为阻塞状态。故本题答案为 D.

第三讲
二、填空题

习题课
【例3.11】临界资源的概念是________, 而临界区是指________。 解:临界资源是指多个进程必须互斥访问 的资源。临界区是指进程中访问临界资源的 那部分代码。
【例2.12】★如果信号量的当前值为-4,则 表示系统中在该信号量上有__________个 等待进程。 解:当信号量值小于0时,其绝对值表示系 统中因请求该类资源而被阻塞的进程数目。 故本题答案为:4。
PA 缓冲区1 PB 缓冲区2 复制 PC
从磁盘读入
打印
例题解答
【例3.21】★某自选商场最多能同时容纳100人 购物,出入口每次只允许一人通过。同时出入 口放有100个篮子,供购物者使用,要求购物 者进入商场时带一只篮子,出来时结账并归还 篮子。为了使商场正常运行,用PV操作写出 进 购物者购物流程。 取


【例3.18★】设有一个作业由四个进程组 成,这四个进程在运行时必须按下图的次 序,试用P, V操作表达四个进程的同步关 系。
T1
T2
T3
T4 四个进程的运行次序

解:图中说明作业启动后进程T1先执行。当 进程T1结束后,进程T2, T3可以开始执行。 进程T2, T3完成后,T4才能开始执行。为了 确保这一执行顺序,设三个同步信号量b2, b3, b4分别表示进程T2, T3, T4是否可以开始 执行,其初值均为0。这四个进程的同步描 述如下: semaphore b2=0;/*表示进程T2是否可 以开始执行 semaphore b3=0;/*表示进程T3是否可 以开始执行 semaphore b4=0;/*表示进程T4是否可 以开始执行
【例3.19】★写出P,V操作的含义。 解:P, V操作是两条原语,它们的定义如 下: P操作。P操作记为P(S),其中S为一信号量, 它执行时主要完成下述动作: (1)S=S-1; (2)若S≥0,则进程继续运行; (3)若S<0,则该进程被阻塞,并将它 插入该信号量的等待队列中。



【例3.10】设有4个进程,进程P1和P2共享变 量SA,进程P3和P4共享变量SB,在()种情 况下会出现与时间有关的错误。 A.进程P2正在访问SA,同时进程P4访问SB B.进程P1正在访问SA,同时进程P3访问SB C.进程P1正在访问SA,同时进程P4访问SB D.进程P1正在访问SA,同时进程P2访问SA 解:共享变量必须互斥使用,因P1和P2共享SA, 因此P1和P2不能同时访问SA。故本题答案为D。

【例3.9】对于两个并发进程,设互斥信号 量为mutex,若mutex=0,则__________。 A.表示没有进程进入临界区 B.表示有一个进程进入临界区 C.表示有一个进程进入临界区,另一个进 程等待进入 D.表示有两个进程进入临界区 解:互斥信号量mutex的初值为1,有一个进程 进入临界区时,mutex的值为0,有一个进程 进入临界区且另一个进程等待时,mutex的 值为-1,故本题答案为B。

【例2.15】信号量的物理意义是当信号量值 大于0时表示_________;当信号量值小于0 时,其绝对值为________。 解:当信号量值大于0时,表示系统中当前 可用资源的数目;当信号量值小于0时,其绝 对值表示系统中因请求该类资源而被阻塞的 进程数目。故本题答案为:① 可用资源的数 目 ② 因请求该资源而被阻塞的进程数目。

【例3.8】下述哪个选项不是管程的组成部 分____________。 A.局部于管程的共享数据结构 B.对管程内数据结构进行操作的一组过程 C.管程外过程调用管程内数据结构的说明 D.对局部于管程的数据结构设置初始值的语 句 解:管程由局部于管程的共享变量说明、对管 程内数据结构进行操作的一组过程以及对局 部于管程的数据设置初始值的语句组成,故 本题答案为C。
第三讲
进程通信与控制习题课
一、选择题 【例3.1】★在操作系统中,P, V操作是一种 ____________。 A.机器指令 B.系统调用命令 C.作业控制命令 D.低级进程通信原语 解:P, V操作交换的信息量小,为低级进程通信 原语,故本题答案为D。
第三讲

习题课
【例3.2】进程从运行状态到阻塞状态可能 是由于( )。 A.现运行进程执行了P操作 B.现运行进程时间片用完 C.现运行进程执行了V操作 D.进程调度程序的调度 解:处于运行状态的进程执行P操作,当信 号量值小于0时,进入等待队列而被阻塞。 帮本题答案为A。

三、综合题 【例3.17】己知一个求值公式(A2 +3B)/(B+ 5A),若A. B已赋值,试画出该公式求值过程的前 驱图。 解:在本题公式的求值过程中,有些运算分 量的计算是可以并发进行的。为了描述方便起 见,我们设置了一些变量保存中间计算结果, 并为每条语句命名,如图2.6所示。其求值过 程的前驱图如图2.7所示。
semaphore b2=b3=b4=0; main( ) cobegin {T1;V(b2);V(B3);} {P(b2); T2;V(B4);} {P(b3); T3;V(B4);} {P(b4); P(B4); T4;} coend
T1
b2 T2 b4 b3 T3 b4
T4
四个进程的运行 次序

例题解答
购存 物取 蓝区

出 去
结 帐 台
解:进程中访问临界资源的那段代码称为临 界区,故本题答案为C.
【例3.7】下列描述不正确的是( )。 A. P操作和V操作是对信号量实施的操作 B.并发进程在访问共享资源时可能出现与 时间相关的错误 C. P操作或V操作在执行时可能被并发进 程打断 D. PV操作能实现对临界区管理的要求 解:P、V操作是原语操作,执行过程中不 可能被打断。故本题答案为C.
V操作。V操作记为V(S), S为一信号量, 它执行时主要完成下述动作: (1)S=S+1; (2)若S>0,则进程继续执行; (3)若S≤0,则从信号量等待队列中移 出队首进程,使其变为就绪状态。
P, V操作可以形式化 定义如下: struct semaphore { int count; queuetype queue; }; P(semaphore s) { s.count--; if(s.count<0) { 阻塞该进程; 将该进程插入等待 队列s.queue; } }

【例2.16】假设有N个进程共享同一临界资源, 若使用信号量机制实现对临界资源的互斥访 问,则信号量值的变化范围是________。 解:采用信号量机制实现N个进程对临界资 源的互斥访问,信号量的初始值是1,也是该 信号量的最大值。如果有进程要访问临界资 源,需执行P操作,则信号量的值减1。考虑 极端情况,N个进程都要求访问临界资源,信 号量将执行N个减1操作,因此信号量的最小 值为1-N,故答案为:1~1-N

【例2.13】进程间的高级通信机制可归纳为 3 大 类 , 分 别 是 ________ , ________ 和 ________。 解:进程间的高级通信机制可归纳为3大类: 共享存储器系统、消息传递系统和管道通信。
ห้องสมุดไป่ตู้
[例2.14]在多道程序系统中,进程之间存在着 的不同制约关系可以划分为两类: __________与__________。__________指 进程间具有的一定逻辑关系;__________是 指进程间在使用共享资源方面的约束关系。 解:进程之间存在着的不同制约关系可以划 分为同步和互斥两类,同步指进程间具有的 一定逻辑关系,互斥是指进程间在使用共享 资源方面的约束关系。故本题答案为:① 同 步 ② 互斥 ③ 同步 ④ 互斥。

【例3.5】为了进行进程协调,进程之间应 当具有一定的联系,这种联系通常采用进 程间交换数据的方式进行,这种方式称为 ( )。 A.进程互斥 B.进程同步 C.进程通信 D.进程制约 解:进程间交换数据即进程通信。故本题 答案为C.


【例3.6】★临界区是__________。 A.一个缓冲区 B.一段共享数据区 C.一段程序 D.一个互斥资源
V(semaphore s) { s.count++ if(s.count<=0) { 从等待队列s.queue取 出第一个进程; 将该进程插入就绪队 列; } }

【例3.20】★ 有三个进程PA, PB和PC协作解 决文件打印问题(见下图):PA将文件记录 从磁盘读入内存的缓冲区1,每执行一次读一 个记录;PB将缓冲区1的内容复制到缓冲区2, 每执行一次复制一个记录;PC将缓冲区2的内 容打印出来,每执行一次打印一个记录。缓冲 区的大小和一个记录大小一样。请用P、V操 作来保证文件的正确打印。
相关主题