进程的经典同步问题

时间:2020-03-12 20:29:10   收藏:0   阅读:87

P、V操作描述简单同步

设同步信号量empty,含义为缓冲单元为空,初值为1
设同步信号量full,含义为缓冲单元为满,初值为0

输入进程:
申请空缓冲单元; P(empty);
输入数据到缓冲单元; 输入数据到缓冲单元;
释放满缓冲单元; V(full)

计算进程
申请满缓冲单元; P(full)
从缓冲单元取数据; 从缓冲单元取数据
释放空缓冲单元; V(empty);

同步:每一个同步信号量P、V操作成对出现在不同的进程代码中

经典同步问题

生产者消费者问题

P、V操作描述进程同步互斥问题步骤:

描述了一组生产者向一组消费者提供产品(数据),它们共享一个有界缓冲区,生产者向其中投放产品,消费者从中取出产品消费,生产者和消费者互斥使用整个缓冲池。

分析:

设置两个同步信号量:empty:表示空缓冲单元的数目,初值为缓冲区的大小n;
full:表示满缓冲单元(即产品)的数目,初值为0;
设置互斥信号量mutex:表示整个缓冲池,初值为1。
生产者进程Pi(i=1,2,……,m)

总结

原文:https://www.cnblogs.com/liugangjiayou/p/12481918.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!