![经典进程同步问题小结.ppt_第1页](http://file.renrendoc.com/FileRoot1/2018-12/26/122c3aa9-d62f-480e-8735-82fc9c6809aa/122c3aa9-d62f-480e-8735-82fc9c6809aa1.gif)
![经典进程同步问题小结.ppt_第2页](http://file.renrendoc.com/FileRoot1/2018-12/26/122c3aa9-d62f-480e-8735-82fc9c6809aa/122c3aa9-d62f-480e-8735-82fc9c6809aa2.gif)
![经典进程同步问题小结.ppt_第3页](http://file.renrendoc.com/FileRoot1/2018-12/26/122c3aa9-d62f-480e-8735-82fc9c6809aa/122c3aa9-d62f-480e-8735-82fc9c6809aa3.gif)
![经典进程同步问题小结.ppt_第4页](http://file.renrendoc.com/FileRoot1/2018-12/26/122c3aa9-d62f-480e-8735-82fc9c6809aa/122c3aa9-d62f-480e-8735-82fc9c6809aa4.gif)
![经典进程同步问题小结.ppt_第5页](http://file.renrendoc.com/FileRoot1/2018-12/26/122c3aa9-d62f-480e-8735-82fc9c6809aa/122c3aa9-d62f-480e-8735-82fc9c6809aa5.gif)
已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 生产者消费者问题 2 哲学家就餐问题 3 读者-写者问题 4 睡眠理发师问题,1 经典问题:生产者消费者问题,问题描述 一个有限空间的共享缓冲区,负责存放货物 生产者向缓冲区中放物品,缓冲区满则不能放 消费者从缓冲区中拿物品,缓冲区空则不能拿,进程通信,生产者消费者问题分析,互斥关系分析 任何时刻,只能有一个进程在缓冲区中操作 引入互斥信号量(二元信号量) 信号量为0,表明已有进程进入临界区; 同步关系分析 对于“生产者”而言,缓冲区满则应等待 引入同步信号量“empty”,为0表示缓冲区满 对于“消费者”而言,缓冲区空则应等待 引入同步信号量“full”,为0表示缓冲区空,进程通信,1. 利用记录型信号量解决生产者消费者问题 假定在生产者和消费者之间的公用缓冲池中,具有n个缓冲区,这时可利用互斥信号量mutex实现诸进程对缓冲池的互斥使用;利用信号量empty和full分别表示缓冲池中空缓冲区和满缓冲区的数量。又假定这些生产者和消费者相互等效,只要缓冲池未满,生产者便可将消息送入缓冲池;只要缓冲池未空,消费者便可从缓冲池中取走一个消息。对生产者消费者问题可描述如下:,Var mutex, empty, full:semaphore=1,n,0; buffer:array0, , n-1 of item; in, out: integer=0, 0; begin parbegin proceducer:begin repeat producer an item nextp; wait(empty); wait(mutex); buffer(in)=nextp; in=(in+1) mod n; signal(mutex); signal(full); until false; end,consumer:begin repeat wait(full); wait(mutex); nextc =buffer(out); out =(out+1) mod n; signal(mutex); signal(empty); consumer the item in nextc; until false; end parend end,2. 利用AND信号量解决生产者消费者问题,var mutex, empty, full:semaphore =1, n, 0; buffer:array0, , n-1 of item; in out:integer =0, 0; begin parbegin producer:begin repeat produce an item in nextp; Swait(empty, mutex); buffer(in) =nextp; in =(in+1)mod n; Ssignal(mutex, full); until false; end,consumer:begin repeat Swait(full, mutex); nextc =buffer(out); out =(out+1) mod n; Ssignal(mutex, empty); consumer the item in nextc; until false; end parend end,2 经典问题:哲学家就餐问题,问题描述 五个哲学家坐在圆桌前,每人一份炒饭 每个哲学家两侧各有一支筷子 哲学家处于吃饭和思考两种状态,进程通信,哲学家就餐问题的信号量解法,互斥关系分析 筷子:同一时刻只能有一个哲学家拿起筷子 同步关系分析 就餐:只有获得两个筷子后才能进餐 特殊情况考虑 死锁:如果每个哲学家都拿起一只筷子,都饿死 并行程度:五只筷子允许两人同时进餐,进程通信,利用AND信号量机制解决哲学家进餐问题 在哲学家进餐问题中,要求每个哲学家先获得两个临界资源(筷子)后方能进餐,这在本质上就是前面所介绍的AND同步问题,故用AND信号量机制可获得最简洁的解法。 Var chopstick array 0, , 4 of semaphore =(1,1,1,1,1); processi repeat think; Swait(chopstick(i+1) mod 5, chopstick i); eat; Ssignal(chopstick (i+1) mod 5, chopstick i); until false;,3 经典问题:读者-写者问题,问题描述 写者向数据区放数据,读者从数据区获取数据 多个读者可同时读取数据 多个写者不能同时写数据 读者和写者的控制策略变化多端,进程通信,利用记录型信号量解决读者-写者问题 利用信号量集机制解决读者-写者问题 ,4 经典问题:睡眠理发师问题,问题描述 一把理发椅,N把等待座位 理发师为理发椅上的顾客理发,没有顾客就在理发椅上睡觉 有一个顾客时需要叫醒理发师 多个顾客时需要在等待座位上等候,进程通信,睡眠理发师问题的信号量解法,互斥关系分析 理发椅上只能有一位顾客
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产安全事故综合应急预案2024版
- 预防接种主管护师年终总结范文大全
- 便携式废气VOCs采样器校准规范-编制说明
- 中心静脉置管并发症预防及处理方法
- 预防中小学生沉迷网络教育主题班会
- 五年级下册数学教案-1.2 画轴对称图形|冀教版
- 机械设计基础 第4版 习题及解答 第十二章
- 涡轮风扇发动机项目效益评估报告
- 总经理演讲稿范文
- 中学生好伙伴的演讲稿
- 2024年中考语文满分作文5篇
- 《水粉风景写生》
- 国家开放大学2022春(202207)《1496员工薪酬与福利管理》期末考试真题及答案-开放本科
- “双循环”新发展格局下农业农村高质量发展的现实困境与出路
- 2024年全国乡村医生模拟考核题库及答案(共180题)
- 智慧监狱智能管控解决方案
- 传统与现代相结合-红楼梦中的文化冲突与思考
- 四年级数学下册 期中综合模拟测试卷(北师版)
- 承包经营食堂日控管周排查月调度记录和管理表
- 2024年四川成渝高速公路股份有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论