首页 > 试题广场 >

在计算机操作系统中信号量可以用来保证两个或多个关键代码段不被

[单选题]
在计算机操作系统中信号量可以用来保证两个或多个关键代码段不被并发调用,而在进入一个关键代码段之前,线程必须获取到一个信号量,现假设有4个进程共享同一程序段,而且每次最多允许3个进程进入该程序段,则信号量的变化范围是多少(    )?
  • 0~3
  • -1~3
  • 0~4
  • -2~2

允许3个进程同时进入程序段,因此信号量S设为3.

这里的信号量P操作应该是等待时,将其挂到信号量等待队列中,因此可以为负数。先对信号量执行减1操作,如果为负数,将进程添加到信号量等待队列,并挂起进程。

本题中,当3个线程进入程序段后,S=0;第4个进程再想进入时,S=-1,因此取值范围是[3,-1](整数)。

发表于 2021-06-25 14:19:36 回复(1)