对于有界缓冲区数量为n的生产者-消费者问题来说,应设置互斥信号量mutex、资源信号量full和empty,它们的初值分别应为()。A.0、1、nB.1、n、0C.n、1、0D.1、0、n

题目
对于有界缓冲区数量为n的生产者-消费者问题来说,应设置互斥信号量mutex、资源信号量full和empty,它们的初值分别应为()。

A.0、1、n

B.1、n、0

C.n、1、0

D.1、0、n


相似考题
更多“对于有界缓冲区数量为n的生产者-消费者问题来说,应设置互斥信号量mutex、资源信号量full和empty,它们的初值分别应为()。 ”相关问题
  • 第1题:

    对于两个并发进程,设互斥信号量为mutex,若mutex=0,则表示没有进程进入临界区。( )

    此题为判断题(对,错)。


    参考答案:错误

  • 第2题:

    利用信号量实现进程的(),应为临界区设置一个信号量 mutex。其初值为 (),表示该资源尚未使用,临界区应置于()和()原语之间。


    参考答案:互斥,1,P(mutex),V(mutex)

  • 第3题:

    进程P通过缓冲区K不断向n个进程Qi(1≤i≤n)发送消息,消息大小与缓冲区K一样。为了使每个接收进程都应该接收到与发送次序一样的消息序列,需要配置(23)。

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

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

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

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


    正确答案:C
    解析:本题考查的是信号量与P、V操作在复杂条件下的运用。每个信号量原则上只能用来保证一个同步关系。这里,一个同步关系是发送进程必须遵循“取后再送”。也就是说,缓冲区被送入消息后,只有n个接收进程都取到了该消息,发送进程才能再次送入消息。而不能让发送进程不顾接收情况连续地往缓冲区内送消息,导致有的消息尚未取走就被新消息覆盖。因此应该设一个信号量S1,由于刚开始时,缓冲区内没有消息,所以S1的初值应该为1。再次发送消息前执行P(S1)。另一个同步关系是接收进程必须遵循“送后再取”。也就是说,接收进程在接收到消息后,必须等到新消息送入后才能再去取,而不能连续地取,导致接收到的消息出现重复。因此,应该设一个信号量S2,由于刚开始时,缓冲区内没有消息,所以的初值应该为0。接收消息之前接收进程应该执行P(S2)。所有进程都接收了一条消息后执行V(S1)。发送进程发送一条消息后应该执行V(S2)。这看来是简单的生产者与消费者关系,其实不然。本题的问题出在接收进程有n个,而且每个接收进程接收消息的次序必须与发送次序相同。因此,应该设一个共享变量T,记录有多少个接收进程已经接收了同一条消息,T得初值为n。如果已经全部接收了消息,就可以允许发送进程发送下一条消息了,否则还不能发送。那么。既然T为所有接收进程所共享,是否也应该设一个信号量,以保证互斥呢?其实这是不必要的,因为接收进程在接收消息前必须执行P(S2),而S2的初值为0,只有在发送进程执行了V(S2)以后才只允许一个接收进程通过P(S2),如果将对T的操作放在接受进程执行P(S2)以后,互斥不会成为问题。其次,并不是所有接收进程接收了消息后都去执行V(S1),只是(对同一条消息而言)最后一个接收进程接收了消息后才去执行V(S1)。否则,随便一个接收进程接收消息后就去执行V(S1),使发送进程可以发送新消息,就会导致消息被覆盖,有的接收进程就再也不能接收到这条消息了。因此,接收进程接收了消息后,需将T减1,然后判断自己是否是(对同一条消息而言)最后一个接收到这条消息的进程,如果是(T=0),就先将T改为n,再执行V(S1),让发送进程再次发送消息;否则执行V(S2),唤醒下一个等待接收该消息的接收进程。但是,这样仅仅能够保证每一条消息只能被接收n次,并不能防止某个动作极快地接收进程连续多次接收同一条消息,而动作较慢的进程的接收机会却被抢夺。因此,必须控制不是(对同一条消息而言)最后一个接收到消息的接收进程的运行速度,避免造成接收不同消息的进程排在同一个队列(信号量S2所对应)中,让信号量S2所对应的队列中的排队元素永远是等待接收最新消息的进程。显然,这样又出现了一个新的同步条件,一个调节接收进程运行速度的同步条件。为此,应该再设置一个信号量S3,初值为0。不是(对同一条消息而言)最后一个接收到消息的接收进程在接收消息后执行V(S3),先在这个队列上等待。(对同一条消息而言)最后一个接收到该消息的进程在接收消息以后,将它们(共有n-1个进程)全部释放,共同进入对下一条消息的角逐。下图表示发送、接收进程的流程。

  • 第4题:

    有m个进程(P0,P1,…,Pm-1)通过n个缓冲区(B0,B1,…Bn-1)向1个进程(Q)发送数据包,每个数据包大小与缓冲区一样。要求:进程Q接收数据包的次序与发送次序一样。为保证发送进程与接收进程正确地并行工作,需要设置(23)。

    A.一个信号量,初值为0

    B.一个信号量,初值为1

    C.两个信号量,初值分别为0和1

    D.3个信号量,初值分别为n、1、0


    正确答案:D
    解析:本题考查进程同步与互斥方面的知识以及信号量的使用技能。原则上,为保证进程并行工作的正确性,对每一个同步或互斥条件应该设置一个信号量。首先,必须在缓冲区有内容时,接收进程才能取,也就是说,m个缓冲区中至少有1个是有数据包时,进程Q才能取,亦即送后再取。这是一个同步条件,需要一个信号量S3,刚开始时,所有缓冲区都没有数据包,接收进程不能取数据,所以该信号量的初值应该为0。其次,当m个缓冲区装满数据包时,没有空的缓冲区可以再容纳送来的数据包,必须等待接收进程Q取走一个数据包,发送进程Pi才能向它送入数据包,亦即取后再送。这又是一个同步条件,需要一个信号量S1,由于有n个缓冲区;发送进程可以在接收进程一个未取的情况下连续送n个数据包,所以它的初值应该为n。第三,为了使m个发送进程有序地向缓冲区放入数据包,不能出现两个进程同时向一个缓冲区放数据包的现象,应该将缓冲区编号,需要用一个变量代表将要放入数据的缓冲区号,每放入一个数据包,该变量加1并用n取模(保证该变量从0到n-1周而复始地变化)。这个变量是所有发送进程共享并进行修改的,因此发送进程必须互斥地访问它,所以还要是一个信号量S2,保证互斥关系,初值为1。这样,正确的答案应该是D。这里,设用于指向当前存放发送数据的缓冲区号的变量为t,初值为0;设指向将要从它那里取数据的缓冲区号的变量为f,初值也为0。下图表示发送进程与接收进程利用一组缓冲区通信的流程。

  • 第5题:

    在有N个缓冲区的生产者消费者的问题中,下列叙述中哪些是错误的?producer() { int item; while(TRUE) { item = produce_item(); P(empty); P(mutex); insert_item(item); V(mutex) V(full); } } consumer() { int item; while(TRUE) { P(full); P(mutex); item = remove_item(); V(mutex); V(mutex); consume_item(item); } }

    A.信号量empty的初值为N

    B.信号量full的初值为0

    C.信号量mutex的初值为0

    D.P(full)和P(mutex)两条语句可以颠倒顺序

    E.V(mutex)和V(mutex)两条语句可以颠倒顺序


    正确答案:CD

  • 第6题:

    某企业生产流水线M共有两位生产者,生产者甲不断地将其工序上加工的半成品放入半成品箱,生产者乙从半成品箱取出继续加工。假设半成品箱可存放n件半成品,采用PV操作实现生产者甲和生产者乙的同步可以设置三个信号量S、S1和S2,其同步模型如下图所示。

    信号量S是一个互斥信号量,初值为( );S1、S2的初值分别为(请作答此空)。

    A.n、0
    B.0、n
    C.1、n
    D.n、1

    答案:A
    解析:
    由于信号量S是一个互斥信号量,表示半成品箱当前有无生产者使用,所以初值为1。
    信号量S1表示半成品箱容量,故其初值为n。当生产者甲不断地将其工序上加工的半成品放入半成品箱时,应该先测试半成品箱是否有空位,故生产者甲使用P(S1)。信号量S2表示半成品箱有无半成品,初值为0。当生产者乙从半成品箱取出继续加工前应先测试半成品箱有无半成品,故生产者乙使用P(S2)。

  • 第7题:

    某企业生产流水线M共有两位生产者,生产者甲不断地将其工序上加工的半成品放入半成品箱,生产者乙从半成品箱取出继续加工。假设半成品箱可存放n件半成品,采用PV操作实现生产者甲和生产者乙的同步可以设置三个信号量S、S1和S2,其同步模型如下图所示。



    信号量S是一个互斥信号量,初值为( );S1的初值为( );S2的初值为(请作答此空)。

    A.0
    B.1
    C.n
    D.-1

    答案:A
    解析:
    本题主要考查PV操作实现同步与互斥。在本题中,题目告诉我们甲乙俩人互斥使用半成品箱这个共有资源,且只有一个半成品箱,那么互斥信号量的初值就应该为1。而从题目给出的同步模型图,我们可以看出,信号量S1是生产者甲的私有信号量,而S2是生产者乙的私有信号量,题目告诉我们半成品箱可存放n件半成品,那么初始状态时,S1的值应该为n,表示生产者甲最多只能生产n个半成品放入半成品箱,就需要生产者乙来协调工作。而S2的值为0,表示开始时半成品箱中没有半成品。

  • 第8题:

    某企业有生产部和销售部,生产部负责生产产品并送入仓库,销售部从仓库取产品销售。假设仓库可存放n件产品。用PV操作实现他们之间的同步过程如下图所示。

    其中,信号量S是一个互斥信号量,初值为( );S1是一个( );S2是一个(请作答此空)。

    A.互斥信号量,表示仓库的容量,初值为n
    B.互斥信号量,表示仓库是否有产品,初值为0
    C.同步信号量,表示仓库的容量,初值为n
    D.同步信号量,表示仓库是否有产品,初值为0

    答案:D
    解析:
    本题考查PV操作方面的基础知识。
    初值正确答案是B。根据题意,可以通过设置三个信号量S、S1和S2,其中,S是一个互斥信号量,初值为1,因为仓库是一个互斥资源,所以将产品送仓库时需要执行进行P(S)操作,当产品放入仓库后需要执行V(S)操作。
    S1的正确答案是C。从图中可以看出,当生产一件产品送入仓库时,首先应判断仓库是否有空间存放产品,故需要执行P(S1)操作,该操作是对信号量S1减1,若≥0表示仓库有空闲,则可以将产品放入仓库。由于仓库的容量为n,最多可以存放n件产品,所以信号量S1初值应设为n。
    S2的正确答案是D。从图中可以看出,生产部将产品放入仓库后必须通知销售部,故应执行V(S2)操作。销售部要从仓库取产品,首先判断仓库是否存有产品,故应执行P(S2)操作。若仓库没有产品,则执行P(S2)操作时,信号量S2减1,S2<0则表示仓库无产品,显然S2的初值应设为0。

  • 第9题:

    对于有界缓冲区数量为n的生产者-消费者问题来说,应设置互斥信号量mutex、资源信号量full和empty,它们的初值分别应为()。

    • A、0、1、n
    • B、1、n、0
    • C、n、1、0
    • D、1、0、n

    正确答案:D

  • 第10题:

    利用信号量实现进程的(),应为临界区设置一个信号量mutex,其初值为1,表示该资源尚未使用,临界区应置于()()原语之间。


    正确答案:互斥;P(mutex);(V(mutex

  • 第11题:

    单选题
    有9个生产者,6个消费者,共享容量为8的缓冲区。在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为()。
    A

    1

    B

    6

    C

    8

    D

    9


    正确答案: B
    解析: 暂无解析

  • 第12题:

    填空题
    利用信号量实现进程的(),应为临界区设置一个信号量mutex,其初值为1,表示该资源尚未使用,临界区应置于()()原语之间。

    正确答案: 互斥;P(mutex);(V(mutex
    解析: 暂无解析

  • 第13题:

    有9个生产者,6个消费者,共享容量为8的缓冲区。在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为( )。

    A.1

    B.6

    C.8

    D.9


    参考答案:A

  • 第14题:

    “生产者—消费者”问题是一个经典的进程同步与互斥控制问题,若缓冲区可存放n件物品,要解决这个问题,通常需要使用______个信号量。

    A.1

    B.2

    C.3

    D.4

    A.

    B.

    C.

    D.


    正确答案:C
    解析:设有一个生产者、一个缓冲区和一个消费者,缓冲区可存放n件物品。生产者不断地生产产品,消费者不断地消费产品。如何用PV操作实现生产者和消费者的同步。可以设置3个信号量S、S1和S2,其中,S是一个互斥信号量且初值为1,因为缓冲区是一个互斥资源,所以需要进行互斥控制;S1表示是否可以将物品放入缓冲区,初值为n;S2表示缓冲区是否存有物品,初值为0。

  • 第15题:

    进程P不断地从外部设备输入数据后通过缓冲区K向进程Q成批(以缓冲区大小为单位)传送,进程Q接到数据并做进一步处理后通过缓冲区T向进程S成批传送,进程R接到数据后将它们打印出来,K和T大小一样。要求打印数据的次序与进程P接收数据的次序一样。

    为了在保证结果正确性的前提下尽可能并行工作,需要设置(23)。

    A.两个信号量,初值分别为0,1

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

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

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


    正确答案:C
    解析:本题是考查信号量概念与P、V操作的实际运用,解决进程之间的同步与互斥问题。这个问题看起来是两对生产者与消费者组合的问题。由于进程P、Q、R存在着供给与消费的关系,这种关系体现了一种次序依赖关系。一方面,进程Q必须等待进程P接收到一批数据并将其放入缓冲区K后才可以取来加工,进程R必须等待进程Q将一批数据加工完成并放入缓冲区T以后才可以取来打印;另一方面,进程P必须等待进程Q取走缓冲区K的数据后才能将下一批数据放入K中,进程Q必须等进程R将缓冲区T的数据取走进行打印后才可以将加工好了的下一批数据放入T中。但是,进程P和Q之间并没有直接的依赖关系。因此,系统呈现这样一种工作流程:因此,进程P和Q之间存在两个同步条件,需要有两个信号量S1和S2来保证进程P和Q的同步关系,它们的初值分别为1和0;进程Q和R之间也一样,需要有两个信号量S1和S2来保证它们的同步关系,初值也分别是1和0。下图表示这3个进程的工作流程。

  • 第16题:

    若有一个仓库,可以存放P1,P2两种产品,但是每次只能存放一种产品。要求:

    ①w=P1的数量-P2的数量

    ②-i 若用P-V操作实现P1和P2产品的入库过程,至少需要(49)个同步信号量及

    (50)个互斥信号量,其中,同步信号量的初值分别为(51),互斥信号量的初值分别为(52)。

    A.0

    B.1

    C.2

    D.3


    正确答案:C

  • 第17题:

    某企业有生产部和销售部,生产部负责生产产品并送入仓库,销售部从仓库取出产品销售。假设仓库可存放n件产品。用PV操作实现他们之间的同步过程如下图所示。其中,信号量s是一个互斥信号量,初值为( );S1是一个(请作答此空);S2是一个( )。

    A.互斥信号量,表示仓库的容量,初值为n
    B.互斥信号量,表示仓库是否有产品,初值为0
    C.同步信号量,表示仓库是否有产品,初值为0
    D.同步信号量,表示仓库的容量,初值为n

    答案:D
    解析:
    本题主要考查PV操作实现同步与互斥。从图中可以看出,当生产一件产品送入仓库时,首先应判断仓库是否有空间存放产品,故需要执行P (S1)操作,该操作是对信号量S1减1,若多0表示仓库有空闲,则可以将产品放入仓库。由于仓库的容量为n,最多可以存放n件产品,所以信号量S1初值应设为n。故正确答案为D

  • 第18题:

    某企业生产流水线M共有两位生产者,生产者甲不断地将其工序上加工的半成品放入半成品箱,生产者乙从半成品箱取出继续加工。假设半成品箱可存放n件半成品,采用PV操作实现生产者甲和生产者乙的同步可以设置三个信号量S、S1和S2,其同步模型如下图所示。

    信号量S是一个互斥信号量,初值为(请作答此空);S1、S2的初值分别为( )。

    A.0
    B.1
    C.n
    D.任意正整数

    答案:B
    解析:
    由于信号量S是一个互斥信号量,表示半成品箱当前有无生产者使用,所以初值为1。
    信号量S1表示半成品箱容量,故其初值为n。当生产者甲不断地将其工序上加工的半成品放入半成品箱时,应该先测试半成品箱是否有空位,故生产者甲使用P(S1)。信号量S2表示半成品箱有无半成品,初值为0。当生产者乙从半成品箱取出继续加工前应先测试半成品箱有无半成品,故生产者乙使用P(S2)。

  • 第19题:

    某企业生产流水线M共有两位生产者,生产者甲不断地将其工序上加工的半成品放入半成品箱,生产者乙从半成品箱取出继续加工。假设半成品箱可存放n件半成品,采用PV操作实现生产者甲和生产者乙的同步可以设置三个信号量S、S1和S2,其同步模型如下图所示。信号量S是一个互斥信号量,初值为___1__;S1、S2的初值分别为____2__。
    2、_____

    A.n、0
    B.0、n
    C.1、n
    D.n、1

    答案:A
    解析:
    由于信号量S是一个互斥信号量,表示半成品箱当前有无生产者使用,所以初值为1。信号量S1表示半成品箱容量,故其初值为n。当生产者甲不断地将其工序上加工的半成品放入半成品箱时,应该先测试半成品箱是否有空位,故生产者甲使用P(S1)。信号量S2表示半成品箱有无半成品,初值为0。当生产者乙从半成品箱取出继续加工前应先测试半成品箱有无半成品,故生产者乙使用P(S2)。

  • 第20题:

    若有一个仓库,可以存放P1、P2两种产品,但是每次只能存放一种产品。要求: ①w=P2的数量-P2的数量 ②-iw<k(i、k为正整数) 若用PV操作实现P1和P2产品的入库过程,至少需要__(1)__个同步信号量及__(2)__个互斥信号量,其中,同步信号量的初值分别为__(3)__,互斥信号量的初值分别为__(4)__。 空白(2)处应选择()

    • A、0
    • B、1
    • C、2
    • D、3

    正确答案:B

  • 第21题:

    有9个生产者,6个消费者,共享容量为8的缓冲区。在这个生产者-消费者问题中,互斥使用缓冲区的信号量mutex的初值应该为()。

    • A、1
    • B、6
    • C、8
    • D、9

    正确答案:A

  • 第22题:

    单选题
    对于有界缓冲区数量为n的生产者-消费者问题来说,应设置互斥信号量mutex、资源信号量full和empty,它们的初值分别应为()。
    A

    0、1、n

    B

    1、n、0

    C

    n、1、0

    D

    1、0、n


    正确答案: B
    解析: 暂无解析

  • 第23题:

    单选题
    若有一个仓库,可以存放P1、P2两种产品,但是每次只能存放一种产品。要求: ①w=P2的数量-P2的数量 ②-iw<k(i、k为正整数) 若用PV操作实现P1和P2产品的入库过程,至少需要__(1)__个同步信号量及__(2)__个互斥信号量,其中,同步信号量的初值分别为__(3)__,互斥信号量的初值分别为__(4)__。 空白(2)处应选择()
    A

    0

    B

    1

    C

    2

    D

    3


    正确答案: A
    解析: 暂无解析