设有三个并发进程R、P、M,它们共享同一缓冲区。进程R负责从输入设备读信息,每读一个记录后,就把它存放在缓冲区中;进程M在缓冲区中加工读人的记录;进程P把加工后的记录打印输出。读入的记录经加工输出后,缓冲区又可存放下一个记录,试写出它们能正确执行的并发程序。
设置三个信号量 S1=1;//表示是否可把读人的记录放人缓冲区 S2=O;//表示是否可对缓冲区中的记录进行加工 S3=O;//表示记录是否加工好,可以输出 进程R 进程M 进程P . . . Repeat Repeat Repeat P(s1); P(s2); P(s3); 读取信息存人缓冲区; 加工记录; 加工后的记录输出; V(S2); V(S3); V(S1); . . . Until false Until false Until false