文章

20

粉丝

0

获赞

0

访问

483

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


评分及理由

(1)信号量定义及初值(满分2分)

得分:1分

理由:学生定义了四个信号量:service(初值0,用于等待叫号)、full(初值10,表示空座位数)、num(初值0,表示等待人数)、mutex(初值1,用于取号机互斥)。其中mutex和full的初值正确,但service和num的含义与标准答案中的full/empty组合存在逻辑差异。num实际上对应标准答案中的full信号量(等待人数),但学生将其用于营业员同步,而service用于顾客等待,这种设计虽然功能可实现,但语义不够清晰。扣1分。

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

得分:2分

理由:顾客进程正确使用了P(full)检查空座位、P(mutex)保护取号机、V(mutex)释放取号机。但P(service)的位置错误(应在获得号码后立即等待叫号,但学生将其放在V(num)之前,导致等待队列同步逻辑混乱),且V(num)应在进入等待队列后立即执行,这里顺序错误。扣1分。

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

得分:2分

理由:营业员进程通过P(num)检查等待人数,然后叫号、V(service)通知顾客、V(full)释放座位,最后服务顾客。逻辑基本正确,但缺少对座位区的互斥保护(标准答案中通过mutex保护座位区计数),且服务顺序中V(service)在叫号后立即执行,可能导致顾客未准备好。扣1分。

题目总分:1+2+2=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发