欢迎来到天天文库
浏览记录
ID:61999629
大小:224.00 KB
页数:8页
时间:2021-04-10
《生产者与消费者之间的同步与互斥问题.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、问题描述一个仓库可以存放K件物品。生产者每生产一件产品,将产品放入仓库,仓库满了就停止生产。消费者每次从仓库中去一件物品,然后进行消费,仓库空时就停止消费。生产者与消费者问题是许多相互合作进程的一种抽象。例如,在输入时,输入进程是生产者,计算进程是消费者。在输出时,计算进程是生产者,打印进程是消费者。例1电子邮件信箱发送进程A接收进程B当信箱满时,发送进程只有等待接收进程取走信件,当信箱空时,接收进程必须等待发送进程发送信件。12n……生产者与消费者之间的同步与互斥问题同步问题:1.只要缓冲池未满,生产者便可将消息送入缓冲池,否则等待。2.只要缓冲池未空,消费者便可从缓冲池中取走一个消息,
2、否则等待。互斥问题:1.生产者与生产者之间、消费者与消费者之间互斥访问缓冲池。2.生产者和消费者之间互斥访问缓冲池。生产者/消费者问题一个生产者,一个消费者,一个缓冲区确定同步对象确定同步约束条件确定同步时机定义信号量:考虑为每个同步对象设一个信号量用wait()操作判断同步条件是否满足用signal()操作向其它同步对象发同步信号进程间的关系生产者生产消息后消费者消费的合作关系消费者消费后的空白缓冲块由生产者生产消息的合作关系进程间在队列操作上的互斥关系Varmutex,empty,full:semaphore∶=1,n,0;buffer:array[0,…,n-1]ofitem;
3、in,out:integer∶=0,0;proceducer:beginrepeatproduceranitemnextp;wait(empty);wait(mutex);buffer(in)∶=nextp;in∶=(in+1)modn;signal(mutex);signal(full);untilfalse;endconsumer:beginrepeatwait(full);wait(mutex);nextc∶=buffer(out);out∶=(out+1)modn;signal(mutex);signal(empty);c
4、onsumertheiteminnextc;untilfalse;endThankyou!!姚俊朱景焕宋聪郭涛欧阳睿朱思勇杨凝熊伟唐沐万骞闫弈潼
此文档下载收益归作者所有