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