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

题目

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

A.1个信号量,信号量的初值是0

B.2个信号量,信号量的初值是0、1

C.3个信号量,信号量的初值是0、0、1

D.4个信号量,信号量的初值是0、0、1、1


相似考题
更多“ 进程PA不断地向管道写数据,进程PB从管道中读数据并加工处理,如图5-1所示。如果采用P、V操作来实现进程PA和PB的管道通信,并且保证这两个进程并发执行的正确性,则至少需要(2)。A.1个信号量,信号量的初值是”相关问题
  • 第1题:

    重新定义P操作: P(s): S=S-1; if s<0 then {将本进程插入相应等待队列的队首}; V操作的定义不变。 使用上述定义的信号量操作。现有n个进程竞争进入一个临界区,需要使用(24),并保证进程能够以正常的次序公平地进入临界区。

    A.1个信号量,初值为1

    B.2个信号量,初值分别为1,0

    C.n-1个信号量,初值均为1

    D.n/2个信号量,初值均为1


    正确答案:C
    解析:本题考查的是信号量,P、V操作,队列等多方面的概念及其运用。回顾正常定义的P、V操作:P(s):s=s-1;ifs0then{将本进程插入相应等待队列的队尾};V(s):s=s+1;ifs≤0then{将本进程插入就绪队列,唤醒相应等待队列的队首进程}:显然,这样可以保证在多个进程竞争进入临界区时,能保证按先等待、先唤醒的次序进入临界区。但是,根据新的P操作定义(V操作定义不变),这时唤醒将以后进先出的次序进行。因此为了保证正常次序,每个等待队列上等待的元素不能超过两个,否则必定会产生不公平现象。根据题意,有n个进程竞争进入一个临界区,考虑临界区的互斥性,只能有一个进程进入,其余进程将进入等待队列。考虑公平性,就需要n-1个队列,也就是n-1个信号量,初值均为1。当n个进程到来时,只有1个进程进入临界区,其他进程分别进入n-1个队列等待,每队一个进程。在队列Si上等待的进程被唤醒,就将进入队列Si+1,上等待,依次下去,直到进入临界区。这时竞争进程流程见下页右侧图。

  • 第2题:

    进程PA不断地向管道写数据,进程PB从管道中读数据并加工处理,如下图所示。如果采用PV操作来实现进程PA和进程PB间的管道通信,并且保证这两个进程并发执行的正确性,则至少需要( )。

    A.1个信号量,信号量的初值为0
    B.2个信号量,信号量的初值分别为0、1
    C.3个信号量,信号量的初值分别为0、0、1
    D.4个信号量,信号量的初值分别为0、0、1、1

    答案:B
    解析:

  • 第3题:

    1、系统中有3个进程A,B,C,相互协作完成对一组数据的分类汇总工作。进程A循环地从一个存着整数的文件中不断地读出数据,若该整数为偶数则放入1号缓冲区;若该整数为奇数则放入2号缓冲区。进程B不断的从1号缓冲区读出数据并累计求和;进程C不断的从2号缓冲区读出数据并累计求和。每个缓冲区最多都可以放5个整数。试用信号量的PV操作实现三个进程间的同步关系。 (1)请分析三个进程之间的互斥和同步关系 (2)说明信号量的设置、初值及含义。 (3)请用P、V操作写出它们能正确并发执行的程序。


    B

  • 第4题:

    进程PA不断地向管道写数据,进程PB从管道中读数据并加工处理,如图3-4所示。如果采用PV操作来实现进程PA和进程PB间的管道通信,并且保证这两个进程并发执行的正确性,则至少需要______。

    A.1个信号量,信号量的初值为0

    B.2个信号量,信号量的初值分别为0,1

    C.3个信号量,信号量的初值分别为0,0,1

    D.4个信号量,信号量的初值分别为0,0,1,1


    正确答案:B
    解析:这是一个典型的生产者—消费者问题,其中PA、PB分别为生产者和消费者,管道为临界区。程序应该设置1个同步信号量,信号量为1时说明管道已满,拒绝PA再写入数据;信号量为0时说明管道为空,拒绝PB再读出数据。管道初始是没有数据的,所以初始值为0。程序还需要1个互斥信号量,来保证程序只有一个进程访问管道,其初始值为1。

  • 第5题:

    综合题:有三个进程PA,PB和PC协作解决身份识别问题。PA从摄像头采集数据,存到缓冲区1,每次采集一个数据;PB对缓冲区1的数据进行处理,并将判别结果存到缓冲区2,每次处理一个数据;PC将缓冲区2的内容显示出来,每次显示一个结果。请用信号量保证该过程的正确执行。 (1)需要设置几个信号量?初始值为多少? (2)给出PA,PB,PC的算法描述。


    该文件打印过程的同步算法可描述如下: 本题其实就是一个生产者一消费者问题。对缓冲区1来说,PA是生产者,PB是消费者;对缓冲区2来说,PB是生产者,PC是消费者。需要说明的有两点:①缓冲区1和缓冲区2都只能存放一个记录,故无需设置in、out指针,原来生产者一消费者问题中的mutex信号量也因此可以省去;②PB进程既是消费者,又是生产者。