利用信号量实现进程的 ①________ ,应为临界区设置一个信号量 mutex。其初值为②________ ,表示该资源尚未使用,临界区应置于 ③ ______和 ④______ 原语之间。
【正确答案】:①互斥,②1,③P(mutex),④V(mutex)
【解析】一次仅允许一个进程使用的资源称为临界资源,对临界资源实施操作的那段程序称为临界区。对于具有临界区问题的并发进程,它们之间必须互斥,以保证不同时进入临界区。利用信号量和 P-V 原语能方便地解决临界区问题。mutex 为互斥公用信号量,初值为 1, 临界区的代码被置于 P(mutex)、V(mutex)原语之间时,任何欲进入临界区的进程,必须在公用信号量 mutex 上执行 P 原语,在完成对临界资源的访问后再执行 V 原语。由于 mutex 初值为 1,当第一个进程执行 P 原语后减为 0,表示临界资源空闲,可分配给该进程使之进入临界区,在第一个进程没有退出临界区之前,若此时第二个进程想进入临界区,也应先执行 P 原语。而结果是 mutex 变为负值,就意味着临界资源已被占用,因此,第二个进程被阻塞。直到第一个进程执行 V 原语,释放该临界资源 mutex 到 0 后,方可唤醒第二个进程, 使之进入临界区,待它完成对临界资源的访问后,又执行 V 原语,使 mutex 恢复到初始值。
利用信号量实现进程的 ①________ ,应为临界区设置一个信号量 mutex。其初值为②________ ,表示该资源尚未使
📱 扫码体验刷题小程序
扫一扫使用我们的微信小程序