文章
149
粉丝
195
获赞
0
访问
19.0k
1)
semaphore mutex=1;//对缓冲区的互斥访问;
semaphore empty_high=2,empty_low=2;//高、低优先级区域空闲单元;
semaphore full_high=0,full_low=9;//高、低优先级非空闲区域单元;
2)
P1:
P(empty_high) # 等待高优先级区域有空位
P(mutex) # 申请缓冲区操作权
# 向高优先级区域(0或1号缓冲区)写入数据
V(mutex)
V(full_high)
P2:
P(empty_low) # 等待低优先级区域有空位
P(mutex)
# 向低优先级区域(2或3号缓冲区)写入数据
V(mutex)
V(full_low)
C1:
P(full_high) # 等待高优先级区域有数据
P(mutex)
# 从高优先级区域(0或1号缓冲区)读取数据
V(mutex)
V(empty_high)
C2:
P(full_low) # 等待低优先级区域有数据
P(mutex)
# 从低优先级区域(2或3号缓冲区)读取数据
V(mutex)
V(empty_low)
评分及理由
(1)得分及理由(满分3分)
得分:2分
理由:学生正确定义了互斥信号量mutex=1,以及高、低优先级区域的空缓冲区信号量empty_high=2、empty_low=2。但是,在定义满缓冲区信号量时,full_low的初始值写成了9,这显然是笔误或逻辑错误,正确值应为0。因此扣1分。
(2)得分及理由(满分4分)
得分:3分
理由:学生的伪代码结构基本正确,包含了必要的同步互...
登录后发布评论
暂无评论,来抢沙发