三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce( )生成一个正整数并用put( )送入缓冲区某一空单元中;P2每次用getodd( )从该缓冲区中取出一个奇数并用countodd( )统

admin2013-09-16  36

问题 三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce(    )生成一个正整数并用put(    )送入缓冲区某一空单元中;P2每次用getodd(    )从该缓冲区中取出一个奇数并用countodd(    )统计奇数个数;P3每次用geteven(    )从该缓冲区中取出一个偶数并用counteven(    )统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。

选项

答案定义信号量S1控制P1与P2之间的同步;S2控制n与P3之间的同步;empty控制生产者与消费者之间的同步;mutex控制进程间互斥使用缓冲区。程序如下: Vat s1=0,s2=0,empty=N,mutex=1; Parbegin P1:begin X=produee(); /*生成一个数*/ P(empty); /*判断缓冲区是否有空单元*/ P(mutex); /*缓冲区是否被占用*/ Put(); If x%2==0

解析
转载请注明原文地址:https://jikaoti.com/ti/QQajFFFM
0

最新回复(0)