第 26 题
某系统有 3 台打印机,N 个进程共享使用。每个进程需先申请 1 台打印机,使用完毕后再释放。用 PV 操作管理时,设置信号量 S 的初值为 3,以下关于信号量 S 的叙述中,正确的是()
A. 当前 S 的值表示系统中当前可用的打印机台数 B. 当前 S 的值表示系统中当前被占用的打印机台数 C. 当前 S 的值表示系统中当前阻塞等待打印机的进程数 D. 若当前 S 的值为 0,则一定没有进程正在使用打印机
[tag_link]
正确答案:A
- 信号量 S 用于表示资源(打印机)的数量,采用**资源信号量**(或称记录型信号量)的典型用法。 > 初始时 S = 3,表示 3 台打印机都可用。 >
- 进程申请打印机时执行 P(S):若 S > 0,则 S 减 1 并分配一台打印机; > 若 S = 0,则进程阻塞等待。 > 因此 **S 的当前值表示系统中当前可用的打印机数量**,A 正确。 >
- B 错误,被占用的打印机数 = 3 − S。 >
- C 错误,阻塞进程数由另一个等待队列记录,并不等于 S 的值(S 可能为负数,其绝对值表示阻塞进程数,但题目是记录型信号量的常规描述,一般 S 值不直接表示阻塞进程数,且通常教材中 S 的值可以小于 0,其绝对值为等待进程数,但本题强调“当前 S 的值”直接含义,应选 A)。 >
- D 错误,S = 0 表示打印机已全部分配出去,可能正有多个进程在使用打印机。 >