文章

163

粉丝

0

获赞

1

访问

37.1k

头像
2017年(408)计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年12月1日 09:24
阅读数 62


评分及理由

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

学生定义了3个信号量mutex1、mutex2、mutex3,但未明确每个信号量的具体保护对象。标准答案中明确区分了对y变量的两种互斥访问(mutex_y1和mutex_y2)以及对z变量的互斥访问(mutex_z),这种精细化的设计能实现最大程度的并发。学生采用简单的三个互斥锁,虽然能保证互斥,但会降低并发度,比如thread1和thread2对y的访问会被不必要地互斥。扣2分,得1分。

(2)线程1代码得分及理由(满分1分)

线程1只使用了mutex1来保护add(x,y)操作,但未明确mutex1具体保护哪个变量。从逻辑上看,如果mutex1保护y变量,那么基本正确。考虑到学生答案的思路基本正确,虽然不如标准答案精细,但不扣分,得1分。

(3)线程2代码得分及理由(满分2分)

线程2只使用了mutex2来保护add(y,z)操作,但该操作同时涉及y和z两个共享变量。在第一次识别结果中有"if P(mutex2)"的语法错误,但第二次识别结果已修正。学生方案无法保证对y和z的同时互斥访问,存在数据竞争的风险。扣1分,得1分。

(4)线程3代码得分及理由(满分2分)

线程3只使用了mutex3来保护整个操作序列,但该线程同时修改y和z两个共享变量。学生方案无法保证与thread1、thread2的正确同步,且会不必要地降低并发度。扣1分,得1分。

题目总分:1+1+1+1=4分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发