文章
63
粉丝
0
获赞
0
访问
13.4k
(1)C1是对B执行写操作,同一时刻只有一个进程能对B执行写操作,所以B是临界资源,实现访问临界资源B的代码C1是临界区
(2)
Semphore S = 0; // 实现进程P1与P2的同步
P1
...
C1,
singal(S);
P2
...
wait(S);
C2;
(3)
Semaphore mutex = 1; // 实现P1与P2互斥执行C3
P1
...
wait(mutex);
C3;
singal(mutex);
...
P2
...
wait(mutex);
C3;
singal(mutex);
...
评分及理由
(1)得分及理由(满分2分)
学生回答正确指出C1是临界区,并给出了合理理由:C1是写操作,同一时刻只能有一个进程执行。解释清晰且符合标准答案思路。得2分。
(2)得分及理由(满分3分)
学生只使用了1个同步信号量S(初值0)来保证P2在P1执行C1后才能执行C2,这满足了基本的同步要求。但存在以下问题:
考虑到题目要求"定义尽可能少的信号量",且题目场景中只有P1和P2两个进程,学生的方案在功能上基本正确,但不够完善。扣1分。得2分。
(3)得分及理由(满分3分)
学生正确使用了互斥信号量mutex(初值1)来保证P1和P2互斥执行C3操作,思路完全正确。虽然存在拼写错误(singal应为signal),但这不影响逻辑正确性。得3分。
题目总分:2+2+3=7分
登录后发布评论
暂无评论,来抢沙发