📜  同步互斥

📅  最后修改于: 2021-09-27 14:50:15             🧑  作者: Mango

在进程并发执行过程中,进程有时需要进入临界区(或跨进程共享的程序段)执行。可能会发生这样的情况,因为一次执行多个进程,存储在临界区中的值变得不一致。换句话说,这些值取决于指令的执行顺序——也称为竞争条件。进程同步的主要任务是在执行临界区时消除竞争条件。
这主要是通过互斥实现的。

互斥是进程同步的一个属性,它指出“在任何给定的时间点,临界区中都不能存在两个进程”。该术语首先由 Djikstra 创造。任何正在使用的进程同步技术都必须满足互斥的特性,否则就不可能摆脱竞争条件。

为了理解互斥,让我们举个例子。

例子:
在一家超市的服装区,两个人正在买衣服。

男孩 A 决定买一些衣服,然后前往更衣室试穿。现在,当男孩A在更衣室里时,上面有一个“占用”标志——表明没有其他人可以进来。女孩B也必须使用更衣室,所以她必须等到男孩A完成使用更衣室。

一旦男孩A从更衣室出来,上面的标志就会从“占用”变为“空置”——表明另一个人可以使用它。因此,女孩 B 继续使用更衣室,而标志再次显示“已占用”。

更衣室不过是临界区,男孩A和女孩B是两个不同的进程,而更衣室外面的标志表示正在使用进程同步机制。