模拟卷 操作系统 信号量 选择题
第 25 题

N 个进程共享 M 台打印机(其中 N>M),假设每台打印机为临界资源,必须独占使用,则打印机共享的互斥信号量的取值范围为( )。

A. -(N-1)~M B. -(N-M)~M C. -(N-M)~1 D. -(N-1)~1

信号量

[tag_link]

正确答案:B

互斥信号量用于控制对临界资源的访问,初始值通常设置为可用资源的数量。

本题中有 M 台打印机,因此信号量初始值为 M,表示最初有 M 台打印机空闲可用。

当进程申请使用打印机时执行 P 操作,信号量减 1; 当进程释放打印机时执行 V 操作,信号量加 1。 信号量的值代表当前可用打印机的数量,如果为负数,其绝对值表示等待使用打印机的进程数。

由于进程总数 N 大于打印机数 M,在最坏情况下,所有 M 台打印机都被占用,此时信号量为 0。 如果还有进程申请打印机,信号量将继续减小变为负值。 最多可能有 N-M 个进程同时等待(因为 M 个进程正在使用打印机,其余 N-M 个进程等待),因此信号量的最小值为-(N-M)。

信号量的最大值出现在没有进程使用打印机时,所有 M 台打印机均空闲,此时信号量为 M。

综上,信号量的取值范围是从最小值-(N-M) 到最大值 M,对应选项 B。 其他选项中,A 的等待进程数最多为 N-1,不符合实际; C 和 D 的最大值错误,应为 M 而非 1。