试用P-V操作定出他们能同步、互斥的相关语句
答案:1 悬赏:20 手机版
解决时间 2021-11-10 12:34
- 提问者网友:龅牙恐龙妹
- 2021-11-09 16:06
试用P-V操作定出他们能同步、互斥的相关语句
最佳答案
- 五星知识达人网友:蓝房子
- 2021-11-09 17:05
这个问题可看作是2个生产者和2个消费者共享一个容量为1的缓冲区的进程同步问题。
需要定义三个信号量:
mutex //用于测试盘中能否放水果
SO //用于测试盘中是否有桔子
SA //用于测试盘中是否有苹果
参考代码如下:
begin
mutex, SO, SA : semaphore;
mutex := 1;
SA := 0;
SO := 0;
cobegin
process father
begin L1: have an apple;
P(mutex);
put an apple;
V(SA);
goto L1;
end;
process mather
begin L2: have an orange;
P(mutex);
put an orange;
V(SO);
goto L2;
end;
process son
begin L3: P(SO);
get an orange;
V(mutex);
eat an orange;
goto L3;
end;
process daughter
begin L4: P(SA);
get an apple;
V(mutex);
eat an apple;
goto L4;
end;
coend;
end;
需要定义三个信号量:
mutex //用于测试盘中能否放水果
SO //用于测试盘中是否有桔子
SA //用于测试盘中是否有苹果
参考代码如下:
begin
mutex, SO, SA : semaphore;
mutex := 1;
SA := 0;
SO := 0;
cobegin
process father
begin L1: have an apple;
P(mutex);
put an apple;
V(SA);
goto L1;
end;
process mather
begin L2: have an orange;
P(mutex);
put an orange;
V(SO);
goto L2;
end;
process son
begin L3: P(SO);
get an orange;
V(mutex);
eat an orange;
goto L3;
end;
process daughter
begin L4: P(SA);
get an apple;
V(mutex);
eat an apple;
goto L4;
end;
coend;
end;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