文章

27

粉丝

12

获赞

0

访问

975

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

1. 信号量定义及含义

信号量含义初值mutex保护取号机的互斥信号量(临界资源)1empty剩余空座位数(顾客申请座位时消耗)10full等待服务的顾客数(营业员等待此信号)0

2. 修正后的进程代码

c


 
  1. // 定义信号量(假设采用 P/V 操作,P 对应 wait,V 对应 signal)
  2. semaphore mutex = 1; // 取号机互斥
  3. semaphore empty = 10; // 空座位数
  4. semaphore full = 0; // 等待服务的顾客数
  5.  
  6. cobegin
  7. process 顾客i {
  8. P(empty); // ① 申请空座位:无空座位则阻塞,有空座位则占用(empty减1)
  9. P(mutex); // ② 申请取号机:互斥访问取号机
  10. 从取号机获得一个号码;
  11. V(mutex); // ③ 释放取号机:允许其他顾客使用
  12. V(full); // ④ 通知营业员:等待服务的顾客数加1
  13. 等待叫号; // (逻辑等待,由营业员的 P(full) 同步)
  14. 获得服务;
  15. }
  16.  
  17. process 营业员 {
  18. while (TRUE) {
  19. P(full); // ① 等待顾客:无等待顾客则阻塞,有则开始处理(full减1)
  20. 叫号;
  21. 为顾客服务;
  22. V(empty); // ② 释放座位:服务完成,空座位数加1
  23. }
  24. }
  25. coend

评分及理由

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

得分:2分

理由:学生正确定义了信号量及其含义,包括mutex、empty和full,并给出了正确的初始值。这部分完全符合标准答案的要求。

(2)修正后的进程代码(满分6分)

得分:4分

理由:学生的代码基本正确,实现了互斥和同步的需求,但存在以下问题:

  • 顾客进程中缺少对座位区的互斥访问(mutex信号量的使用不完整),扣1分。
  • 营业员进程中缺少对座位区的互斥访问(mutex信号量的使用不完整),扣1分。
  • 缺少对顾客等待叫号的同步信号量(service_i),但题目中“等待叫号”部分可以理解为逻辑等待,因此不扣分。

题目总分:2+4=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发