首页 > 试题广场 >

在操作系统中,对信号量 S 的 P 原语操作的定义中,使进程

[单选题]
在操作系统中,对信号量 S P 原语操作后,使进程进入相应阻塞队列等待的条件是( __________
  • S>0
  • S=0
  • S<0
  • S≥0
  • S≤0
问的是执行P操作之后信号量S的值,而不是之前。
发表于 2018-11-07 11:46:04 回复(0)
信号量是表示资源的物理量,它只能供P操作和v操作使用,利用信号量S的取值表示共享资源的使用情况,或用它来指示进程之间交换的信息。在具体使用中,把信号量S放在进程运行的环境中,赋予其不同的初值,并在其上实施P操作和V操作,以实现进程间的同步和互斥。P、V操作是定义在信号量S上的两个操作原语:
P(S):(1) S←S-1;
(2) 若S≥0,则调用P(S)的这个进程继续被执行;
(3) 若S<0,则调用P(S)的这个进程被阻塞,并将其插入到等待信号量S的阻塞队列中。
V(S):(1) S←S+1;
(2) 若S>0,则调用P(S)的这个进程继续被执行;
(3) 若S≤0,则先从等待信号量S的阻塞队列中唤醒队首进程,然后调用V(S)的这个进程继续执行。
信号量S>O时的数值表示某类资源的可用数量,执行P操作意味着申请分配一个单位的资源,故执行S减l操作,若减1后S<0,则表示无资源可用,这时S的绝对值表示信号量S对应的阻塞队列中进程个数。执行一次V操作则意味着释放一个单元的资源,故执行S增1操作,若增1后S≤0,则表示信号量S的阻塞队列中仍有被阻塞的进程,故应唤醒该队列上的第一个阻塞进程。
发表于 2017-07-01 02:44:21 回复(0)