内容发布更新时间 : 2025/5/8 18:25:53星期一 下面是文章的全部内容请认真阅读。
V(mutex); V(s2);
13.试用信号量机制描述两人下象棋的过程
类似于一个生产者和一个消费者利用单缓冲(棋盘)通信的例子
14.设AB两点之间是一段东西向的单行车道,现在要设计一个AB路段自动管理系统,规则如下:当AB间有车辆在行驶时同方向的车可以驶入,另一方向的车必须在AB段外等待;当AB段之间无车辆行驶时,任一方向到达的车都可驶入,但不能从两个方向同时驶入;当某方向在AB段行驶的车辆驶出了AB段且暂无车辆进入AB段时,应让另一方向等待的车辆进入AB段行驶。试用信号量和P、V操作管理AB路段车辆的行驶
分析:这是读者—写者问题的变形,相当于两组读者(即两个方向的车辆)访问同一个共享文件(即AB路段)的互斥问题。 (1)信号量及其设置
S1、S2初值均为0,分别用于对从A、B点驶入AB的车辆计数
互斥信号量mutex,初值为1,用于实现不同方向的第一辆车互斥驶入AB路段。 互斥信号量ma、mb,初值均为1,分别用于两个方向的车互斥的访问计数器变量。 向西行驶的车辆: P(ma);
If S1=0 then P(mutex); S1++; V(ma);
车辆从A点通过AB路段到达B点 P(ma); S1--;
If S1=0 then V(mutex); V(ma);
向东行驶的车辆: P(mb);
IfS2=0 then P(mutex); S2++; V(mb);
车辆从B点通过AB路段到达A点 P(mb); S2--;
If S2=0 then V(mutex); V(mb);
15.在4×100接力赛中,四个运动员之间存在如下关系:1号传给2号,2号传给3号,3号传给4号,4号跑完全程。试用信号量机制进行描述。 用前驱图描述:
运动员1——运动员2——运动员3——运动员4
信号量 S12 S23 S34 初值均为0 运动员1:
11 / 13
持棒跑100米; 交棒给运动员2; V(S12);
运动员2: P(S12);
持棒跑100米; 交棒给运动员3; V(S23);
运动员3同运动员2
运动员4: P(S34);
持棒跑100米;
16.今有一文件F供A、B两组进程共享,规定同组的进程可以同时读文件F;但当有A组(或B组)的进程在读文件F时就不允许B组(或A组)的进程读文件。
定义整形计数器变量C1和C2,分别记录A组和B组中读文件F的进程数,初值均为0.设置3个初值均为1的信号量S1、S2和SAB。 进程Ai:
_______________; 将C1加1;
若C1=1 则_________________;
_________________; 读文件F;
__________________; 将C1减1;
若C1=0 则________________;
_________________;
进程Bi:
_______________; 将C2加1;
若C2=1 则_________________;
_________________; 读文件F;
__________________;
12 / 13
将C2减1;
若C2=0 则________________;
_________________; 要求:(1)说明信号量S1、S2、SAB的作用;
S1是用于A组进程互斥使用计数器C1的互斥信号量;S2是用于B组