文章

119

粉丝

0

获赞

1

访问

10.0k

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


评分及理由

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

学生定义了6个信号量:mutexA、mutexB、fullA、fullB、emptyA、emptyB,含义正确。但emptyA和emptyB的初值有误:emptyA应为M-x(学生写为N-x),emptyB应为N-y(学生写为N-y,但N应为B信箱容量,而学生误写为N,但根据上下文判断,可能是识别错误,实际应为N-y,但学生写的是N-y,而N是B信箱容量,所以正确)。然而,emptyA的初值错误(应为M-x,但学生写为N-x),这是一个逻辑错误。扣1分。

得分:1分(满分2分)

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

A进程中:

  • P(fullA)和P(mutexA)顺序正确,互斥锁使用正确。
  • 取邮件后V(mutexA)和V(emptyA)正确。
  • 回答问题部分无信号量操作,正确。
  • 放入B信箱前P(emptyB)和P(mutexB)顺序正确(应先检查空间再互斥,但标准答案顺序如此,不扣分)。
  • 放入后V(mutexB)和V(fullB)正确。

但emptyB的初值错误(N-y正确,但学生定义时写的是N-y,而N是B信箱容量,所以正确),但emptyA初值错误不影响A进程操作(因为A进程中使用的是emptyB和fullB,而emptyB初值正确)。因此A进程操作本身无逻辑错误。

得分:3.5分(满分3.5分)

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

B进程中:

  • P(fullB)和P(mutexB)顺序正确。
  • 取邮件后V(mutexB)和V(emptyB)正确。
  • 回答问题部分无信号量操作,正确。
  • 放入A信箱前P(emptyA)和P(mutexA)顺序正确。
  • 放入后V(mutexA)和V(fullA)正确。

但emptyA初值错误(应为M-x,学生写为N-x),这会导致B进程在放入A信箱时P(emptyA)可能错误(因为emptyA初值不对),这是一个逻辑错误。扣1分。

得分:2.5分(满分3.5分)

题目总分:1+3.5+2.5=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发