什么是通过禁用中断实现互斥?


当一个进程正在访问共享变量时,我们就说该进程处于临界区。如果在同一时间没有两个进程处于同一个临界区,那么这种技术称为互斥。

示例

下面显示了带有分配优先级的互斥问题。

让我们看看互斥的要求,并说明在禁用中断时哪些要求得到了满足。

当中断被禁用时,它有效地停止了其他进程的调度。当禁用中断时,CPU将无法切换进程,并且进程可以使用共享变量而不会被其他进程访问。

实现互斥最明显的方法是在进程进入临界区之前允许它禁用中断。单处理器指的是只要不发生上下文切换,操作就是原子的。

基本上有两种方法可以控制调度程序,如下所示:

  • **内部事件** - 线程执行某些操作以释放 CPU。

  • **外部事件** - 中断会导致调度程序夺回 CPU。

因此,需要防止内部和外部事件,如下所示:

  • 防止内部事件很容易。

  • 防止外部事件需要禁用中断。

现在让我们确定与该机制相关的问题,如下所示:

  • 当禁用中断时,CPU将无法切换进程,并且进程可以使用共享变量而不会被其他进程访问。

  • 系统时钟依赖于中断,因此它可能会漂移。

  • 禁用中断在多处理器上效果不佳,因为在所有进程上禁用和启用所需的时间很长。

更新于: 2021年12月1日

4K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告