文章
74
粉丝
0
获赞
0
访问
3.8k
p1周转时间11,p2周转3,p3周转5,p4周转10,p5周转1
平均周转11+3+5+10+1/5=6,平均带权周转2.2+1+2.5+2.5+1/5=1.85
信号量 mutex =1
信号量 full=0
信号量 empty=1
p1{
p(empty)
p(mutex)
生产A放入缓冲区
v(mutex)
v(full)}
p2{
p(empty)
p(mutex)
生产B放入缓冲区
v(mutex)
v(full)}
p3{
p(full)
p(mutex)
从缓冲区取出A
v(mutex)
v(empty)}
p4{
p(full)
p(mutex)
从缓冲区取出B
v(mutex)
v(empty)}
p5{
if(empty==1)
监控
}
评分及理由
(1)得分及理由(满分2分)
学生计算了各进程的周转时间:P1=11(错误,应为13),P2=3(正确),P3=5(正确),P4=10(正确),P5=1(正确)。平均周转时间计算为6(错误,应为(13+3+5+10+1)/5=6.4)。带权周转时间:P1=2.2(错误,应为13/5=2.6),P2=1(正确),P3=2.5(正确),P4=2.5(正确),P5=1(正确)。平均带权周转时间计算为1.85(错误,应为(2.6+1+2.5+2.5+1)/5=1.92)。学生计算中存在多个错误:P1周转时间错误导致平均周转和带权周转错误,且计算表达式未加括号(如11+3+5+10+1/5实际为11+3+5+10+0.2=29.2,但学生意图为30/5=6)。扣分:每个进程周转时间错误扣0.5(P1错误),平均计算错误扣0.5,带权计算错误扣0.5(P1错误影响),表达式书写错误扣0.5。但本题满分仅2分,最多扣2分。得分:0分。
(2)得分及理由(满分5分)
学生定义了信号量mutex=1(正确)、empty=1(正确)、full=0(错误,应为full_A和full_B两个信号量,因为需要区分数据类型)。伪代码中:P1和P2使用empty和mutex(正确),但使用v(full)(错误,...
登录后发布评论
暂无评论,来抢沙发