贵州大学计算机科学与技术学院《操作系统》第 06 章习题解析

【客观题】参考答案

1 . 在操作系统中, P、 V 操作是一种( D )。

A. 机器指令                                                 B. 作业控制命令

C. 系统调用命令                                          D. 低级进程通信原语

2. P 操作可能导致( C )。

A. 进程就绪                                                 B. 进程结束

C. 进程阻塞                                                 D. 新进程创建

【解析】 P 操作即 wait 操作,表示等待某种资源直到可用。若这种资源暂时不可用,则 进程进入阻塞状态。注意,执行 P 操作时的进程处于运行状态。

3. 原语是( D )。

A. 运行在用户态的过程                                B. 可中断的指令序列

C. 操作系统的内核                                       D. 不可分割的指令序列

【解析】 原语(Primitive/Atomic Action),顾名思义,就是原子性的、不可分割的操 作。严格定义为:由若干个机器指令构成的完成某种特定功能的一段程序,其执 行必须是连续的,在执行过程中不允许被中断。

4. 若一个信号量的初值为 3,经过多次 PV 操作以后当前值为-1,此表示等待 进入临界区的进程数是( A )。

A. 1                                                              B. 2

C. 3                                                              D. 4

5. 在使用信号量及 P、 V 操作机制解决问题时,一个进程执行 V 操作意味着( A )。

A. 可能有另一个进程从等待队列进入就绪队列

B. 该进程从等待队列进入就绪队列

C. 该进程从磁盘调入内存

D. 可能有另一个进程从磁盘被调入内存

【解析】 释放一个资源,可能会有进程得到这个资源,从等待状态变成就绪状态。

6. 在用信号量机制实现互斥时,互斥信号量的初值为( B )。

A. 0                                                            B. 1

C. 2                                                            D. 3

【解析】

7. 有三个进程共享同一程序段,而每次只允许两个进程进入该程序段,若用 PV 操作同步机制,则信号量 S 的取值范围是( D )。

A. 1, 0, -1, -2                                    B. 3, 2, 1, 0

C. 2, 1, 0, -1, -2                             D. 2, 1, 0, -1

【解析】 程序段最多允许两个进程进入,则表示资源的数目为 2,因此,信号量初值为 2。每进入一个进程,信号量的值减 1,当信号量的值减为 0 时,表示两个个进程均 进入程序段,此时若再有一个进程请求进入执行 P 操作,则信号量的值减为-1, 进程阻塞。

8. 当一个进程因在互斥信号量 mutex 上执行 V(mutex)操作而导致唤醒另 一个进程时,则执行 V 操作后 mutex 的值为( D )。

A. 大于 0                                                    B. 小于 0

C. 大于等于 0                                             D. 小于等于 0

【解析】 由题意可知,系统原来存在等待进入临界区的进程,故 mutex 小于等于-1,故 在执行 V(mutex)操作后, mutex 的值小于等于 0

9. 有一个计数信号量 S,若干个进程对 S 进行了 28 次 P 操作和 1 8 次 V 操作 之后,信号量 S 的值为 0。当 S 所对应资源全部重新归还系统后,假如若 干个进程对信号量 S 进行了 1 5 次 P 操作和 2 次 V 操作。则此时有( C )个 进程等待在 S 的队列中。

A. 1                                                              B. 2

C. 3                                                              D. 4

【解析】 S-28+ 1 8=0,故 S= 1 0 S-1 5+2= 1 0-1 5 +2=-3,表示有 3 个进程在队列中等待。

1 0. 下列对临界区的论述中,正确的是( D )。

A. 临界区是指进程中用于实现进程互斥的那段代码

B. 临界区是指进程中用于实现进程同步的那段代码

C. 临界区是指进程中用于实现进程通信的那段代码

D. 临界区是指进程中用于访问共享资源的那段代码

【解析】

1 1 . 下列( C )场景问题只包含进程互斥问题。

A. 田径场的四百米接力比赛

B. 两个进程通过一个缓冲区传递数据

C. 一个进程读文件,一个进程写文件

D. 公共汽车上司机和售票员的工作配合

1 2. 下列描述的四个现场景中, ( B )呈现的是既没有进程同步关系又没有进程 互斥关系。

A. 不同的用户使用订票软件同时访问同一个订票数据库

B. 不同的用户在各自的电脑上同时编译程序

C. 不同的用户在各自的电脑上打同一盘网络麻将

D. 不同的用户在同一台游戏机上玩踢足球的电子游戏

