ZKX's LAB

如何利用管程来解决生产者消费者问题 管程解决生产者消费者问题

2020-10-11知识5

如何利用管程来解决生产者—消费者问题。急需!!!!!!!!!!!! type producer-consumer=monitorVar in,out,count:integer;buffer:array[0,…,n-1]of item;notfull,notempty:condition;procedure entry put(item)beginif count≥n then notfull.wait;buffer(in)∶=nextp;in∶=(in+1)mod n;count∶=count+1;if notempty.queue then notempty.signal;endprocedure entry get(item)beginif count≤0 then notempty.wait;nextc∶=buffer(out);out∶=(out+1)mod n;count∶=count-1;if notfull.quene then notfull.signal;endbegin in∶=out∶=0;count∶=0 end

如何利用管程来解决生产者消费者问题 管程解决生产者消费者问题

如何利用管程来解决生产者消费者问题 管程管程 系统中的各种硬件资源和软件资源,均可用数据结构抽象地描述其资源特性,即用少

如何利用管程来解决生产者消费者问题 管程解决生产者消费者问题

【讨论】管程是不是每种资源都有一个? 在生产者-消费者问题中,有了信号量后,进程间通讯变得容易了,但,不小心的错误会导致很大的麻烦,如死锁、竞争条件等不可预测行为。为了更易于编写正确的程序,出现了更。

如何利用管程来解决生产者消费者问题 管程解决生产者消费者问题

为什么要引入管程 第一个来问题是术语学,没必要理第二个,为了解决管程中的进程不能运行时如何阻塞并将使得其他源进程可以进入管程,引入了条件变量。比如生产者消费者问题中,如知果缓冲区已经满了,生产者必须阻塞(wait(full)),并且允许消费者进入管程,等道消费者离开caitical section时signal(full),这样生产者就可以继续

#信号量

随机阅读

qrcode
访问手机版