文章

133

粉丝

1

获赞

100

访问

32.0k

头像
2011年(408)计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年11月18日 21:11
阅读数 9


评分及理由

(1)信号量定义部分(满分2分)

学生定义了四个信号量:mutex=1(互斥取号机)、site=10(座位资源)、service=1(服务资源)、number=0(号码资源)。其中mutex和site的初值正确,但service和number的含义与标准答案有差异。service在标准答案中应表示顾客等待叫号的同步信号量,初值应为0;而学生将其定义为1,含义不准确。number信号量用于表示等待顾客数量,与标准答案中full信号量作用类似,但缺少empty信号量(学生用site代替empty)。信号量定义部分存在逻辑错误,扣1分。得分:1分。

(2)顾客进程实现(满分3分)

顾客进程基本流程正确:先申请座位,再互斥取号,然后释放号码资源,最后等待服务。但存在以下问题:1)缺少对座位区的互斥访问(标准答案中的mutex2);2)等待叫号的实现方式不正确,学生使用P(service)来获取服务,但service初值为1,这会导致第一个顾客无需等待就能直接获得服务,破坏了同步关系;3)V(number)的位置基本正确。由于存在明显的同步逻辑错误,扣2分。得分:1分。

(3)营业员进程实现(满分3分)

营业员进程基本流程正确:先检查有等待顾客,然后叫号,释放座位,提供服务。但存在以下问题:1)缺少对座位区的互斥访问;2)服务顺序有问题,应该在叫号后立即通知顾客(V(service)),而不是等服务完成后再通知;3)V(service)的位置错误,这会导致顾客在服务完成后才被唤醒,逻辑错误。由于存在严重的同步逻辑错误,扣2分。得分:1分。

题目总分:1+1+1=3分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发