1 3. 若干进程之间相互合作,共同完成一项任务。进程的这种关系称为( A )。

A. 同步                                                        B. 并发

C. 互斥                                                        D. 异步

【解析】

​​​​​​​

1 4. 有两个并发进程 P1 .P2,其程序代码如下(其中 x 为 P1、 P2 的共享变 量),则不可能打印出的 z 和 c 的值为( C )。

​​​​​​​

A. 3, 9                                                       B. 3, 1

C. -1, 1                                                      D. -1, 9

【解析】 若 P1 输出-1,则说明 P2 对 x 的赋值晚于 P1, x 的最终值为-3,此时 P2 的输 出为 9。

1 5. 进程 P1 和 P2 均包含并发执行的线程,部分伪代码描述如下所示。下列选 项中,需要互斥执行的操作是( B )。

A. a= 1 与 a=2                                             B. x+ = 1 与 x+ =2

C. a=x 与 b=x                                              D. x+ = 1 与 x+ =3

【解析】

1 6. 有两个并发执行的进程 P1 和 P2,它们共享初值为 1 的变量 x, Pl 对 x 加 1, P2 对 x 减 1。加 1 和减 1 操作的指令序列分别如下,两个操作完成后, x 的值( B )。

A. 可能为-1 或 3                                          B. 可能为 0、 1 或 2

C. 只能为 1                                                  D. 可能为-1、 0、 1 或 2

【解析】 将 P1 中 3 条语句依次编号为 1、 2、 3, P2 中 3 条语句依次编号为 4、 5、 6, 则依次执行 1、 2、 3、 4、 5、 6 得结果 1,依次执行 1、 2、 4、 5、 6、 3 得结果 2,执行 4、 5、 1、 2、 3、 6 得结果 0,结果-1 不可能得出。

1 7. 有两个优先级相同的并发程序 P1 和 P2,它们的执行过程如下所示。假设, 当前信号量 s1 =0, s2=0,当前的 z=2,进程运行结束后, x、 y 和 z 的值分 别是( C )。

A. 5, 9, 9                                                 B. 5, 9, 4

C. 5, 1 2, 9                                              D. 5, 1 2, 4

1 8. 第一类读者写者问题的解决方案会导致( A )产生“饥饿”现象。

A. 写者进程                                                 B. 读者进程

C. 读者或写者进程

1 9. 若系统采用( A )调度策略,临界区的使用可能导致优先级反转问题。

A. 基于优先级的抢占式                                B. 基于优先级的非抢占式

C. 先来先服务

20. 不需要信号量就能实现的功能是( A )。

A. 进程的并发执行                                       B. 进程同步

C. 执行的前驱关系                                       D. 进程互斥

【解析】 在多道程序技术中,信号量机制是一种有效实现进程同步和互斥的工具。 进程执行的前趋关系实质上是指进程的同步关系,除此以外,只有进程的并发执 行不需要信号量来控制。

21 . 一个正在访问临界资源的进程由于申请 I/O 操作而被中断时,它( C )。

A. 可以允许其他进程进入与该进程相关的临界区

B. 不允许其他进程进入任何临界区

C. 可以允许其他进程抢占处理器,但不得进入该进程的临界区

D. 不允许任何进程抢占处理器

22. 以下( C )属于临界资源。

A. 磁盘存储介质                                          B. 私用数据

C. 公用队列                                                 D. 可重入的程序代码

23. 进程 A 和进程 B 通过共享缓冲区协作完成数据处理,进程 A 负责产生数据 并放入缓冲区,进程 B 从缓冲区读数据并输出。进程 A 和进程 B 之间的制 约关系是( C )。

A. 互斥关系                                                  B. 同步关系

C. 互斥和同步关系                                       D. 无制约关系

【解析】 A 和 B 对缓冲区的访问必须“互斥”; A 放入数据后才允许 B 取走的前趋后继关系属于“同步”。

24. 一个进程映像由程序、数据及 PCB 组成,其中( A )必须用可重入编码编写。

A. 共享程序段                                              B. PCB

C. 程序                                                         D. 数据 【

解析】 共享程序段可能同时被多个进程使用,所以必须可重入编码,否则无法实现共 享的功能。

25. 下列关于管程的描述中, ( A )是不正确的。

A. 管程中需要提供互斥量以保证管程的互斥性

B. 管程有自己的名字

C. 管程的主要作用是管理共享资源(数据结构)

D. 进程只能调用管程提供的过程对管程中的数据结构进行处理

