文章

281

粉丝

40

获赞

2

访问

23.8k

头像
2015年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年9月20日 23:55
阅读数 73

semaphore mutex_a = 1;//互斥访问A的邮箱
semaphore mutex_b = 1;//互斥访问B的邮箱
semaphore empty_a = M-x;//A邮箱中还可以放入多少封邮件
semaphore empty_b = N-y;//B邮箱中还可以放入多少封邮件
semaphore full_a = x;//A邮箱中已经有多少封邮件
semaphore full_b = y;//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 {
    while (true) {
        p(full_b);
        p(mutex_b);
        从B的信箱中取出一个邮件;
        v(mutex_b);
        v(empty_b);
        回答问题并提出一个新问题;
        p(empty_a);
        p(mutex_a);
        将新邮件放入A的信箱;
        v(mutex_a);
        v(full_a);
    }
}
CoEnd

 


评分及理由

(1)信号量定义及初值(满分2分)

学生正确定义了所有信号量(mutex_a、mutex_b、empty_a、empty_b、full_a、full_b)并设置了正确的初值(mutex_a=1, mutex_b=1, empty_a=M-x, empty_b=N-y, full_a=x, full_b=y)。与标准答案完全一致,因此得2分。

(2)A进程的同步与互斥操作(满分3.5分)

...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发