文章

54

粉丝

21

获赞

0

访问

4.2k

头像
2025 年 5 月第 1 次 408 月考试卷 - 第46题回答
操作系统
发布于2025年10月21日 20:56
阅读数 67

semaphere tong=3;//桶的剩余个数

semaphere tub=1;//互斥使用水缸

semaphere a=0;//水缸中的剩余水桶数

semaphere b=10;//水缸中剩余可入水桶数

semaphere jin=1;//互斥使用水井

codebegain{

process old{//老和尚取水

while(1){

p(tub);

p(a);

p(tong);

取桶;

缸中取水喝;

v(b);

v(tub);

v(tong);

process young{//小和尚进程

while(1){

p(jin);

p(桶);

p(b);

取桶;

入井取水;

v(jin);

p(tub);

入缸放水;

v(a);

v(tub);

v(tong);


评分及理由

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

得分:1分

理由:学生定义了5个信号量,与标准答案数量一致,但存在以下问题:
- "semaphere"拼写错误,应为"semaphore"(扣0.5分)
- 信号量tong、tub、a、b、jin的命名不够规范,但功能基本对应(不扣分)
- 信号量a和b的初始值正确(不扣分)
- 信号量tong初始值正确(不扣分)
- 信号量jin初始值正确(不扣分)

(2)老和尚进程得分及理由(满分3分)

得分:1分

理由:老和尚进程存在严重逻辑错误:
- P操作顺序错误:应先检查水缸是否有水(P(a)),再申请水桶(P(tong)),最后申请水缸互斥(P(tub))(扣1分)
- 缺少从水缸取水的具体描述(扣0.5分)
- V操作顺序基本正确(不扣分)
- 缺少喝水操作的具体描述(扣0.5分)

(3)小和尚进程得分及理由(满分3分)

得分:1分

理由:小和尚进程存在严重逻辑错误:
- P操作顺序完全错误:应先检查水缸是否有空位(P(b)),再申请水桶(P(tong)),最后申请水井互斥(P(jin))(扣1分)
- "p(桶)"应为"p(tong)",存在语法错误(扣0.5分)
- 缺少从井中取水的具体描述(扣0.5分)
- V操作顺序基...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发