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