使命召唤9 时间与命运:请看过汤子瀛版的操作系统习题的朋友来帮帮忙!!

来源:百度文库 编辑:神马品牌网 时间:2024/05/01 22:11:23
进程同步经典问题中有一个题想向各位请教,小弟和我老师研究了好几天。问题如下:有两个生产者进程A,B和一个销售者进程C,他们共享一个仓库。不允许同时入库,也不允许边入库边出库;生产和销售A产品,B产品的数量满足:-n<=A的件数-B的件数<=m。m n是正整数。
汤子瀛编写的算法是:mutex为仓库的互斥信号量初值为1;S为仓库总的产品两SA为仓库中A的产品量SB为仓库中B的产品量,初值都为0;difference为所销售的A、B产品的数量差初值为0。
process C:
wait(S)
if difference<=-n then begin
wait(SA)
wait(mutex)
take a product A from storehouse
signal(mutex)
difference:=difference+1
end
else if difference>=m then begin
wait(SB)
wait(mutex)
take a product B from storehouse
signal(mutex)
difference:=difference-1
end
else begin
wait(mutex)
take a product A or B from storehouse
signal(mutex)
if(product_type=A)then begin
wait(SA)
difference:=difference+1
end
else begin
wait(SB)
difference:=difference-1
end
sell the product

实在不明白C进程的含义,还请高手指点。(看在小弟费了这么大劲的份上各位多帮帮忙)