文章

78

粉丝

0

获赞

0

访问

3.6k

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

semaphore empty = 0; //顾客等待数

semaphore full = 10; //座位剩余数

semaphore mutex = 1; //互斥使用取号器

semaphore service = 1; //营业员是否在服务

cobegin

process 顾客 i{

P(full) //判断是否还有座位

p(mutex) //互斥访问取号器

从取号机获得一个号码;

v(mutex);

等待叫号;

获得服务;

v(full);

}

process 营业员{

while(True){

p(empty);//判断是否有顾客等待

p(service);

叫号;

为顾客服务;

v(service);

v(empty);

}

}


评分及理由

(1)得分及理由(满分8分)

得分:4分

理由:

  • 信号量定义部分:empty和full的初始值定义错误(应为empty=10, full=0),扣1分。
  • 缺少对座位区的互斥访问控制(mutex应同时保护座位区),扣1分。
  • 缺少顾客与营业员之间的同步机制(缺少service_i信号量或类似机制),扣1分。
  • 营业员进程中的empty信号量使用错误(应为full),扣1分。
  • service信号量的使用逻辑错误(不应作为互斥信号量),扣1分。

题目总分:4分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发