假设系统有三个并发进程read、move和print共享缓冲区B1和B2.进程read负责从输入设备上读取信息,每读取一条记录后把它存入缓冲区B1中;进程move负责从缓冲区B1中取出一条记录,整理后放入缓冲区B2;进程 print负责将缓冲区B2中的记录取出并打印输出。缓冲区B1和B2每次只能存放1个记录。要求三个进程协调完成任务,使打印出来的记录与读入的记录个数和次序完全一样。
(1)列出所需的信号量并初始化。
(2)用记录型信号量机制的wait操作和 signal操作写出三个进
假设系统有三个并发进程read、move和print共享缓冲区B1和B2.进程read负责从输入设备上读取信息,每读取一条记录后把它存入缓冲区B1中;进程move负责从缓冲区B1中取出一条记录,整理后放入缓冲区B2;进程 print负责将缓冲区B2中的记录取出并打印输出。缓冲区B1和B2每次只能存放1个记录。要求三个进程协调完成任务,使打印出来的记录与读入的记录个数和次序完全一样。
(1)列出所需的信号量并初始化。
(2)用记录型信号量机制的wait操作和 signal操作写出三个进程的同步代码
【正确答案】:

Top