OS 基础教程

进程管理

同步

死锁

内存管理

文件管理

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/os-semaphore-introduction.html

信号量介绍


为了摆脱浪费唤醒信号的问题,Dijkstra提出了一种包含存储所有唤醒调用的方法。 迪克斯特拉(Dijkstra)表示,生产者可以将唤醒调用存储在一个变量中,而不是将唤醒调用直接发送给消费者。 任何消费者只要需要就可以读取。

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

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

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

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

在接下的教程文章中,我们将详细讨论它们。