文章

21

粉丝

0

获赞

0

访问

3.2k

头像
2011年(408)计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2026年5月10日 17:17
阅读数 86


评分及理由

(1)得分及理由(满分8分)

该同学的回答存在多处逻辑错误和遗漏,具体分析如下:

  • 信号量定义错误mutex被定义为“服务窗口的互斥锁”,但标准答案为取号机互斥信号量(machine=1)。该同学未定义取号机互斥信号量,且将mutex用于服务窗口,导致顾客取号时可能并发冲突。
  • 同步关系缺失:标准答案中需要 service_i(或通过fullempty配合)实现顾客等待叫号与营业员叫号的同步。该同学将P(full)(营业员等待顾客)和V(full)(顾客通知营业员有等待者)完全忽略,导致营业员无法知道何时有顾客等待,可能发生营业员空叫号或无顾客时持续服务的情况。
  • 信号量操作顺序混乱:在顾客进程中,取号后立即 V(site)(释放座位),但顾客实际还未进入等待座位区(标准答案中先进入座位区再释放 empty)。该操作导致座位计数混乱:顾客取号后还未就座就释放了座位,可能使其他顾客误以为有空位而提前取号,造成系统状态不一致。
  • 营业员进程逻辑错误:营业员中 V(site) 操作位置错误。标准答案中,营业员应在顾客离开座位区后(即叫号前或服务后)释放 empty,但该同学在叫号后立即 V(site),此时顾客尚未离开座位区(因为叫号后顾客才从座位区离开去服务),导致座位计数提前增加。
  • 信号量缺失:未定义 full(等待顾客数量)和 service_i(个体叫号同步),导致无法实现营业员等待顾客、以及指定顾客被叫号的同步。

综上所述,该答案存在根本性的逻辑缺陷,未能正确实现题目的互斥与同步要求,仅部分体现了信号量使用的形式(如 P(site)V(site) 的简单互斥)。因此,得分较低。

题目总分:0+0+0=0分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发