文章
986
粉丝
5
获赞
20
访问
252.5k

评分及理由
(1)信号量定义及初值(满分2分)
得分:1分
理由:学生定义了三个信号量:seats(对应座位数,初值10)、mutex(对应取号机互斥,初值1)、Customs(对应等待顾客数,初值0)。这些信号量的含义和初值基本正确,但缺少对顾客个体服务的同步信号量(如service_i),扣1分。
(2)顾客进程实现(满分3分)
得分:1分
理由:顾客进程中,P(seats)和P(mutex)的顺序正确,获取号码后V(mutex)正确,V(Customs)正确。但存在以下逻辑错误:①顾客进程使用了while(1)循环,这与题意不符(顾客只进银行一次);②在"顾客叫号"后执行V(seats),这会导致座位提前释放,应该在服务完成后释放;③缺少等待叫号的同步操作。由于存在多个逻辑错误,扣2分。
(3)营业员进程实现(满分3分)
得分:1分
理由:营业员进程的while(1)循环正确,P(Customs)操作正确。但存在以下逻辑错误:①缺少对座位区的互斥操作;②缺少释放座位的操作;③叫号与服务顺序颠倒,应该先叫号再服务;④缺少对顾客个体服务的同步信号量操作。由于存在多个逻辑错误,扣2分。
题目总分:1+1+1=3分
登录后发布评论
暂无评论,来抢沙发