文章

267

粉丝

1101

获赞

1683

访问

136w

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

计算机考研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)信号量定义(满分2分)

得分:2分

理由:学生正确定义了三个信号量:chopstick(筷子)、max(最大用餐哲学家数)、bowl(碗的数量),并且正确初始化了它们的初值。特别是bowl的计算使用了min(m, n-1),符合题目要求。

(2)信号量操作顺序(满分4分)

得分:2分

理由:学生的信号量操作顺序存在逻辑错误。正确的顺序应该是先获取碗(bowl),再获取筷子(chopstick),而学生是先获取max,再获取筷子,最后获取bowl。这种顺序可能导致死锁或资源分配不合理。此外,学生的代码中使用了“bow”而不是“bowl”,这是一个拼写错误,但考虑到可能是笔误,不扣分。

(3)释放信号量顺序(满分2分)

得分:2分

理由:学生正确释放了所有信号量,顺序也合理:先释放筷子,再释放碗,最后释放max。这与标准答案一致。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发