重新定义P操作: P(s): S=S-1; if s<0 then {将本进程插入相应等待队列的队首}; V操作的定义不变。 使用上述定义的信号量操作。现有n个进程竞争进入一个临界区,需要使用(24),并保证进程能够以正常的次序公平地进入临界区。A.1个信号量,初值为1B.2个信号量,初值分别为1,0C.n-1个信号量,初值均为1D.n/2个信号量,初值均为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,上等待,依次下去,直到进入临界区。这时竞争进程流程见下页右侧图。
更多“重新定义P操作: P(s): S=S-1; if s<0 then {将本进程插入相应等待队列的队首}; V操作的定义不变。 使用上述定义的信号量操作。现有n个进程竞争进入一个临界区,需要使用(24),并保证进程能够以正常的次序公平地进入临界区。A.1个信号量,初值为1B.2个信号量,初值分别为1,0C.n-1个信号量,初值均为1D.n/2个信号量,初值均为1”相关问题
  • 第1题:

    操作系统在使用信号量解决同步与互斥问题中,若P(或wAit)、V(或signAl)操作的信号量S初值为3,当前值为-2,则表示有( )等待进程。

    A 0个

    B 1个

    C 2个

    D 3个


    参考答案C

  • 第2题:

    若P、V操作的信号量S初值为2,当前值为-1,则表示有() 个等待进程。

    A.0

    B.l

    C.2

    D.3


    参考答案:B

  • 第3题:

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

    A.0个

    B.1个

    C.2个

    D.3个


    正确答案:B

  • 第4题:

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

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

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

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

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


    正确答案:B
    由于这里只有两个进程PA和PB,所以只需要用两个同步信号量,就可以让PA和PB同步和互斥,若有多个进程对管道操作,则需要增加互斥信号量。

  • 第5题:

    进程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个进程的工作流程。

  • 第6题:

    信号量是操作系统中用于互斥和同步机制的一个共享的整数变量。信号量仅可以由初始化、唤醒(Signal)和等待(Wait)三种操作访问。

    对于给定的信号量S,等待操作Wait(S)(又称P操作)定义为:

    if s>0 then (39) else挂起调用的进程

    唤醒操作Signal(S)(又称V操作)定义为:

    if 存在等待的进程 then 唤醒这个进程else (40)

    给定信号量S,可以定义一个临界区来确保其互斥,即保证在同一时刻这个临界区只能够被一个进程执行。当S被初始化为1时,代码段

    (41):

    {临界区}

    (42):

    定义了一个临界区。

    这样的临界区实际上是将共享数据和对这些数据的操作一起封装起来,通过其互斥机制一次只允许一个进程进入,这种临界区通常称为(43)。

    A.S:=0

    B.S:=S+1

    C.S:=S-1

    D.S:=1

    E.Signal(S+1)


    正确答案:C

  • 第7题:

    用P、V操作管理临界区时,把信号量sign的初值设为1。当sign的等待队列中有k(k>1)个进程时,信号量的值为( )。

    A)k

    B)k-1

    C)1-k

    D)-k


    正确答案:C

  • 第8题:

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

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

    答案:B
    解析:

  • 第9题:

    若P、V操作的信号量S初值为2,当前值为1,则表示有()个等待进程。

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

    正确答案:B

  • 第10题:

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


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

  • 第11题:

    单选题
    若P、V操作的信号量S初值为2,当前值为1,则表示有()个等待进程。
    A

    0

    B

    l

    C

    2

    D

    3


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

  • 第12题:

    单选题
    用PV操作管理临界区时,把信号量的初值定义为1,现有n个进程在等待进入临界区,这时信号量的值为()
    A

    n

    B

    n-1

    C

    1-n

    D

    -n


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

  • 第13题:

    若P、V操作的信号量S初值为2,当前值为-1,则表示有()个等待进程。

    A.0

    B.1

    C.2

    D.3


    参考答案B

  • 第14题:

    进程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


    正确答案:B
    解析:在单处理机中,由于多道程序的存在,即系统要对多个进程进行管理,而不可避免地涉及到并发控制。而进程间的互斥和同步是并发控制的有效手段。不允许两个以上的共享某资源的并发进程同时进入临界区称为互斥。此处,所谓的临界区是指每个进程中访问临界资源(临界资源是指公用数据,公用硬件或软件资源等)的那段程序代码。进程同步是指一组并发进程因直接制约而互相发送消息进行互相合作、互相等待,使得各进程按一定的速度执行的过程。在操作系统中,主要通过信号量和P、V原语来实现进程的同步和互斥。信号量sem是一个整数,在sem大于等于零时表示可供并发进程使用的资源实体数;sem小于零时,其绝对值表示正在等待使用临界区的进程数。P原语的主要操作是:(1)sem减1;(2)若sem减1后仍大于或等于零,则该进程继续执行:(3)若sem减1后小于零,则该进程被阻塞,在相应队列中排队,然后转向系统的进程调度。V原语的主要操作是:(1)sem加1;(2)若相加结果大于零,则进程继续执行:(3)若相加结果小于或等于零,则唤醒一阻塞在该信号量上的进程,然后再返回原进程继续执行或转进程调度。进程间可以互相传递信息和数据,这称为进程间通信(IPC)。进程的互斥和同步可归结为低级通信(P、V原语可看做是低级通信原语),一般只传送一个或几个字节的控制信息。操作系统还提供了高级通信机制,高级通信的目的不是为了控制进程的执行速度,而是为了交换信息。高级通信可分为三大类:共享存储器系统、消息传递系统和管道通信系统。本题是一个典型的生产者一消费者的问题,其中进程PA和PB分别为生产者与消费者,管道为临界区。程序应该设置1个同步信号量S1,当S1=1时说明管道已满,拒绝PA再写入数据:当S1=0时说明管道为空,拒绝PB再读出数据,管道初始是没有数据的,所以初始值为S1=0。同时,程序还需要设置1个互斥信号量S2,用以保证在同一时刻,只有一个进程访问管道,初始值为S2=1。首先,当进程PA需要向管道写数据时,执行P操作,S2-1=0,这时,如果PB需要从管道中读数据时,也执行P操作,S2-1=-1,则进程PB阻塞,直到PA写完数据后执行V操作,S2+1=0,唤醒进程PB读取数据。

  • 第15题:

    进程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个进程)全部释放,共同进入对下一条消息的角逐。下图表示发送、接收进程的流程。

  • 第16题:

    用P、V操作经管临界区时,信号量的初值应定义为()

    A.-1

    B.0

    C.1

    D.任意值


    正确答案:C

  • 第17题:

    有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。下图表示发送进程与接收进程利用一组缓冲区通信的流程。

  • 第18题:

    进程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。

  • 第19题:

    用P、V操作管理临界区时,把信号量mutex的初值设定为1。当有k(k>1)个进程在mutex的等待队列中时,信号量的值为

    A.k

    B.k 1

    C.1 k

    D.k


    正确答案:D

  • 第20题:

    若P、V操作的信号量S初值为2,当前值为1,则表示有()个等待进程。

    A0

    Bl

    C2

    D3


    B

  • 第21题:

    用PV操作管理临界区时,把信号量的初值定义为1,现有n个进程在等待进入临界区,这时信号量的值为()

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

    正确答案:D

  • 第22题:

    用PV操作实现进程互斥进入相关临界区时,要求()

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

    正确答案:A,B,C,D

  • 第23题:

    多选题
    用PV操作实现进程互斥进入相关临界区时,要求()
    A

    用一个信号量S与一组相关临界区联系起来

    B

    任何进程在进入临界区前应调用P操作

    C

    进程退出临界区进调用V操作来释放一个等待信号量S的进程

    D

    一个等待信号量S的进程被释放后便可以进入它的临界区

    E

    一个等待信号量S的进程被释放后应再调用P操作后才能进入它的临界区.


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