文章

139

粉丝

0

获赞

1

访问

23.9k

头像
2025年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年9月14日 17:41
阅读数 53


评分及理由

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

学生定义了多个信号量,包括full(初值3,对应可挖坑数)、mutex1(初值1,用于铁锹互斥)、mutex2(初值1,用于水桶互斥)、a-to-b(初值0,甲到乙同步)和b-to-c(初值0,乙到丙同步)。但标准答案中需要的是sk(可挖坑数)、empty(可用树坑数)、water(需浇水树苗数)和mutexT(铁锹互斥)。学生定义的full与sk作用相同(初值3正确),但缺少empty和water信号量,而用a-to-b和b-to-c替代同步关系,逻辑上可行但并非最简(题目要求尽可能少信号量)。mutex2用于水桶互斥是多余的(浇水无需互斥,水桶可共享使用)。因此扣1分:信号量定义冗余(mutex2)且未完全符合标准(缺少empty/water,用同步信号量替代)。得1分。

(2)甲进程代码得分及理由(满分2分)

学生代码中,甲执行wait(full)和wait(mutex1),然后挖坑(注释表示),再signal(mutex1)和signal(a-to-b)。逻辑正确:甲在坑数小于3(full初值3)时挖坑,使用铁锹互斥(mutex1),完成后通知乙(a-to-b)。但标准答案中甲需signal(empty)而非signal(a-to-b),但学生用a-to-b实现相同同步效果(乙等待a-to-b)。因此思路正确,不扣分。得2分。

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

学生代码中,乙等待a-to-b(甲完成挖坑)、mutex1(铁锹)和mutex2(水桶),然后操作(注释为取土填水箱,但实际应为放树苗填土),再释放mutex2、mutex1并signal(b-to-c)。存在逻辑错误:乙操作需要铁锹填土(mutex1正确),但不需要水桶(mutex2错误,水桶用于浇水而非填土);且乙完成后应通知丙浇水(b-to-c类似water),但标准中乙还需释放坑资源(signal(sk)),学生遗漏了signal(full)(即sk)。因此扣1分:多余互斥(mutex2)且未释放坑资源(signal(full))。得1分。

(4)丙进程代码得分及理由(满分1分)

学生代码中,丙等待b-to-c(乙通知)和mutex2(水桶互斥),然后取水(浇水),再释放mutex2。但浇水操作无需互斥(水桶可共享...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发