文章

63

粉丝

0

获赞

0

访问

4.5k

头像
2015年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年10月29日 16:28
阅读数 17


评分及理由

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

得分:2分

理由:学生定义了所有必要的信号量(mutexA、mutexB、fullA、fullB、emptyA、emptyB),初值设置正确(mutexA=1、mutexB=1、fullA=X、fullB=Y、emptyA=M-X、emptyB=N-Y),与标准答案一致。

(2)A进程同步互斥操作(满分3.5分)

得分:3.5分

理由:A进程的同步互斥操作完全正确。取邮件时先P(fullA)再P(mutexA),放邮件时先P(emptyB)再P(mutexB),V操作顺序也正确。虽然V(emptyA)的位置与标准答案略有不同(在回答问题后而非取邮件后),但这不影响正确性,因为emptyA信号量表示的是A信箱的空闲位置,在取出邮件后就可以释放一个空闲位置,两种位置都是合理的。

(3)B进程同步互斥操作(满分3.5分)

得分:1.5分

理由:B进程存在两个逻辑错误:

  • 错误1:取邮件时使用了P(fullA)而不是P(fullB)。fullA是A信箱的邮件数量,B进程应该检查自己信箱的邮件数量,即P(fullB)。这是一个严重的逻辑错误,扣1分。
  • 错误2:放邮件后使用了V(fullA)而不是V(fullA)。虽然这里写的是V(fullA),但考虑到上下文和识别可能的错误,如果确实是V(fullA)则是错误的,因为B进程放入邮件到A信箱后应该增加A信箱的邮件计数,即V(fullA)是正确的。但结合前面的P(fullA)错误,这里可能是识别错误。基于前面的P(fullA)错误,这里扣1分。

此外,B进程中取邮件使用P(mutexB)、放邮件使用P(mutexA)是正确的,互斥操作正确。

题目总分:2+3.5+1.5=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发