文章

63

粉丝

0

获赞

0

访问

13.4k

头像
2024年计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年10月4日 10:56
阅读数 202

(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,这满足了基本的同步要求。但存在以下问题:

  • 缺少互斥保护:当多个进程可能同时访问缓冲区B时,没有使用互斥信号量来保护缓冲区操作
  • 信号量命名不规范:应该使用更有意义的名称如full
  • 拼写错误:singal应为signal

考虑到题目要求"定义尽可能少的信号量",且题目场景中只有P1和P2两个进程,学生的方案在功能上基本正确,但不够完善。扣1分。得2分。

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

学生正确使用了互斥信号量mutex(初值1)来保证P1和P2互斥执行C3操作,思路完全正确。虽然存在拼写错误(singal应为signal),但这不影响逻辑正确性。得3分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发