文章

173

粉丝

0

获赞

1

访问

11.9k

头像
2025年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年7月13日 18:48
阅读数 23

semaphore empty = 3;//控制甲树坑数量小于3时才能挖坑
semaphore mutex = 1;//一把铲子 甲乙互斥使用
semaphore sab = 0; //控制甲乙同步
semaphore sbc = 0; //控制已丙同步
甲(){
  while(1){
   wait(empty);//坑位数量是否小于3
   wait(mutex);//互斥使用铲子
   挖洞;
   signal(mutex);
   signal(sab);//甲乙同步
  }
}
乙(){
  while(1){
   wait(sab);//甲乙同步
   wait(mutex);//互斥使用铲子
   放入树苗,填土;
   signal(mutex);
   signal(empty);//填上一个坑了
   signal(sbc);//乙丙同步
  }

}
丙(){
  while(1){
   wait(sbc);//乙丙同步
   拿水桶浇水;
  }
}

 


评分及理由

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

得分:6分

理由:

  • 学生定义了正确的信号量:empty(控制甲挖坑数量)、mutex(互斥使用铲子)、sab(甲乙同步)、sbc(乙丙同步),与标准答案思路一致,但命名和功能略有不同。
  • 逻辑基本正确,但缺少对水桶的互斥访问(标准答案中水桶无需互斥,但题目中水桶只有一个,可能需要互斥)。
  • 信号量初值设置正确:empty=3、mutex=1、sab=0、sbc=0。
  • 扣1分:未明确处理水桶的互斥问题(虽然题目中水桶可能无需互斥,但标准答案中未涉及,此处扣分较为严格)。

题目总分:6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发