文章

78

粉丝

0

获赞

0

访问

3.7k

头像
2014年计算机学科专业基础综合试题 - 第47题回答
操作系统
发布于2025年8月2日 16:38
阅读数 34

semaphore empty = 1000 //缓冲区容量

semaphore full=0 //产品数量

semaphore mutex = 1 // 互斥访问缓冲区

process Producer i{

while(True){

生产产品;

p(empty);

p(mutex);

放入产品;

v(mutex);

v(full)

}

}

process Consumer i{

while(True){

p(mutex);

for(int i=0;i<10;i++){

p(full);

取出产品;

v(empty);

}

v(mutex);
}

}


评分及理由

(1)信号量的初值和含义(满分2分)

得分:2分

理由:信号量的定义和初值正确,empty、full、mutex的含义和初值均符合题目要求。

(2)生产者之间的互斥操作(满分1分)

得分:1分

理由:生产者进程中的互斥操作正确,使用了mutex信号量来保证互斥访问缓冲区。

(3)生产者与消费者之间的同步操作(满分2分)

得分:2分

理由:生产者与消费者之间的同步操作正确,使用了empty和full信号量来保证同步。

(4)消费者之间互斥操作(满分1分)

得分:0分

理由:消费者进程中的互斥操作不正确,mutex信号量的使用方式无法保证一个消费者进程连续取出10件产品后其他消费者才能取产品,缺少对连续取10件产品的控制信号量。

(5)控制消费者连续取产品数量(满分2分)

得分:0分

理由:消费者进程中的逻辑无法保证一个消费者进程连续取出10件产品后其他消费者才能取产品,缺少对连续取10件产品的控制信号量。

题目总分:2+1+2+0+0=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发