正在加载图片...
3、信号量和PV操作(续) 5、生产者消费者问题 ·根据上述分析,设置以下信号量: ①公用信号量mutex:初值为l,用于实现临界区互压; ②生产者私有信号量empty:初值为n,表示空缓冲单元数; ③消费者私有信号量fu止:初值为0,表示满缓冲单元数目; ④指针in,out分别指向当前第一个空缓冲区和第一个满缓冲区。 生产者进程: 消费者进程: 生产一个产品: P(full)防 P(empty); P(mutex); P(mutex); 从out所指向的缓冲区取产品: 将产品放入in所指向的缓冲区; out=(out+1)mod n; in=(in+1)mod n; V(mutex); V(mutex); V(full); V(empty); 电子科技大学刘民岷 进程同步和互斥 10电子科技大学 刘民岷 10 3、信号量和PV操作(续) 进程同步和互斥 5、生产者消费者问题 • 根据上述分析,设置以下信号量: ① 公用信号量mutex:初值为1,用于实现临界区互斥; ② 生产者私有信号量empty: 初值为n,表示空缓冲单元数; ③消费者私有信号量full: 初值为0,表示满缓冲单元数目; ④指针in,out分别指向当前第一个空缓冲区和第一个满缓冲区。 生产者进程: 生产一个产品; P(mutex); in=(in+1)mod n; 将产品放入in所指向的缓冲区; … P(empty); V(full); 消费者进程: P (full); 从out所指向的缓冲区取产品; V (mutex); out=(out+1)mod n; … P (mutex); V (empty); V(mutex);
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有