文章
63
粉丝
0
获赞
0
访问
1.5k
p1{
p(emptyA)
p(mutex)
生产A放入缓冲区
V(mutex)
V(fullA)}
p2{
p(emptyB)
p(mutex)
生产B放入缓冲区
V(mutex)
V(fullB)}
c1{
p(fullA)
p(mutex)
从缓冲区取出A
v(mutex)
v(emptyA)}
c2{
p(fullB)
p(mutex)
从缓冲区取出B
v(mutex)
v(emptyB)}
(2)3*3+3*3=18时间单位
评分及理由
(1)得分及理由(满分5分)
学生答案中,P1和P2进程的伪代码缺少了生产产品的耗时操作(即生产产品本身需要时间,但代码中未体现生产过程的耗时),这属于逻辑错误。标准答案中明确包含了生产产品的时间消耗(如P1生产需要2个时间单位,P2需要1个时间单位),而学生代码仅直接执行P操作和放入缓冲区,忽略了实际生产时间,这会导致同步模型不完整,可能影响后续时间计算。因此扣1分。其他部分(如信号量操作顺序和互斥锁使用)正确。得4分。
(2)得分及理由(满分2分)
学生答案直接给出总耗时18个时间单位,与标准答案一致,但未提供计算过程。由于题目要求计算总耗时,且标准答案给出了详细的时间线分析,而学生仅给出结果未展示推理,但结果正确。考虑到计算题目的核心是结果准确性,且无逻辑错误,因此不扣分。得2分。
题目总分:4+2=6分
登录后发布评论
暂无评论,来抢沙发