有3个并发进程R,M,P,它们共享一个缓冲器B。进程R负责从输入设备读信息,每读出一个记录后将其存放在缓冲器B中。进程M在缓冲器B中加工进程R存入的记录。进程P把加工后的记录打印输出。缓冲器B中每次只能存放一个记录,当记录被加工输出后,缓冲器B中又可存放一个新纪录。
下面是用P、V操作控制它们并发执行时的程序。
Semaphore S1=1, S2=S3=0;
void R( )
{
int x;
while(1)
有3个并发进程R,M,P,它们共享一个缓冲器B。进程R负责从输入设备读信息,每读出一个记录后将其存放在缓冲器B中。进程M在缓冲器B中加工进程R存入的记录。进程P把加工后的记录打印输出。缓冲器B中每次只能存放一个记录,当记录被加工输出后,缓冲器B中又可存放一个新纪录。
下面是用P、V操作控制它们并发执行时的程序。
Semaphore S1=1, S2=S3=0;
void R( )
{
int x;
while(1)