文章

92

粉丝

68

获赞

0

访问

11.2k

头像
2024年(408)计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年12月11日 23:27
阅读数 118

(1)是临界区,因为两个进程不能同时访问临街资源B。

(2)semephore  empty =1 ,data=0;

P1(){
waiting(empty); 
C1;
signal(data)
}
P2(){
waiting(data);
C2;
signal(empty)
}

(3)semephore  mutex = 1;

semephore  mutex = 1;
P1(){
waiting(mutex ); 
C3;
signal(mutex);
}

P2(){
waiting(mutex ); 
C3;
signal(mutex);
}


评分及理由

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

学生回答“是临界区”,并给出了理由“两个进程不能同时访问临界资源B”。该回答正确指出了临界区的本质(互斥访问共享资源),与标准答案的核心思想一致。虽然表述较为简略,但关键点已涵盖。因此得满分2分。

(2)得分及理由(满分3分)

学生定义了两个信号量empty和data,并给出了对应的P、V操作(尽管函数名写为waiting/signal,但可识别为wait/signal)。其思路与标准答案不同,但属于生产者-消费者问题的经典变体(单缓冲),思路完全正确:empty=1确保B空时才能写,data=0确保B非空时才能读。同步关系描述正确,且信号量数量已尽可能少。因此得满分3分。

注:代码中函数名拼写错误(waiting)和信号量拼写错误(semephore)属于笔误,在操作系统概念考查中通常不因此扣分,因为核心同步逻辑正确。

(3)得分及理由(满分3分)

学生定义了一个信号量mutex=1,并在P1和P2执行C3前后正确使用了wait和signal操作来实现互斥。这与标准答案完全一致。因此得满分3分。

注:学生重复写了两次“semephore mutex = 1;”,属于冗余但不影响正确性,不扣分。

题目总分:2+3+3=8分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发