进程同步与互斥习题分析 解题步骤: 确定进程的个数及每个进程的工作; 确定关键工作步(需要控制的); 确定信号量表示的含义(开始或结束); 写出伪代码。 1.单行隧道问题 对一个单行的隧道进行模拟,为了避免碰撞,必须防止汽车同时从两端(A、B端)进入隧道。现要设计一个自动管理系统,管理规则如下:当隧道中有车辆在行驶时同方向的车可以驶入隧道,但另一方向的车必须在隧道外等待;当隧道中无车时,到达A 端(或B端)的车辆可以进入隧道,但不能从A、B端同时驶入隧道;当某方向在隧道中行驶的车辆使出了隧道且无车辆进入隧道时,应让另一方向等待的车辆进入隧道行驶。请用PV操作设计一个算法实现这个控制。 例:单行隧道问题。对一个单行的隧道进行模拟,为了避免死锁,必须防止汽车同时从两端进入隧道。如果一次只允许一辆车通过隧道,两个方向按车辆到达的先后顺序依次通过,请用pv操作设计一个算法实现这个控制。 1.单行隧道问题 P1() { 通过隧道; } P2() { 通过隧道; } 分析:本题涉及两个进程:P1和P2。隧道是一个临界资源,一次只能被一辆车占有,可以把它看作互斥问题。 设:一个互斥信号量sd=1,表示隧道是否可用。 int sd=1; cobegin P1() // P2() coend 1.单行隧道问题 P1() { P(sd); 通过隧道; V(sd); } P2() { P(sd); 通过隧道; V(sd); } 问题: 两个方向车辆通过隧道的交换比较平凡,系统效率不高。 分析:为了提高效率,把问题改为:一旦一辆车进入,则同一方向的车可以立即跟进。写出用信号量解决此问题的代码,不考虑“饥饿”的情况。(按照读者-写者问题处理) 设:3个信号量:c表示计数器,m表示对临界资源计数器的控制,sd表示对临界资源隧道的控制,即隧道是否可用。 int c=0,m=1,sd=1; cobegin P1() // P2() coend 1.单行隧道问题 P2() { P(sd); 通过隧道; V(sd); } P1() { P(m); /* m控制计数器c*/ if (c== 0 ) P(sd); /*p1第一辆车通过时占有隧道*/ c=c+1; V(m); 通过隧道; P(m); c=c-1; if(c==0) V(sd); /*p1最后一辆车通过后释放隧道 */ V(m); } 问题: 若P1过隧道,则后续车辆可以跟进; 若p2过隧道,一次只能过一辆; P1不会产生“饥饿”的现象,而p2会产生“饥饿”的现象。 分析:解决p2“饥饿”现象的方法:再设一个信号量k,让p1、p2排队,可以做到p1方向比p2方向晚来的车辆被k阻止。 int c=0,m=1,sd=1,k=1; cobegin P1() // P2() coend 1.单行隧道问题 P2() { P(k); P(sd); 通过隧道; V(sd); V(k); } P1() { P(k); /* 与P2一起排队 */ P(m); /* m1控制计数器c */ if (c== 0 ) P(sd); /*P1第一辆车通过时占有隧道*/ c=c+1; V(m); V(k); 通过隧道; P(m); c=c-1; if(c==0) V(sd); /*P1最后一辆车通过后释放隧道 */ V(m); } 问题: 若P1过隧道,则后续车辆可以跟进; 若p2过隧道,一次只能过一辆 。 分析:解决p2可以过多辆车的方法:按照读者-读者问题处理。即:p1为读者,p2为读者,但两个读者不能同时读 。 int c1=c2=0,m1=m2=1,sd=1; //c1、c2为计数器,m1、m2、sd为互斥信号量 cobegin P1() // P2() coend 1.单行隧道问题 P1() { P(m1); if (c1== 0 ) P(sd); c1=c1+1; V(m1); 通过隧道; P(m1); c1=c1-1; if(c1==0) V(sd); V(m1); } P2() { P(m2); if (
您可能关注的文档
- 第2章电力电子器件研究报告.ppt
- 标准化法及相关知识标准化实施监督员培训总汇.ppt
- 标准化法试题带答案版总汇.doc
- 标准化工程总汇.ppt
- 第2章电力系统元件等效电路和参数研究报告.ppt
- 城市规划_5第五章数字城市(智慧城市)第四讲研究报告.ppt
- 标准化监督管理题目总汇.doc
- TSM数字电视收费操作手册(全)研究报告.doc
- 城市规划导论总研究报告.doc
- 第2章电路交换技术研究报告.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 罗伯特·S.平狄克-微观经济学(第九版)PindyckPPT_Ch.6.pptx VIP
- 罗伯特·S.平狄克-微观经济学(第九版)PindyckPPT_Ch.5.pptx VIP
- DB14T 1098-2024奶牛规模养殖技术规程.pdf VIP
- 《卫生微生物学检验》课件——04-化妆品中铜绿假单胞菌的检测.pptx VIP
- 2025年春顶尖课课练八年级物理下册沪科版答案.pdf VIP
- 罗伯特·S.平狄克-微观经济学(第九版)PindyckPPT_Ch.4.pptx VIP
- 青岛酒店管理职业技术学院单招《数学》模拟试题附答案详解【预热题】.docx VIP
- 古诗江上渔者.pptx VIP
- 罗伯特·S.平狄克-微观经济学(第九版)PindyckPPT_Ch.3.pptx VIP
- (2026春新版)人教版三年级数学下册全册教案.pdf
原创力文档

文档评论(0)