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