教资会网络 | UGC NET CS 2017 年 1 月至 2 日 |问题 36
有三个进程 P 1 、P 2和 P 3共享一个信号量来同步一个变量。信号量的初始值为 1。假设信号量的负值告诉我们有多少进程在队列中等待。进程按以下顺序访问信号量:
(a) P 2需要访问
(b) P 1需要访问
(c) P 3需要访问
(d) P 2退出临界区
(e) P 1退出临界区
信号量的最终值将是:
(一) 0
(二) 1
(C) -1
(D) -2答案:(一)
解释:信号量初始值 S=1
- P 2需要访问的信号量减1,新的值将是0(没有人在等待)
- P 1需要访问的信号量减1,新值将是-1(一个进程正在等待)
- P 3需要访问将信号量减 1,新值将是 -2(2 个进程正在等待)
- P 2退出临界区信号量增加 1,新值将是 -1(一个进程正在等待)
- P 1退出临界区将信号量增加 1,新值将为 0(没有进程在等待)
所以,选项(A)是正确的。
这个问题的测验