手机版

计算机操作系统课后习题答案(第三版) 汤小丹(14)

发布时间:2021-06-08   来源:未知    
字号:

计算机操作系统(第三版)汤小丹 梁红兵 汤小瀛西安电子科技大学出版社

consume the item in enxtc;

until false;

end

31.什么是AND信号量?试利用AND信号量写出生产者一消费者问题的解法。 答:为解决并行带来的死锁问题,在wait 操作中引入AND 条件,其基本思想是将进

程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放。

解决生产者-消费者问题可描述如下:

var mutex,empty,full: semaphore:=1,n,0;

buffer: array[0,...,n-1] of item;

in,out: integer:=0,0;

begin

parbegin

14

producer: begin

repeat

produce an item in nextp;

wait(empty);

wait(s1,s2,s3,...,sn); //s1,s2,...,sn为执行生产者进程除empty 外其余的条件 wait(mutex);

buffer(in):=nextp;

in:=(in+1) mod n;

signal(mutex);

signal(full);

signal(s1,s2,s3,...,sn);

until false;

end

consumer: begin

repeat

wait(full);

wait(k1,k2,k3,...,kn); //k1,k2,...,kn 为执行消费者进程除full 外其余的条件 wait(mutex);

nextc:=buffer(out);

out:=(out+1) mod n;

signal(mutex);

计算机操作系统课后习题答案(第三版) 汤小丹(14).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)