文章
268
粉丝
0
获赞
0
访问
86.8k

评分及理由
(1)信号量定义及初值(满分约2分)
学生定义了整型变量analyse和analysed,以及一个信号量metux(应为mutex)初值为1。但题目要求使用信号量实现同步,且未分析日志数小于5时才可收集。学生用整型变量和条件判断实现限制,但未将其转化为信号量机制,且缺少用于同步的信号量(如表示未分析日志数、已分析日志数、空位数的信号量)。此外,analyse和analysed作为整型变量在多进程中使用,仅靠一个互斥信号量保护,无法实现“等待”同步(如分析者需等待未分析日志出现)。信号量定义不完整,初值设置不满足同步需求。扣1.5分,得0.5分。
(2)同步代码逻辑(满分约4分)
收集者:使用if (analyse < 5)判断,但未循环等待,且V(analyse)错误(analyse是整型变量,不能用于V操作),逻辑错误。分析者:while(analyse < 0);忙等待,不符合信号量同步要求;P(analyse)同样错误(整型变量不能P操作)。存储者:while(analysed < 0)忙等待,且P(analysed)错误。整体代码未正确使用wait/signal(P/V)实现同步,且存在对整型变量进行P/V操作的严重逻辑错误。同步顺序未保证“收集→分析→存储”的流程,也未正确处理资源限制(未分析日志<5)。扣4分,得0分。
(3)信号量作用说明(满分约1分)
学生仅说明metux用于保护公共变量analyse,未说明其他同步信号量的作用(实际上未定义)。缺少对同步关系的描述。扣1分,得0分。
题目总分:0.5+0+0=0.5分
登录后发布评论
暂无评论,来抢沙发