版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实例:同步问题,同步问题1:理发师问题,一个理发店由一个有几张椅子的等待室和一个放有一张理发椅的理发室组成。 问题分析: 题目中要求描述理发师和顾客的行为,因此需要两类进程Barber ()和Customer()分别描述理发师和顾客的行为。当理发师看报时顾客进来需要唤醒理发师为其理发,当有顾客时理发师为其理发,没有的时候理发师看报,因此理发师和顾客之间是同步的关系,由于每次理发师只能为一个人理发,且可供等侯的椅子有限只有n个,即理发师和椅子是临界资源,所以顾客之间是互斥的关系。,同步问题1:理发师问题,1 若没有要理发的顾客,则理发师去睡觉;2 若一顾客进入理发店,理发师正在为别人理发,且等待
2、室有空椅子,则该顾客就找张椅子按顺序坐下;3 若一顾客进入理发店,理发师在睡觉,则叫醒理发师为该顾客理发;4 若一顾客进入理发店且所有椅子都被占用了,则该顾客就离开。,同步问题1:理发师问题,互斥信号量:mutex ,初始值为1; 信号量customers用来记录等候理发的顾客数,并用作阻塞理发师进程,初值为0; barbers用来记录正在等候顾客的理发师数,并用作阻塞顾客进程,初值为0; 这里barbers只有两种取值, 0或1; 临界变量:waiting由理发师进程和顾客进程共同访问,用来记录在椅子上等着的顾客数;,同步问题1:理发师问题,var waiting : integer:=0;
3、 /*等候理发的顾客数*/ CHAIRS:integer:=n; /*为顾客准备的椅子数*/ VAR customers, barbers,mutex : semaphore:=0,0,1; Procedure barber; begin while(TRUE); /*理完一人,还有顾客吗?*/ P(cutomers); /*若无顾客,理发师睡眠*/ P(mutex); /*进程互斥*/ waiting := waiting 1; /*等候顾客数少一个*/ V(barbers); /*理发师去为一个顾客理发*/ V(mutex); /*开放临界区*/ cut-hair( ); /*正在理发*/
4、 end;,同步问题1:理发师问题,procedure customer begin P(mutex); /*进程互斥*/ if customersn then waiting := waiting+1; /* 等候顾客数加1*/ V(customers); /*必要的话唤醒理发师*/ V(mutex); /*开放临界区*/ P(barbers); /*无理发师, 顾客坐着养神*/ get-haircut( ); /*一个顾客坐下等理发*/ else V(mutex); /*人满了,走吧!*/ end;,同步问题2,一家四口父亲、母亲、儿子、女儿,现有一个盘子,父亲只往盘子里放苹果,母亲只往盘
5、子里放桔子,儿子只吃桔子,女儿只吃苹果。盘子中只能放一只水果。请用信号量机制分别为父亲、母亲、儿子、女儿编写程序,使他们不发生冲突。,同步问题2,解: semaphore mutex,apple,orage,empty; mutex.value=1; apple . value=0; orage .value = 0; empty . value = 1 ; Void father() Wait(empty); wait(mutex); put an apple on the disk; signal(mutex); signal(apple); ,同步问题2,Void mather() Wait(empty); wait(mutex); put an orange on the disk; signal(mutex); signal(orange); ,同步问题2,Void son() Wait(apple); Wait(mutex); Get an apple from disk; Signal(mutex); Signal(empty); ,同步问题2,Void dau
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年人力资源服务分销代理协议
- 2025年广东黄埔卫生职业技术学校招聘考试真题
- 2025年宜都市招聘教师考试真题
- 2026年智慧物流行业创新报告及无人配送系统报告
- 物流企业车队合作运输服务条款合同二篇
- 第2章第3节伴性遗传课件-2025-2026学年高一下学期生物人教版必修2
- 2026年电梯定期检验配合工作自检自查报告范文
- 2026年物业外墙维护与安全排查实施方案
- 强夯地基处理专项施工方案
- 脱硫脱硝工程监理实施细则
- 医嘱规范开具培训课件
- 2025年浙江杭钢集团招聘笔试冲刺题2025
- 医疗器械单位岗位职责培训
- DB64∕680-2025 建筑工程安全管理规程
- T/CSBME 070-2023计算机断层成像(CT)临床图像质量评价
- 湘雅临床技能培训教程第2版操作评分标准表格内科
- 中国电建行业
- 湘教版(2024)七年级下册地理第八章 了解地区 复习课件
- 第十四章其他原因引起的语言障碍讲解
- 关务基础知识
- 公共管理学:理论、实践与方法 课件汇 汪大海 第1-9章 公共管理与公共管理学- 公共管理的危机
评论
0/150
提交评论