文章

78

粉丝

0

获赞

0

访问

3.5k

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

semaphore empty_a = M-x; //A信箱剩余空位

semaphore empty_b = N-y; //B信箱剩余空位

semaphore full_a = x; //A信箱内邮件数

semaphore full_b = y;//B信箱内邮件书

semaphore mutex_a = 1; //互斥访问A信箱

semaphore mutex_b=1;//互斥访问B信箱

CoBegin

A{

while(true){

p(full_a);

p(mutex_a);

从A的信箱中取出一个邮件;

v(mutex_a);

v(empty_a);

回答问题并提出一个新问题;

p(empty_b);

p(mutex_b);

将新邮件放入B的信箱;

v(mutex_b);

v(full_b);

}

B{

p(full_b);

p(mutex_b);

从B的信箱中取出一个邮件;

v(mutex_b);

v(empty_b);

回答问题并提出一个新问题;

p(full_a);

p(mutex_a);

将新邮件放入A的信箱;

v(mutex_a);

v(full_a);

}

}

CoEnd


评分及理由

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

信号量定义及初值正确,得3分。

(2)得分及理由(满分3分)

互斥信号量的P、V操作使用正确,得3分。

(3)得分及理由(满分3分)

同步信号量的P、V操作使用正确,但在B线程中,将邮件放入A信箱时使用了错误的同步信号量(应为p(empty_a)而非p(full_a)),扣1分,得2分。

题目总分:3+3+2=8分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发