【解析】 管程的互斥性是由编译器负责保证的。

【主观题】参考答案

1 . 在一个仓库中可以存放 A 和 B 两种产品,要求:

① 每次只能存入一种产品。

② A 产品数量-B 产品数量< M

③ B 产品数量-A 产品数量< N 其中, M, N 是正整数,试用 P 操作、 V 操作描述产品 A 与产品 B 的入库过程。

【解析】

使用信号量 mutex 控制两个进程互斥访问临界资源(仓库)

使用同步信号量 Sa 和 Sb(分别代表产品 A 与 B 的还可容纳的数量差,以及产品 B 与 A 的还可容纳的数量差)满足条件 2 和条件 3。

代码如下:

​​​​​​​

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

【解析】

互斥资源:缓冲区只能互斥访问,因此设置互斥信号量 mutex 同步问题:

 Pl, P2 因为奇数的放置与取用而同步,设同步信号量 odd;

 P1, P3 因为偶数的放置与取用而同步,设置同步信号量 even;

 P1, P2, P3,因为共享缓冲区,设同步信号量 empty,初值为 N,

程序如下:

3. 如下图所示,三个合作进程 P1, P2, P3,它们都需要通过同一设备输入各自的数 据, P1 输入 a, P2 输入 b, P3 输入 c,该输入设备必须互斥地使用,而且其第一 个数据必须由 P1 进程读取,第二个数据必须由 P2 进程读取,第三个数据必须由 P3 进程读取。然后,三个进程分别对输入数据进行下列计算:

P1: x=a+b;

P2: y=a*b;

P3: z=y+c-a;

最后, P1 进程通过所连接的打印机将计算结果 x, y, z 的值打印出来。请用信号量 实现它们的同步。

【解析】

为了控制三个进程依次使用输入设备进行输入,需分别设置三个信号量 S1, S2, S3, 其中 S1 的初值为 1, S2 和 S3 的初值为 0,使用上述信号量后,三个进程不会同时使 用输入设备,因此不必再为输入设备设置互斥信号量。 另外,还需要设置信号量 Sb, Sy, Sz 来表示数据 b 是否已经输入,以及 y, z 是否已 计算完成,它们的初值均为 0。

三个进程的动作可描述为:

4. 某厂商的自行车生产线上有一个箱子,其中有 N(N≥3)个空格,每个空格可以存 放一个车架或一个车轮。假设当前有三名工人正在工作,他们活动分别为:

请分析上述自行车装配过程,控制三名工人的协同工作需要用到哪几个信号量?为了防 止死锁发生,这几个信号量的初值应该如何设置? 请编写伪码实现三名工人的合作。

【解析】

 用信号量与 PV 操作实现三名工人的合作。

 首先不考虑死锁问题,工人 1 与工人 3、工人 2 与工人 3 构成生产者与消费者关 系,这两对生产/消费关系通过共同的缓冲区相联系。从资源的角度来看,箱子中的 空位置相当于工人 1 和工人 2 的资源,而车架和车轮相当于工人 3 的资源。

 分析上述解法易见,当工人 1 推进速度较快时,箱中空位置可能完全被车架占满或 只留有一个存放车轮的位置,此时工人 3 同时取 2 个车轮将无法得到,而工人 2 又 无法将新加工的车轮放入箱中;当工人 2 推进速度较快时,箱中空位置可能完全被 车轮占满,而此时工人 3 取车架将无法得到,而工人 1 又无法将新加工的车架放入 箱中。上述两种情况都意味着死锁。为防止死锁的发生,箱中车架的数量不可超过 N-2,车轮的数量不可超过 N-1,这些限制可以用两个信号量来表达。

注:详细描述还应考虑对箱子单元的描述以及访问互斥问题。建议车架放在箱 子的一端,车轮放在箱子的另一端,车架与车轮都采用后进先出的管理方式。

5. 有一个文件被多个进程所共享,每个进程有一个不同的数。这个文件可被多 个进程同时访问,且应满足如下的限制条件:所有访问文件的进程的数的和 应小于 n,写一个管程,以协调这个文件的访问进程。

【解析】

 ps:以上所有资料均来自于老师课件!!!

