文章

35

粉丝

0

获赞

1

访问

4.5k

头像
【2019年】408计算机统考真题模拟考试 - 第43题答案笔记
操作系统
发布于2025年5月15日 09:31
阅读数 98

计算机考研408统考历年真题及答案解析

Semaphore chopstick={1,1,....1}//n个筷子

Semaphore max=n-1//最多允许n-1个哲学家用餐

Semaphore bowl=min(m,n-1)//碗比人少时,保证每个用餐的哲学家都有碗可用

p(max);

p(chop[i]);//取左筷子

p((chop[i]+1)%n);//取右筷子

p(bow);

用餐;

v(chop[i]);

v((chop[i]+1)%n);

v(bowl);

v(max);

思考;
 


评分及理由

(1)得分及理由

得分:6分

理由:学生采用了与方法一相似的思路,通过限制最大可进餐名额数量(max=n-1)和碗的数量(bowl=min(m,n-1))来防止死锁。代码逻辑基本正确,但存在以下问题:

  • 信号量bowl的获取顺序错误,应该在获取筷子之前获取碗,否则可能导致哲学家拿到筷子但拿不到碗的情况。
  • 代码中bowl的拼写错误(bow),但这是笔误,不影响整体逻辑。

(2)得分及理由

得分:0分

理由:学生没有提供与方法二或方法三相关的解决方案,因此这部分不得分。

(3)得分及理由

得分:0分

理由:学生没有提供与方法三相关的解决方案,因此这部分不得分。

题目总分:6+0+0=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发