今有三个并发进程R、M和P,它们共享一个缓冲区。R负责从输入设备读信息,每次读出一个记录,并把它存放到缓冲区中。M对缓冲区中的记录加工。P把加工后的记录打印输出。读入的记录经加工并取走后,缓冲区中又可存放下一个记录。请用PV操作作为同步机制写出它们并发执行时能正确工作的程序。
三个进程共用一个缓冲区,他们必须同步工作,可定义三个信号量:
S1:表示是否可把读人的记录放到缓冲区,初始值为1。
S2:表示是否可对缓冲区中的记录加工,初始值为0。
S3:表示记录是否加工好,可以输出,初始值也为0。
今有三个并发进程R、M和P,它们共享一个缓冲区。R负责从输入设备读信息,每次读出一个记录,并把它存放到缓冲区中。M对缓冲区中的记录加工。P把加工后的记录打印输出。读入的记录经加工并取走后,缓冲区中又可存放下一个记录。请用PV操作作为同步机制写出它们并发执行时能正确工作的程序。
三个进程共用一个缓冲区,他们必须同步工作,可定义三个信号量:
S1:表示是否可把读人的记录放到缓冲区,初始值为1。
S2:表示是否可对缓冲区中的记录加工,初始值为0。
S3:表示记录是否加工好,可以输出,初始值也为0。