文章

116

粉丝

0

获赞

5

访问

12.6k

头像
2025年(408)计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年12月16日 19:28
阅读数 12


评分及理由

(1)得分及理由(满分7分)

学生作答存在以下问题:

  1. 同步逻辑错误:题目要求“当树坑数量小于3时,甲才可以挖树坑”,学生使用了条件判断 if(tree < 3) 来实现,但这在并发环境下是不安全的,因为对共享变量 tree 的读写没有互斥保护,可能导致多个甲同时进入挖坑条件,违反“树坑数量小于3”的限制。正确做法应使用信号量 sk 来控制可挖坑的数量。
  2. 进程同步不完整:甲、乙、丙三个进程之间没有形成正确的同步链条。标准答案中通过 emptywater 信号量实现了“挖坑-放树填土-浇水”的顺序同步,而学生答案中仅通过共享变量 treetree_water 的非原子操作来判断,无法保证乙在甲挖坑之后执行、丙在乙填土之后执行,可能导致乙或丙在条件不满足时执行或永远不执行。
  3. 互斥信号量使用不当:学生为铁锹和水桶分别设置了互斥信号量,但水桶实际上只在丙使用,不需要互斥信号量;铁锹的互斥使用虽然正确,但缺少了对树坑数量的同步控制。
  4. 缺少循环结构:题目隐含三人持续工作,学生答案中甲、乙、丙的代码块没有循环,执行一次后就会结束,不符合题意。

综上,学生答案未能正确实现三人植树过程的同步互斥关系,核心逻辑存在严重错误。但考虑到学生识别结果中可能存在误写(如int int tree_water),且基本理解了需要互斥使用铁锹,给予少量分数。

得分:1分(满分7分)

题目总分:1分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发