文章
55
粉丝
12
获赞
0
访问
11.0k
1. 信号量定义及含义
信号量含义初值mutex保护取号机的互斥信号量(临界资源)1empty剩余空座位数(顾客申请座位时消耗)10full等待服务的顾客数(营业员等待此信号)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分
登录后发布评论
暂无评论,来抢沙发