第二章练习题_第1页
第二章练习题_第2页
第二章练习题_第3页
第二章练习题_第4页
第二章练习题_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统第二章 练习题 一、选择题 1. 临界区是指 ( ) 。 A. 并发进程中用于实现进程互斥的程序段 B 并发进程中用于实现进程同步的程序段 C.并发进程中用户实现进程通信的程序段D 并发进程中与共享变量有关的程序段 2. ()是只能由P和v操作所改变的整型变量。 A. 共享变量B 锁C.整型信号量 3在执行v操作时,当信号量的值( A.0B.=0D.0, S= 0和Sv 0时,它们的物理意 义是什么? 3. 请给出Pv操作的定义。 4用PV操作实现进程间同步与互斥应注意些什么? 5线程与进程的根本区别是什么? 6. 试比较程序与进程的区别。 四、进程同步习题参考答案: 1. 在测量控制

2、系统中,数据采集任务把所采集的数据送入一单缓冲区;计算任务从单缓冲区中 取出数据进行计算。试写出利用信号量机制实现两者共享缓冲区的同步算法。 解: 问题分析1: 本题是一个生产者一消费者问题。 采集任务采集到一个数据后,只有当缓冲区空时才能将数据送入缓冲区,否则等待 只有当缓冲区中有数据时,计算任务才能从缓冲区中取数据计算,否则也等待 问题分析2: 采集数据任务_| 计算任务J互斥(单缓冲区) 同步:采集数据任务不能往 满缓冲区中放数据 A 计算任务不能从空缓冲区中取数据 设两信号量full(O)和empty(1) 实际上,当采集数据任务得到空缓冲时,也就得到了对缓冲区的使用,计算任务同理,

3、得到满缓冲区时,也就得到了对缓冲区的使用。因此,不需专门设一个互斥信号量,信 号量full和empty实际上也起到互斥作用。 问题分析3: 采集数据任务: 采集一数据采集一数据 申请对缓冲区的使用权(申请空缓冲区) (empty) 放数据 放数据 释入对缓冲区的使用权 (满缓冲区加一 空变为满 ) V ( full ) 计算任务: 申请对缓冲区的使用权 (申请满缓冲区) P (full ) 取走数据 取走数据 释入对缓冲区的使用权 (空缓冲区加一 满变为空 ) V ( empty) 进行计算 进行计算 2. 有三个并发进程 get、copy、put: S中的数据 get进程负责从输入序列f中读

4、取字符,送到缓冲区S中;copy进程把缓冲区 复制到缓冲区T; put进程从缓冲区T中取出数据打印。 问题分析1: copy既是get的消费者,又是 put的生产者 互斥:缓冲区S由get和copy互斥共享, 缓冲区T由copy和put互斥共享 同步:get不能向“满”的S中放; copy不能从“空”的 S中取;不能向“满”的 T中放; put不能“空”的T中取 问题分析2: 与采集数据任务、计算任务同理。 设:(同步)信号量: S_Empty, T_Empty,(初值为 1) S_Full, T_Full;(初值为 0) Get: Begin Repeat P( S_Empty) 将读取数据

5、送入 S; V( S_Full ); Until false; End Copy: Begin Repeat P( S_Full ); P( T_Empty) ; 将 S 中的数据 copy 到 T; V( T_Full ); V( S_Empty) ; Until false; End Put: Begin Repeat P( T_Full ) ; 取 T 中数据打印 ; V( T_Empty) ; Until false; End 3. 桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果, 也可向盘中入桔子, 儿子专等 吃盘中的桔子, 女儿专等吃盘中的苹果。 规定当盘空时一次只能放一只水果

6、供吃者取用。 用 P、V 原语实现爸爸、儿子、女儿三个并发进程的同步。 解:(1)这是生产者 - 消费者问题的变形,一个生产者生产两类产品,有两类消费者, 类消费者消费一类产品。 mutex ( 1) 2)互斥: 爸爸、儿子和女儿互斥使用盘子:设一个互斥信号量 同步:当爸爸往盘子中放入水果(桔子或苹果) ,需通知儿子或女儿 设 apple 和 orange 两个信号量,初值都为 3) 爸爸: mutex ) 放入水果 检查盘子是否为空 放入水果 若放的是桔子, 通知儿子 if 水果是桔子) V(orange) 否则通知女儿 else V apple ) 儿子: 通知儿子或女儿,事实上也就释放了

7、对盘子的使用权) 看盘中是否有桔子 orange ) 取走桔子 取走桔子 释放对盘子的使用权 mutex) 吃桔子 吃桔子 看盘中是否有桔子, 如果有, 则既有对盘子的使用权, 又可以取走水果; 如果没有,则儿子对盘子没有使用权) 女儿: 看盘中是否是苹果 apple ) 取走苹果 取走 apple 释放对盘子的使用权 mutex) 吃苹果 吃苹果 4. 有一条小河, 河上有一座独木桥可供南来北往的人过河。由于桥面窄,只能单向行走。试 用 P、V 操作设计一个过河的算法。 解:设一互斥信号量 mutex( 1) South 南方向的等待人数 Scount ( 0),南方向的人互斥修改 Scount ,设一互斥信号 北方向同南方向,进程代码也类似。 南方向的每一个人: P( South ) if Scount

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论