《操作系统》第六章习题加解析(重点学习)相关推荐

  1. 《操作系统》第一章习题加解析

    <操作系统>第01章习题加解析 1. 计算机操作系统最主要的功能是( D ). A.把源代码转换成目标代码    B.提供硬件与软件之间的转换 C.提供各种中断处理程序    D.管理计算 ...

  2. 《操作系统》第十二章习题加解析(重点学习内容)

    贵州大学计算机科学与技术学院<操作系统>第 12 章习题解析 1. 对磁盘进行移臂调度的目的是为了缩短( A ) 时间. A. 寻道 B. 旋转延迟 C. 数据传送 D. 磁盘启动 2. ...

  3. 《操作系统》第十、十一章习题加解析

    贵州大学计算机科学与技术学院<操作系统>第 10.11 章习题解析 1. 文件的逻辑结构是( A )决定的. A.用户 B.操作系统 C.磁盘容量 D.文件属性 [解析] 2. 文件系统实 ...

  4. 《操作系统》第八章习题加解析

    贵州大学计算机科学与技术学院<操作系统>第 08 章习题解析 1. 若采用动态地址重定位,其地址重定位工作是在( B )完成的. A.往内存装载进程时刻 B.执行每一条指令时刻 C.调度程 ...

  5. 工程伦理第六章习题答案

    工程伦理 第六章习题 工程伦理 1 选择题 2 讨论题 1 选择题 1-5 CCCAB 6 ABD 7 ACD 8 ABC 9 AC 10 ABD 11-14 √ √ × × 2 讨论题 1 .如何降 ...

  6. Knockout应用开发指南 第六章:加载或保存JSON数据

    原文:Knockout应用开发指南 第六章:加载或保存JSON数据 加载或保存JSON数据 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地 ...

  7. 信号与系统第四章-第六章习题易错点整理

    信号与系统第四章-第六章习题易错点整理 鄙人学疏才浅,资料仅供自己学习 留意书上蓝色圈的题目 第四章-傅里叶变换 注意基波角频率为全部Ω的最大公约数 在计算傅里叶的An.Bn时,需要额外考虑n=0的情 ...

  8. 计算机组成原理译码器选择,计算机组成原理第三章习题参考解析.doc

    计算机组成原理第三章习题参考解析 第3章习题参考答案 1.设有一个具有20位地址和32位字长的存储器,问 (1) 该存储器能存储多少字节的信息? (2) 如果存储器由512K×8位SRAM芯片组成,需 ...

  9. c语言作业题五六章答案,C语言程序设计五六章习题和课堂测试答案.doc

    C语言程序设计五六章习题和课堂测试答案 C语言程序设计第四五六章习题和课堂测试答案,还有期末C语言复习例题//3--1矩形面积 #includevoid main(){float a,b;float ...

最新文章

  1. xampp测试php代码,php用xampp测试
  2. ECMAScript 6入门
  3. centos7 查看ip_VMware安装CentOS 7操作系统详细操作教程(网络配置)
  4. css选择器 nth-child
  5. mysql增量同步kafka_MySQL数据实时增量同步到Kafka - Flume
  6. 新版谷歌浏览器开启Flash支持
  7. Navicat premium查看数据库表中文注释的两种方式
  8. Vue中vue-router路由使用分析
  9. 关于一道面试题,使用C#实现字符串反转算法
  10. python论文参考文献5篇_“送”5篇SCI论文,意味着什么?
  11. 【体系结构】Oracle体系结构的独特理解
  12. r语言正则表达式_R中的正则表达式
  13. BZOJ 1096: [ZJOI2007]仓库建设 | 斜率优化DP
  14. 如何卸载CAD 2019 ?怎么把AutoCAD 2019彻底卸载删除干净重新安装的方法【转载】
  15. C语言,输入三个数求其平均值!
  16. Eventide发布Physion Mk II声音结构分离多效果插件
  17. 本地生活服务,快手直播电商外的又一大金矿!
  18. vue 中嵌入iframe页面
  19. python大数据工程师需要掌握哪些_大数据工程师 python
  20. 蓝牙发射功率dBm换算,发射总能量公式

热门文章

  1. linux显示分区命令,linux查看分区命令
  2. 开源SSO单点登录认证系统
  3. git 提交代码报错vue-cli-service lint found some errors.
  4. Apache Tomcat 强化和安全指南
  5. 只有梦幻西游和征途游戏内没有通货膨胀
  6. UnityShader学习教程之<毛玻璃效果解析>
  7. TensorFlow常见错误记录
  8. Android M App 永久隐藏导航栏的Solution
  9. ubuntu8.04系统下利用wine安装金山词霸2007
  10. 【Proteus仿真】【51单片机】人体心率监测系统设计