📜  操作系统信号量介绍

📅  最后修改于: 2020-12-14 03:44:21             🧑  作者: Mango

信号量简介

为了消除浪费唤醒信号的问题,Dijkstra提出了一种方法,该方法涉及存储所有唤醒呼叫。 Dijkstra指出,生产者可以将唤醒呼叫存储在变量中,而不是直接将唤醒呼叫传递给消费者。任何需要阅读的消费者都可以阅读。

信号量是存储从生产者到消费者转移的整个唤醒呼叫的变量。它是一个变量,在内核模式下会自动进行读取,修改和更新。

信号量无法在用户模式下实现,因为当两个或多个进程尝试同时访问变量时,竞争条件总是会出现。它始终需要操作系统的支持才能实现。

根据情况的需要,信号量可以分为两类。

  • 计数信号量
  • 二进制信号量或互斥量

我们将详细讨论每个。