简单的pascal语言 能否帮我解释一下这段语言的意思啊

来源:百度知道 编辑:UC知道 时间:2024/06/29 23:34:51
Var mutex,empty,full:semaphore :1,n,0;
buffer:array[0,……,n-1]of item;
in,out:integer :=0,0;
begin
parbegin
proceducer:begin
repeat
……
producer an item nextp;
……
wait(empty);
wait(mutex);
buffer(in):nextp;
in:=(in+1)mod n;
signal(mutex);
signa(full);
until false;
end
consumer:begin
repeat
wait(full);
wait(mutex);
nextc :=buffer(out);
out :=(out+1)mod n;
signal(mutex);
signal(empty);
consumer the item in nextc;
until false;
end
parend
end

mutex到底作为哪段进程的信号量 还有就是proceducer和consumer之间是怎么连接的
现在我还是初学者,还请大家不要见笑

这不是pascal 只是很像pascal的伪代码...

描述了生产者/消费者工作模式

wait(empty);
wait(mutex);
buffer(in):nextp;
in:=(in+1)mod n;
signal(mutex);
signa(full);
until false;
end
这是生产者的信号量,
consumer:begin
repeat
wait(full);
wait(mutex);
nextc :=buffer(out);
out :=(out+1)mod n;
signal(mutex);
signal(empty);
consumer the item in nextc;
until false;
end
这是客户的信号量

伪码
鉴定完毕