操作系统 临界区问题
临界区是程序中试图访问共享资源的部分。该资源可以是计算机中的任何资源,如内存位置、数据结构、CPU或任何IO设备。
临界区不可以同时由多个进程执行;操作系统在允许和禁止进程进入临界区时会遇到困难。
临界区问题用于设计一组协议,可以确保进程之间永远不会出现竞争条件。
为了同步协作进程,我们的主要任务是解决临界区问题。我们需要提供一种解决方案,以满足以下条件。
同步机制的需求
主要需求
- 互斥
我们的解决方案必须提供互斥性。通过互斥性,我们的意思是如果一个进程正在临界区内执行,则其他进程不得进入临界区。
2. 进展
进展意味着如果一个进程不需要执行临界区,则它不应该阻止其他进程进入临界区。
次要需求
- 有界等待
我们应该能够预测每个进程进入临界区的等待时间。进程不应该无休止地等待进入临界区。
- 架构中立
我们的机制必须具有架构中立性。这意味着如果我们的解决方案在一个架构上运行良好,则它也应该在其他架构上运行良好。