OS (操作系统) 中的关键代码段问题

17 Mar 2025 | 阅读 2 分钟

关键代码段是程序中尝试访问共享资源的部分。该资源可以是计算机中的任何资源,例如内存位置、数据结构、CPU 或任何 I/O 设备。

同一时间不允许多个进程执行关键代码段;操作系统在允许和禁止进程进入关键代码段时会遇到困难。

关键代码段问题用于设计一组协议,以确保进程之间不会出现竞争条件。

为了同步协作进程,我们的主要任务是解决关键代码段问题。我们需要提供一种解决方案,以便可以满足以下条件。

同步机制的要求


主要

  1. 互斥
  2. 我们的解决方案必须提供互斥。通过互斥,我们意味着如果一个进程正在关键代码段内执行,那么另一个进程不得进入关键代码段。


    os Critical Section

    os Critical Section 1
  3. 进度
  4. 进度意味着如果一个进程不需要在关键代码段内执行,那么它不应该阻止其他进程进入关键代码段。

次要的

  1. 有界等待 (Bounded Waiting)
  2. 我们应该能够预测每个进程进入关键代码段的等待时间。进程在进入关键代码段时不得无休止地等待。

  3. 架构中立性
  4. 我们的机制必须是架构上自然的。这意味着如果我们的解决方案在一个架构上运行良好,那么它也应该在其他架构上运行。


下一主题锁变量机制