今有三个进程R,W1,W2共享一个缓冲器B,B中每次只能放一个数。进程每次启动输入设备读一个数且把它放到缓冲器B中,若放到缓冲器的是奇数,则由W1取出打印处理,若放到缓冲器的是偶数,则由W2。规定缓冲区无数据时,才能放下一个数,而数据也不能重复打印。为了实现三个进程的同步与互斥,需定义三个信号量:S、S1、S2,才能保证正确的并发执行,现程序结构如下所示。请在下述程序的空(1)~(7)处填上适当的PV操作,以保证他们能正确的并发执行;说明S、S1、S2的作用。
正确答案
(2)V(S1)
(3)V(S2)
(4)P(S1)
(5)V(S)
(6)P(S2)
(7)V(S)
S的作用是:是一个互斥信号量,表示缓冲区是否为空,初值为1
S1的作用是:是一个同步信号量,表示缓冲区存放的是奇数,初值为0
S2的作用是:是一个同步信号量,表示缓冲区存放的是偶数,初值为0
答案解析
相似试题
(简答题)
今有三个并发进程R、M、P,它们共享有一个缓冲区,R负责从输入设备读信息,每读一记录后,把它存放在缓冲区;M在缓冲区加工读入的记录;P把加工后的记录打印输出。读入的记录经加工输出后,缓冲区中又可以存放下一个记录。试用PV操作为同步机制写出它们并发执行时能正确工作的程序。
(简答题)
考虑一个由四个同类资源组成的系统,有三个进程共享这些资源,每个进程至多需要两个资源,试说明该系统是无死锁的。
(填空题)
对某个必须互斥使用的共享缓冲器,采用PV操作管理。假定现在有n个进程在等待向缓冲器中存放物品,那么至少()有个进程调用过P操作。
(简答题)
某数据采集系统由两个进程组成,进程R负责采集数据,并把采集到的一批数据存入缓冲器B中,进程W把缓冲器B中的数据取出后打印输出。假定每次采集的数据长度不变且缓冲器B正好可以容纳采集到的数据。现采用PV操作来协调进程R、W的并发执行,请回答下列问题:
(单选题)
有三个进程共享同一程序段,而每次最多允许两个进程进入该程序段,若用PV操作作为同步机制,则信号量S的取值范围是()
(单选题)
设有n个进程共享一个互斥段,如果每次只允许6个进程进入互斥段,那么信号量的初值取为()
(单选题)
()定义了一个共享数据结构和各种进程在该数据结构上所能执行的全部操作。
(简答题)
若有一个文件F,供进程共享。现把进程分成A、B两组,规定同组的进程可以同时读文件F,但当有A组(或B组)的进程在读文件F时不允许B组(或A组)的进程读文件F。现定义两个计数器C1和C2分别记录A组和B组中读文件F的进程数。当用PV操作进行管理时需要三个信号量S1、S2和SAB才能保证正确的并发执行。程序结构如下:
(简答题)
若有一个文件F,供进程共享。现把进程分成A、B两组,规定同组的进程可以同时读文件F,但当有A组(或B组)的进程在读文件F时不允许B组(或A组)的进程读文件F。现定义两个计数器C1和C2分别记录A组和B组中读文件F的进程数。当用PV操作进行管理时需要三个信号量S1、S2和SAB才能保证正确的并发执行。程序结构如下: