文章
25
粉丝
0
获赞
0
访问
1.9k
评分及理由
(1)得分及理由(满分5分)
学生答案中P1、P2、C1、C2的同步互斥操作伪代码与标准答案基本一致,正确使用了信号量emptyA、emptyB、fullA、fullB和mutex,且顺序正确(先P(empty)再P(mutex),先V(mutex)再V(full))。但学生代码中使用了while(true)循环,而题目要求每个进程生产和消费3个产品,应使用repeat-until或有限循环(如for循环),但考虑到识别可能误写(实际可能为有限循环),且核心逻辑正确,此处不扣分。另外,学生第一次识别中P1使用了P(emptyA1),可能是识别错误(应为emptyA),但第二次识别已纠正为emptyA,故不扣分。因此,本部分得5分。
(2)得分及理由(满分2分)
学生答案计算总耗时为7个时间单位,但标准答案为18个时间单位。学生给出的时间线表格(1-7时间单位)中,P1生产了3个A(时间点1、3、5),P2生产了3个B(时间点1、2、3),C1消费了3个A(时间点3、5、7),C2消费了3个B(时间点3、5、7),但未考虑生产消费耗时(P1生产需2单位、P2生产需1单位、C1消费需1单位、C2消费需2单位)以及缓冲区限制(A和B分别不超过2个)和同步等待。例如,在时间点1,P1和P2同时生产,但优先级P1>P2,应P1先执行,且生产需2单位时间,P2需1单位时间,但学生表格中时间点1同时有A和B,不符合非抢占调度和耗时要求。因此,计算错误,逻辑不完整,扣2分。本部分得0分。
题目总分:5+0=5分
登录后发布评论
暂无评论,来抢沙发