1、系统中有多个生产者进程和多个消费者进程,共享一个能存放500件产品的环形缓冲区(开始时为空)。当缓冲区未满时,生产者进程可以放入其生产的一件产品,否则等待;当缓冲区未空时,消费者进程可以从缓冲区取走一件产品,否则等待。当一个消费者进程获得取出产品的机会时,必须连续取出5件产品后,其他消费者才可以取产品。请回答以下问题: (1)说明问题中进程间的同步与互斥关系。 (2)说明信号量的设置、初值及含义。 (3)写出该问题的同步算法。

题目

1、系统中有多个生产者进程和多个消费者进程,共享一个能存放500件产品的环形缓冲区(开始时为空)。当缓冲区未满时,生产者进程可以放入其生产的一件产品,否则等待;当缓冲区未空时,消费者进程可以从缓冲区取走一件产品,否则等待。当一个消费者进程获得取出产品的机会时,必须连续取出5件产品后,其他消费者才可以取产品。请回答以下问题: (1)说明问题中进程间的同步与互斥关系。 (2)说明信号量的设置、初值及含义。 (3)写出该问题的同步算法。


相似考题
更多“1、系统中有多个生产者进程和多个消费者进程,共享一个能存放500件产品的环形缓冲区(开始时为空)。当缓冲区未满时,生产者进程可以放入其生产的一件产品,否则等待;当缓冲区未空时,消费者进程可以从缓冲区取走一件产品,否则等待。当一个消费者进程获得取出产品的机会时,必须连续取出5件产品后,其他消费者才可以取产品。请回答以下问题: (1)说明问题中进程间的同步与互斥关系。 (2)说明信号量的设置、初值及含义。 (3)写出该问题的同步算法。”相关问题
  • 第1题:

    阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。

    【说明】

    在并发系统设计中,通过对信号量S的P、V操作实现进程的同步与互斥控制。

    P(S):S:=S-1,若S≥0,则执行P操作的进程继续执行:若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。

    V(S):S:=S+1,若S>0,则执行V操作的进程继续执行;若S≤0,则从阻塞队列唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续执行。

    在某并发系统中,有一个发送进程A、一个接收进程B、一个环形缓冲区BUFFER、信号量S1和S2。发送进程不断地产生消息并写入缓冲区BUFFER,接收进程不断地从缓冲区BUFFER取消息。假设发送进程和接收进程可以并发地执行,那么,当缓冲区的容量为N时,如何使用P、V操作才能保证系统的正常工作。发送进程A和接收进程B的工作流程如图4-1所示。请在图4-1中的空(1)~(4)处填入正确的内容。


    正确答案:(1)P(S1) (2)V(S2) (3)P(S2) (4)V(S1)
    (1)P(S1) (2)V(S2) (3)P(S2) (4)V(S1) 解析:本题考查的是并发系统的同步与互斥控制。
      在并发系统中,同时存在的多个进程在执行速度上是相对独立的,它们以各自的运行速度向前推进。但是,由于多个并发进程或者共享系统资源,或者合作完成某项任务,所以它们之间常常存在着相互制约或彼此依赖的关系,进程之间的这种制约和依赖关系可以归结为两种基本形式:同步和互斥。
      一般来说,一个进程相对于另一个进程的运行速度是不确定的,也就是说进程是在异步环境下运行的,每个进程都有各自独立的、不可预知的速度向前推进。但是相互合作的进程需要在某些确定点上协调它们的工作,当一个进程到达了这些点后,除非另一进程已经完成了某些操作,否则就不得不停下来等待这些操作结束。这就是进程间的同步。
      在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源(critical resource,CR),如打印机、公共变量、内存工作区、表格等。临界区(critical section,CS)是进程中对临界资源实施操作的那段程序。
      在多道程序系统中,一般都使用P、V操作原语通过信号量实现进程的同步和互斥。信号量是一种特殊的变量,它具有以下特性:
      ▲ 信号量是一个整型变量。
      ▲ 每一个信号量表示一种系统资源的状况,其值表示资源当前可用的数量。
      ▲ 每一个信号量都对应一个空或非空的等待队列,该队列就是信号量所表示的资源的等待队列。
      ▲ 对信号量只能实施P、V操作,只有P、V操作才能改变其值。
      P操作的功能是:当进程执行P操作时,首先将信号量S减一,其结果为:若 S0,则该进程继续运行;若S0,则阻塞该进程,并把它插入道信号量S的等待队列中。
      V操作的功能是:当进程执行V操作时,首先将信号量S加1,其结果是:若S>0,则该进程继续执行;如果S≤o,则释放S信号量等待队列中队首的等待进程,解除其阻塞状态,而调用V操作的当前进程继续执行。
      P、V操作是一对操作,若有对信号量的P操作,必定有对该信号量的V操作,这样才能保证资源被合理地分配和释放。
      问题1:缓冲区BUFFER是临界资源,信号量S1表示缓冲区中空闲单元的数目,初值为N,信号量S2表示缓冲区中消息的数目,初值为0。
      显然,发送进程海产生一条消息,将消耗一个空闲的缓冲区单元,所以将消息送入缓冲区时应先执行一个P(S1),写入消息后执行一个V(S2)。当接收进程执行时,若缓冲区中有消息,则可读取,然后将释放一个空闲单元,所以接收进程进入其临界区后先执行一个P(S2),读取消息后执行一个V(S1)。

  • 第2题:

    下列哪一个问题只包含进程互斥问题? ()

    A 田径场上的接力比赛

    B 两个进程都要使用打印机

    C 一个生产者和一个消费者通过一个缓冲区传递产品

    D 公共汽车上司机和售票员的协作


    参考答案B

  • 第3题:

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


    正确答案:

  • 第4题:

    下列说法中,正确的是

    A.进程之间同步,主要源于进程之间的资源竞争,是指对多个相关进程在执行次序上的协调

    B.信号量机制是一种有效的实现进程同步与互斥的工具。信号量只能由P\V.操作来改变

    C.V操作是对信号量执行加1操作,意味着释放一个单位资源,加1后如果信号量的值小于等于0,则从等待队列中唤醒一个进程,现进程变为等待状态;否则现进程继续进行

    D.临界区是指每次仅允许一个进程访问的资源


    正确答案:B
    解析:A:注意同步和互斥的区别;C:V操作加1后如果信号量的值小于等于0,则唤醒一个进程,否则进程继续执行;D:注意区分临界区和临界资源。

  • 第5题:

    某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区中取出产品消费,用P、V操作实现进程间的同步模型如下图所示。假设信号量S1的初值为1,信号量S2的初值为0,那么a、b处应分别填(26),c、d处分别填(27)。

    A.V(S2)、P(S1)

    B.P(S1)、V(S2)

    C.P(S2)、V(S1)

    D.V(S1)、P(S2)


    正确答案:B

  • 第6题:

    假设系统采用PV操作实现进程同步与互斥,若有n个进程共享一台扫描仪,那么当信号量S的值为-3时,表示系统中有(23)个进程等待使用扫描仪。

    A.0

    B.n-3

    C.3

    D.n


    正确答案:C
    在PV操作中,信号量用于表示系统中现有资源的数量,当信号量值为负数时,代表这类资源系统已经分配完毕。此时,对负数取绝对值能得到当前等待进程数量。

  • 第7题:

    某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区取产品消费。假设该缓冲区只能容纳一个产品。进程P1与P2的同步模型如图2-2所示。

    为此,应设信号量S1的初值为(1),信号量S2的初值为(2)。

    A.-2

    B.-1

    C.0

    D.1


    正确答案:D

  • 第8题:

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


    s=0表示满缓冲的数量、即多少缓冲区里有消息
    m=1表示互斥信号量
    A:P(m)B:V(m)C:P(s)D:P(m)
    由题意,m用于实现进程互斥,初值应为1,并应成对出现,由接收者进程的V(m)操作可知,m用于实现消息链存、取缓冲区操作的互斥,故D为P(m)。相应的,A为P(m),B为V(m)。
    由发送者进程可知,当发送者将一个消息放入消息链尾后,执行V(s)操作,故s表示接收者可取消息的数量,又因s用于实现进程同步,所以接收者接受消息前,应判断是否有消息可以取,需对s执行P操作,所以C为P(s),发送者发送消息前,接收者无消息可取,s的初值应为0。

  • 第9题:

    某系统中有一个缓冲区,进程p1不断地生产产品送入缓冲区,进程p2不断地从缓冲区中取出产品消费,用p、v操作实现进程间的同步模型如下图所示,假设信号量S1的初值为1,信号量S2的初值为0,那么a、b、c处应分别填()

    A.V(S2)、p(S1)、v(s1)
    B.V(S2)、p(S2)、v(s1)
    C.V(S2)、p(S1)、v(s2)
    D.V(S2)、p(S2)、v(s2)

    答案:B
    解析:
    PV操作成对出现,题干中的P(S1)对应C,而a与b围绕缓冲区是一对,并且a为释放操作,因此选择B。

  • 第10题:

    系统中有2个并发进程,当一个进程在等待另一个进程向它发送消息时,它们之间的关系是()。

    • A、同步关系
    • B、互斥关系
    • C、调度关系
    • D、父子进程关系

    正确答案:A

  • 第11题:

    试以生产者—消费者问题说明进程同步问题的实质。


    正确答案:一个生产者,一个消费者和一个产品之间关系是典型的进程同步问题。设信号量S为仓库内产品,P- V操作配对进行缺一不可。生产者进程将产品放人仓库后通知消费者可用;消费者进程在得知仓库有产品时取走,然后告诉生产者可继续生产。

  • 第12题:

    问答题
    试以生产者—消费者问题说明进程同步问题的实质。

    正确答案: 一个生产者,一个消费者和一个产品之间关系是典型的进程同步问题。设信号量S为仓库内产品,P- V操作配对进行缺一不可。生产者进程将产品放人仓库后通知消费者可用;消费者进程在得知仓库有产品时取走,然后告诉生产者可继续生产。
    解析: 暂无解析

  • 第13题:

    若系统中有多个发送进程和接收进程,进程间的工作流程如图4-2所示,其中空 (1)~(4)的内容与图4-1相同。发送进程产生消息并顺序地写入环形缓冲区BUFFER,接收者进程顺序地从BUFFER中取消息,且每条消息只能读取一次。为了保证进程间的正常通信,增加了信号量SA和SB。

    ①请说明信号量SA和SB的物理意义,并在图4-2中的空(5)和空(6)处填入正确的内容。

    ②请从图4-2的(a)~(1)中选择四个位置正确地插入P(SA)、V(SA)、P(SB)、V(SB)。


    正确答案:表示允许同时对缓冲区进行写操作的进程数量 表示允许同时对缓冲区进行读操作的进程数量 P(SA)插入位置(b)V(SA)插入位置(f)P(SB)插入位置(h)V(SB)插入位置(k)。 解法2: 表示允许同时对缓冲区进行读操作的进程数量 表示允许同时对缓冲区进行写操作的进程数量 P(SB)插入位置(b)V(SB)插入位置(f)P(SA)插入位置(h)V(SA)插入位置(k)。
    表示允许同时对缓冲区进行写操作的进程数量 表示允许同时对缓冲区进行读操作的进程数量 P(SA)插入位置(b),V(SA)插入位置(f),P(SB)插入位置(h),V(SB)插入位置(k)。 解法2: 表示允许同时对缓冲区进行读操作的进程数量 表示允许同时对缓冲区进行写操作的进程数量 P(SB)插入位置(b),V(SB)插入位置(f),P(SA)插入位置(h),V(SA)插入位置(k)。 解析:当系统中有多个发送进程和接收进程时,对缓冲区的写操作应互斥地进行,并且发送进程对下标i的修改要顺序地进行:同时,要保证每个消息只能被读取1次,对缓冲区的读操作也要互斥地进行,并且接收进程对下标j的修改要顺序地进行。因此,信号量SA和SB用于对缓冲区的写、读操作进行互斥控制。

  • 第14题:

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

    A.1

    B.6

    C.8

    D.9


    参考答案:A

  • 第15题:

    “生产者—消费者”问题是一个经典的进程同步与互斥控制问题,若缓冲区可存放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。

  • 第16题:

    ● 某系统中有一个缓冲区,进程 P1 不断地生产产品送入缓冲区,进程 P2 不断地从冲区中取出产品消费,用P、V 操作实现进程间的同步模型如下图所示。假设信号量S1初值为1,信号量S2的初值为0,那么a、 b处应分别填 (26) , c、 d处分别填 (27) 。

    (26)

    A. V(S2)、P(S1)

    B. P(S1)、V(S2)

    C. P(S2)、V(S1)

    D. V(S1)、P(S2)

    (27)

    A. V(S2)、P(S1)

    B. P(S1)、V(S2)

    C. P(S2)、V(S1)

    D. V(S1)、P(S2)


    正确答案:B,C

  • 第17题:

    某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区中取产品消费。假设该缓存区只能容纳一个产品。进程P1与P2的同步模型如下图所示:

    为此,应设信号量S1的初值为(18),信号量S2的初值为(19)。

    A.-2

    B.-1

    C.0

    D.1


    正确答案:D
    解析:由于系统中只有一个缓冲区,需要设置一个信号量S1,且初值为1,表示缓冲区空,可以将产品送入缓冲区。为了实现P1与P2进程间的同步问题,设置另一个信号量S2,且初值为0,表示缓冲区有产品。这样,当生产者进程P1生产产品送入缓冲区时需要判断缓冲区是否为空,需要执行P(S1),产品放入缓冲区后需要执行V(S2),通知消费者缓冲区已经有产品。而消费者进程P2在取产品消费之前必须判断缓冲区是否有产品,需要执行P(S2),取走产品后缓冲区空了,需要执行V(S1),释放缓冲区。

  • 第18题:

    下列只包含进程互斥问题的是(16)。

    A.田径场上的接力比赛

    B.一个进程读文件,一个进程写文件

    C.一个生产者和一个消费者通过一个缓冲区传递产品

    D.公共汽车上司机和售票员的协作


    正确答案:B
    解析:本题考查进程互斥和同步的知识。进程互斥是要保证临界资源在某一时刻只被一个进程访问。而进程同步是指进程之间异步执行,且各进程按一定的制约顺序和速度执行。在田径场—上进行接力比赛时,在接力的时刻,两个队员同时拥有了对接力棒的操作,需要协调,不只包含进程互斥,还包含了进程同步问题;当对文件进行操作时,一般只允许一个步骤执行,要么读,要么写,不允许同时进行,要在一个进程结束后才允许另一个进程开始,因此,只包含了进程互斥问题;而C选项中的生产者-消费者问题是一个典型的进程同步、互斥问题。

  • 第19题:

    某系统有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区取产品消费。用PV操作实现进程间的同步模型如图2-3所示。假设信号量S1的初值为1,信号量S2的初值为0,那么,a、b处应当写别填(1),c、d处分别填(2)。

    A.V(S2)、P(S1)

    B.P(S1)、V(S2)

    C.P(S2)、V(S1)

    D.V(S1)、P(S2)


    正确答案:B

  • 第20题:

    假设有5个进程共享一个互斥段X,如果最多允许2个进程同时进入互斥段X,则信号量S的变化范围是( );若信号量S的当前值为-3,则表示系统中有(请作答此空)个正在等待该资源的进程。

    A.0
    B.1
    C.2
    D. 3

    答案:D
    解析:
    本题的正确答案为D。根据PV操作定义,当信号量的值小于0时,其绝对值表示等待资源的进程数。本题中信号量S的当前值为-3,则表示系统中有3个进程请求资源得不到满足。

  • 第21题:

    某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区中取出产品消费,用P、V操作实现进程间的同步模型如下图所示。假设信号量S1的初值为1,信号量S2的初值为0,那么a、b、C处应分别填( )

    A.V(S2)、P(S1)、V(S1)
    B.V(S2)、P(S2)、V(S1)
    C.P(S2)、V(S1)、V(S2)
    D.P(S2)、V(S2)、V(S1)

    答案:B
    解析:

  • 第22题:

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

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

    正确答案:A

  • 第23题:

    单选题
    系统中有2个并发进程,当一个进程在等待另一个进程向它发送消息时,它们之间的关系是()。
    A

    同步关系

    B

    互斥关系

    C

    调度关系

    D

    父子进程关系


    正确答案: A
    解析: 题目中知一个进程在等待另一个进程向它发送消息,则两进程关系为同步关系,题中没有说明有共享资源、相互调用和父子关系,所以不存在互斥关系,调用关系以及父子关系,故选择A选项。

  • 第24题:

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

    1

    B

    6

    C

    8

    D

    9


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