什么是通过禁用中断实现互斥?
当一个进程正在访问共享变量时,我们就说该进程处于临界区。如果在同一时间没有两个进程处于同一个临界区,那么这种技术称为互斥。
示例
下面显示了带有分配优先级的互斥问题。
让我们看看互斥的要求,并说明在禁用中断时哪些要求得到了满足。
当中断被禁用时,它有效地停止了其他进程的调度。当禁用中断时,CPU将无法切换进程,并且进程可以使用共享变量而不会被其他进程访问。
实现互斥最明显的方法是在进程进入临界区之前允许它禁用中断。单处理器指的是只要不发生上下文切换,操作就是原子的。
基本上有两种方法可以控制调度程序,如下所示:
**内部事件** - 线程执行某些操作以释放 CPU。
**外部事件** - 中断会导致调度程序夺回 CPU。
因此,需要防止内部和外部事件,如下所示:
防止内部事件很容易。
防止外部事件需要禁用中断。
现在让我们确定与该机制相关的问题,如下所示:
当禁用中断时,CPU将无法切换进程,并且进程可以使用共享变量而不会被其他进程访问。
系统时钟依赖于中断,因此它可能会漂移。
禁用中断在多处理器上效果不佳,因为在所有进程上禁用和启用所需的时间很长。
广告