文章

212

粉丝

0

获赞

0

访问

28.8k

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


评分及理由

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

得分:1分

理由:学生定义了mutex=1(取号机互斥)、empty_seat=10(空座位数)、full_seat=0(已占座位数),这些信号量的定义和初值正确。但serve_window=1的定义存在问题,这个信号量被用作服务窗口的互斥,但实际上服务窗口只有一个营业员,不需要额外的互斥信号量,应该用同步信号量来实现顾客等待叫号和服务开始的同步。缺少了顾客等待叫号的同步信号量。

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

得分:1分

理由:顾客进程基本遵循了生产者-消费者模式:P(empty_seat)检查空座位、P(mutex)保护取号机、V(full_seat)增加等待顾客数,这些操作正确。但存在两个主要问题:1)缺少座位区的互斥保护;2)"等待叫号"后直接P(serve_window)不合理,应该等待营业员叫号的同步信号量。

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

得分:1分

理由:营业员进程有while(TRUE)循环结构正确。但执行顺序存在问题:应该先P(full_seat)检查有等待顾客,再进行叫号和服务,最后V(empty_seat)释放座位。学生的代码顺序混乱,且V(serve_window)的位置和用途都不正确。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发