文章
27
粉丝
12
获赞
0
访问
975
1. 信号量定义及含义
信号量含义初值mutex
保护取号机的互斥信号量(临界资源)1
empty
剩余空座位数(顾客申请座位时消耗)10
full
等待服务的顾客数(营业员等待此信号)0
2. 修正后的进程代码
c
// 定义信号量(假设采用 P/V 操作,P 对应 wait,V 对应 signal)
semaphore mutex = 1; // 取号机互斥
semaphore empty = 10; // 空座位数
semaphore full = 0; // 等待服务的顾客数
cobegin
process 顾客i {
P(empty); // ① 申请空座位:无空座位则阻塞,有空座位则占用(empty减1)
P(mutex); // ② 申请取号机:互斥访问取号机
从取号机获得一个号码;
V(mutex); // ③ 释放取号机:允许其他顾客使用
V(full); // ④ 通知营业员:等待服务的顾客数加1
等待叫号; // (逻辑等待,由营业员的 P(full) 同步)
获得服务;
}
process 营业员 {
while (TRUE) {
P(full); // ① 等待顾客:无等待顾客则阻塞,有则开始处理(full减1)
叫号;
为顾客服务;
V(empty); // ② 释放座位:服务完成,空座位数加1
}
}
coend
评分及理由
(1)信号量定义及含义(满分2分)
得分:2分
理由:学生正确定义了信号量及其含义,包括mutex、empty和full,并给出了正确的初始值。这部分完全符合标准答案的要求。
(2)修正后的进程代码(满分6分)
得分:4分
理由:学生的代码基本正确,实现了互斥和同步的需求,但存在以下问题:
题目总分:2+4=6分
登录后发布评论
暂无评论,来抢沙发