假定系统有三个并发进程read, move和print共享缓冲器B1和B2。进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器B1中。进程move从缓冲器B1中取出一记录,加工后存入缓冲器B2。进程print将B2中的记录取出打印输出。缓冲器B1和B2每次只能存放一个记录。要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。请用信号量及PV操作实现这三个进程的同步。(要求设置信号量的初值)

假定系统有三个并发进程read, move和print共享缓冲器B1和B2。进程read负责从输入设备上读信息,每读出一个记录后把它存放到缓冲器B1中。进程move从缓冲器B1中取出一记录,加工后存入缓冲器B2。进程print将B2中的记录取出打印输出。缓冲器B1和B2每次只能存放一个记录。要求三个进程协调完成任务,使打印出来的与读入的记录的个数,次序完全一样。请用信号量及PV操作实现这三个进程的同步。(要求设置信号量的初值)


参考答案和解析
\r\n\t\r\n

相关考题:

下面有关管程的叙述中,正确的是( ) A、管程是进程间互斥的机制,它保证进程互斥地访问共享变量,并方便地阻塞和唤醒进程B、管程和P.V一样,同步操作分散在各个进程中C、管程和P.V一样,使用不当就可能导致进程死锁D、一个管程定义了一个数据结构和能在该数据结构上并发执行进程所的一组操作,这组操作能同步进程和改变管程中的数据

设有三个进程R、W1、W2共享一个缓冲区B,而B中每次只能存放一个数。当B中无数时,R可将从输入设备上读入的数存放到B中。若存放到B中的是奇数,则允许W1将其取出打印;若存放到B中的是偶数,则允许W2将其取出打印。同时规定,R必须等B中的数被取出打印后才能再存放一个数;W1或W2对每次存入B中的数只能打印一次;W1和W2都有不能从空的B中取数。写出三个并发进程能正确工作的程序。

设有两个进程A和B,它们共享一个缓冲器,进程A(生产者)不断地读入记录并送到缓冲器,进程B(消费者)不断地从缓冲器中取出记录并加工。假设缓冲器的容量为每次只能存放一个记录。进程A将一个记录送入缓冲器后,应等到进程B发来消息(已将缓冲器中的记录取走),才能把下一个记录存入缓冲器。进程B把已存入缓冲器的记录取走后,也应等到A发来消息(缓冲器已趣入一个待加工的记录),才能从缓冲器中取出记录去加工。用PV操作实现生产者/消费者之间的同步。

设有一缓冲池P,P中含有20个可用缓冲区,一个输入进程将外部数据读入P,另有一个输出进程将P中数据取出并输出。若讲程每次操作均以一个缓冲区为单位,试用记录型信号量写出两个进程的同步算法,要求写出信号量的初值。

进程PA不断地向管道写数据,进程PB从管道中读数据并加工处理,如图5-1所示。如果采用P、V操作来实现进程PA和PB的管道通信,并且保证这两个进程并发执行的正确性,则至少需要(2)。A.1个信号量,信号量的初值是0B.2个信号量,信号量的初值是0、1C.3个信号量,信号量的初值是0、0、1D.4个信号量,信号量的初值是0、0、1、1

若P、V操作的信号量S初值为2,当前值为-1,则表示有(31)等待进程。如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为(32)。A.0个B.1个C.2个D.3个

进程PA不断地向管道写数据,进程PB从管道中读数据并加工处理,如下图所示。如果采用PV操作来实现进程PA和进程PB间的管道通信,并且保证这两个进程并发执行的正确性,则至少需要(26)。A.1个信号量,信号量的初值为0B.2个信号量,信号量的初值分别为0、1C.3个信号量,信号量的初值分别为0、0、1D.4个信号量,信号量的初值分别为0、0、1、1

下列说法中,正确的是A.进程之间同步,主要源于进程之间的资源竞争,是指对多个相关进程在执行次序上的协调B.信号量机制是一种有效的实现进程同步与互斥的工具。信号量只能由P\V.操作来改变C.V操作是对信号量执行加1操作,意味着释放一个单位资源,加1后如果信号量的值小于等于0,则从等待队列中唤醒一个进程,现进程变为等待状态;否则现进程继续进行D.临界区是指每次仅允许一个进程访问的资源

进程P不断地从外部设备输入数据后通过缓冲区K向进程Q成批(以缓冲区大小为单位)传送,进程Q接到数据并做进一步处理后通过缓冲区T向进程S成批传送,进程R接到数据后将它们打印出来,K和T大小一样。要求打印数据的次序与进程P接收数据的次序一样。为了在保证结果正确性的前提下尽可能并行工作,需要设置(23)。A.两个信号量,初值分别为0,1B.3个信号量,初值分别为1,1,0C.4个信号量,初值分别为1,0,1,0D.5个信号量,初值分别为1,0,1,1,0

在操作系统中,解决进程间的(1)两种基本关系,往往运用对信号量进行(2)的(3)。例如,为保证系统数据库的完整性,可以把信号量定义为某个库文件(或记录)的锁,初值为1,任何进程存取该库文件(或记录)之前先对它作一个(4),存取之后对它作一个(5),从而做到对该文件(或记录)任一时刻只有一个进程可存取,但要注意使用不当引起的死锁。A.同步与异步B.串行与并行C.调度与控制D.同步与互斥

