1. 问题定义
某些进程生产数据,另一些进程消费数据,他们之间通过一个大小为N的先入先出队列来进行数据的传递。
当队列是满的时候,生产者阻塞,当队列是空的时候,消费者阻塞。
这种场景还是挺常见的,比如媒体流的处理。
2. PV原语
PV原语,这个概念的提出者是河南(荷兰)科学家Dijkstra,这位爷也提出了图的Dijkstra最短路径算法。原语的意思是atomi...
分类:
其他好文 时间:
2015-03-29 10:53:06
阅读次数:
102
信号量API综合实践//实践1:封装PV原语
union mySemUn
{
int val; // Value for SETVAL//
struct semid_ds *buf; // Buffer for IPC_STAT, IPC_SET//
unsigned short *array; // Array for GETAL...
分类:
系统相关 时间:
2014-11-30 12:34:17
阅读次数:
153
信号量基础和两个经典例子
信号量(semaphore)
用于进程中传递信号的一个整数值。
三个操作:
1、一个信号量可以初始化为非负值
2、semWait操作可以使信号量减1,若信号量的值为负,则执行semWait的进程被阻塞。否则进程继续执行。
3、semSignal操作使信号量加1。若信号量的值小于等于0,则被semWait操作阻塞的进程讲被接触阻塞。
ps: semWait对应P原语,semSignal对应V原语。
信号量以及PV原语的C语言定义如下...
分类:
其他好文 时间:
2014-10-05 17:37:18
阅读次数:
225