【正确答案】
D
【答案解析】[分析] 从试题描述来看,在本题中,信号量S1表示仓库空闲位置个数,初值为n; S2表示仓库中零件箱数,初值为0;S3用于实现对保管员的互斥访问,初值为1。
对于工人进程,首先应执行P(SU,看仓库中是否有空闲位置,若有,则将零件送入仓库,然后执行V(S2),表明仓库中已有一箱零件,通知销售员可以提货。然后执行P(S3),看保管员是否空闲,若空闲,登记入库数,然后V(S3),使保管员处于空闲状态。
对于销售员进程,首先执行P(S2),看仓库中是否有货物,若有,可以提货,然后执行V(S1),表明已经提走一箱零件,空闲出一个位置,工人进程可以放置货物;然后执行P(S3),看保管员是否空闲,若空闲,登记出库数,然后V(S3),使保管员处于空闲状态。