有m个进程(P0,P1,…,Pm-1)通过n个缓冲区(B0,B1,…Bn-1)向1个进程(Q)发送数据包,每个数据包大小与缓冲区一样。要求:进程Q接收数据包的次序与发送次序一样。为保证发送进程与接收进程正确地并行工作,需要设置(23)。A.一个信号量,初值为0B.一个信号量,初值为1C.两个信号量,初值分别为0和1D.3个信号量,初值分别为n、1、0

有一发送者进程和一接收者进程,其流程如下。s是用于实现进程同步的信号量,m是用于实现进程互斥的信号量。试完成流程图。假定缓冲区有无限多个,s和m的初值为多少?

某企业的生产流水线上有2名工人P1和P2,1名检验员P3。P1将初步加工的半成品放入半成品箱B1,P2从半成口箱B1取出继续加工,加工好的产品放入成品箱B2,P3从成口箱B2取出产品检验。假设B1可存放n件半成品,B2可存放m件产品,并设置6个信号量S1、S2、S3、S4、S5和S6,且S3和S6的初值都为0,采用PV操作实现P1、P2和P3的同步模型如下图所示,则信号量S1和S5(请作答此空),S2、S4的初值分别为( )A.分别为同步信号量和互斥信号量,初值分别为0和1B.都是同步信号量,其初值分别为0和0C.都是互斥信号量,其初值分别为1和1D.都是互斥信号量,其初值分别为0和1

有三个用户进程A、B和C,在运行过程中都要使用系统中的一台打印机输出计算结果。 (1)试说明A、B、C进程之间存在什么样的制约关系? (2)为保证这三个进程能正确地打印出各自的结果,请用信号量和P、V操作写出各自的有关申请、使用打印机的代码。要求给出信号量的含义和初值。

如何利用信号量PV操作实现进程的同步?

对某个必须互斥使用的共享缓冲器,采用PV操作管理。假定现在有n个进程在等待向缓冲器中存放物品,那么至少()有个进程调用过P操作。

在()中,为了能区别不同的进程和记录每个进程的执行情况,对每个进程要设置一个()

每个进程都有一个进程控制块,用以记录各个进程执行时的情况,保存在各个进程控制块中的信息允许()A、本进程查阅B、编译进程读取C、操作系统修改D、当前运行进程修改

设有n个进程共享一个互斥段,如果:  (1)每次只允许一个进程进入互斥段;  (2)每次最多允许m个进程(m≤n)同时进入互斥段。  试问:所采用的信号量初值是否相同?信号量值的变化范围如何?

操作系统中利用信号量和P、V操作,()。A、只能实现进程的互斥B、只能实现进程的同步C、可实现进程的互斥和同步D、可完成进程调度

为保证系统数据库的完整性,可以把信号量定义为某个库文件(或记录)的锁,初值为1,任何进程存取该库文件(或记录)之前先对它作一个操作,存取之后对它作一个(),从而做到对该文件(或记录)任一时刻只有一个进程可存取,但要注意使用不当引起的死锁。A、V操作B、读操作C、写操作D、P操作

用PV操作实现进程互斥进入相关临界区时,要求()A、用一个信号量S与一组相关临界区联系起来B、任何进程在进入临界区前应调用P操作C、进程退出临界区进调用V操作来释放一个等待信号量S的进程D、一个等待信号量S的进程被释放后便可以进入它的临界区E、一个等待信号量S的进程被释放后应再调用P操作后才能进入它的临界区.

单选题每个进程都有一个进程控制块,用以记录各个进程执行时的情况,保存在各个进程控制块中的信息允许()A本进程查阅B编译进程读取C操作系统修改D当前运行进程修改

填空题在()中,为了能区别不同的进程和记录每个进程的执行情况,对每个进程要设置一个()

单选题为保证系统数据库的完整性,可以把信号量定义为某个库文件(或记录)的锁,初值为1,任何进程存取该库文件(或记录)之前先对它作一个操作,存取之后对它作一个(),从而做到对该文件(或记录)任一时刻只有一个进程可存取,但要注意使用不当引起的死锁。AV操作B读操作C写操作DP操作

多选题用PV操作实现进程互斥进入相关临界区时,要求()A用一个信号量S与一组相关临界区联系起来B任何进程在进入临界区前应调用P操作C进程退出临界区进调用V操作来释放一个等待信号量S的进程D一个等待信号量S的进程被释放后便可以进入它的临界区E一个等待信号量S的进程被释放后应再调用P操作后才能进入它的临界区.

单选题操作系统中利用信号量和P、V操作,()。A只能实现进程的互斥B只能实现进程的同步C可实现进程的互斥和同步D可完成进程调度

填空题对某个必须互斥使用的共享缓冲器,采用PV操作管理。假定现在有n个进程在等待向缓冲器中存放物品,那么至少()有个进程调用过P操作。