文章

36

粉丝

0

获赞

0

访问

842

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


评分及理由

(1)信号量定义得分及理由(满分1分)

得分:0.5分

理由:学生定义了三个信号量:Full(缓冲区满个数)、Spare(空缓冲区块数)、Mutex(互斥信号量)。其中Spare对应标准答案的empty,Mutex正确,但缺少专门用于P1与P2、P1与P3之间同步的odd和even信号量。信号量定义不完整,扣0.5分。

(2)P1进程实现得分及理由(满分2分)

得分:1分

理由:P1进程实现了基本的生产者逻辑:生成数据、申请空单元、互斥访问缓冲区、释放互斥锁、通知消费者。但是缺少对数据奇偶性的判断和对应的同步信号量释放(V(odd)或V(even)),而是统一使用V(Full)通知。这会导致P2和P3无法区分奇偶数,存在逻辑错误,扣1分。

(3)P2进程实现得分及理由(满分2分)

得分:0.5分

理由:P2进程在条件判断中使用"n % 2 == 1"来检查奇数,但n的来源未定义;使用P(Full)等待缓冲区有数据,但缺少专门的奇数同步信号量;在释放互斥锁后执行计数操作是正确的。主要问题是依赖条件判断而非同步信号量来控制执行流程,存在逻辑错误,扣1.5分。

(4)P3进程实现得分及理由(满分2分)

得分:0.5分

理由:P3进程存在与P2相同的问题:依赖条件判断而非同步信号量;函数名"get-deter"、"count-deter"疑似识别错误;在释放互斥锁前缺少V(Spare)操作,这会破坏生产者-消费者同步关系。存在多处逻辑错误,扣1.5分。

题目总分:0.5+1+0.5+0.5=2.5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发