两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥· 也就是说,一个进程正在访问
临界资源,另一个要访问该资源的进程必须等待。
1.空闲让进 当
临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,从 而有效的利用资源。
2.忙则等待 已经有进程进入临界区时,意味着相应的临界资源正在被访问,所以其他准备进 入临界区的进程必须等待,来保证
多进程互斥。
早期解决进程互斥问题有软件的方法和硬件的方法,如:严格轮换法,Peterson的解决方案,
TSL指令,
Swap指令都可以实现进程的互斥,不过它们都有一定的缺陷,这里就不一一详细说明,而后来
Dijkstra提出的
信号量机制则更好的解决了互斥问题。