经典进程同步问题PPT课件.ppt_第1页
经典进程同步问题PPT课件.ppt_第2页
经典进程同步问题PPT课件.ppt_第3页
经典进程同步问题PPT课件.ppt_第4页
经典进程同步问题PPT课件.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1 操作系统原理第三章进程管理之三 2 1 生产者与消费者问题2 读者与写者问题3 哲学家就餐问题 3 生产者与消费者 引言 问题描述 一组生产者进程通过一个具有n个缓冲区的缓冲池循环不断地向一组消费者提供产品 怎样才能正确描述这两个进程 4 解 1 设置信号量的情况 设同步信号量empty 初值为n 表示生产者有n个空缓冲区可用 同步信号量full 初值为0 表示生产者尚未把产品放入缓冲池 互斥信号量mutex 初值为1 以保证同时只有一个进程能够进入临界区 访问访冲池 5 2 算法描述 6 varmutex empty full semaphore 1 n 0 buffer arr 0 1 n 1 ofitem in out integer 0 0 processproceducerbeginrepeat生产出一产品 p empty p mutex buffer in nextp in in 1 modn v mutex v full untilfalse end processconsumerbeginrepeatp full p mutex nextc buffer out out out 1 modn v mutex v empty 消费该产品 untilfalse end cobegin coend 7 读者与写着 问题描述 一组读者 指对共享数据对象只要求读的进程 与一组写者 指对共享数据对象只要求写的进程 循环访问共享的同一个数据对象 规定多个读者可以同时读这个数据对象 但绝不允许多个写者对这个数据对象进行写操作 也不允许读者 写者同时访问这个数据对象 8 解 1 设置信号量的情况 设互斥信号量wmutex 初值为1 用于实现写者与其它写者或读者互斥地访问共享数据对象 互斥信号量rmutex 初值为1 用于实现读者互斥地访问读者计数器变量 设整型变量RC 初值为0 用于对读者进行计数 2020 1 8 9 10 2 算法描述 11 varrmutex wmutex semaphore 1 1 RC integer 0 processreaderbeginrepeatp rmutex ifRC 0thenp wmutex RC RC 1 v rmutex 读数据对象 p rmutex RC RC 1 ifRC 0thenv wmutex v rmutex untilfalse end cobegin 12 processwriterbeginrepeatp wmutex 对数据进行写操作 v wmutex untilfalse end coend 13 哲学家问题 问题描述 在一个圆形餐桌上有5份通心粉 间隔放有5把叉子 5个哲学家各自坐在一份通心粉前 哲学家思考时 他们不做任何动作 当他们饥饿时 必须手持两把叉子才能吃通心粉 而且只能取得自己左右手边的叉子 吃完后 叉子必须放回 14 解 1 设置信号量的情况 放在桌上的叉子为临界资源 在一段时间内只允许一位哲学家试用 设五个信号量用数组来描述 varstick arr 0 4 ofsemaphore 15 2 算法描述 process哲学家beginrepeatp stick i p stick

温馨提示

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

评论

0/150

提交评论