文章
226
粉丝
0
获赞
0
访问
25.1k

评分及理由
(1)得分及理由(满分2分)
学生定义了三个信号量:rw、mutex、lock,以及一个整型变量i。其中mutex用于保护读者计数i的互斥访问,lock用于实现写者独占访问,这些与标准答案对应。但缺少实现写者优先的关键信号量(类似read_try),且rw信号量的作用描述不清晰。考虑到信号量定义基本正确但不够完整,扣1分。
得分:1分
(2)得分及理由(满分2分)
读者进程中,学生使用了P(rw)和V(rw)包围了部分代码,但这实际上没有实现写者优先的要求。正确的写者优先需要确保当有写者等待时新读者被阻塞,而学生的实现中读者会立即释放rw,无法阻止后续读者进入。此外,读者进入时没有有效阻止写者的机制。由于核心逻辑存在错误,扣1.5分。
得分:0.5分
(3)得分及理由(满分2分)
写者进程中,学生使用了P(rw)和P(lock)来获取资源,但rw信号量的使用方式无法实现写者优先。标准答案中需要通过writecount和read_try的配合来实现优先,而学生的实现缺少这些机制。写者进程的逻辑不能有效保证写者优先,扣1.5分。
得分:0.5分
(4)得分及理由(满分1分)
学生对信号量的解释基本正确:mutex保护读者计数i,lock用于写者上锁。但对rw信号量的解释不准确("若有写进程想阻止通过P(rw)阻塞后面来的读进程"),实际上学生的实现中rw并不能有效实现这个功能。由于解释部分基本合理但存在不准确描述,扣0.5分。
得分:0.5分
题目总分:1+0.5+0.5+0.5=2.5分
登录后发布评论
暂无评论,来抢沙发