terminology - 什么是硬件信号量?

标签 terminology ipc semaphore interprocess

如果它是硬件信号量,如何从软件中使用它?是否有在硬件中实际实现的软件 API?

我在实现固件以连接到某些硬件时询问。硬件和固件之间将进行大量信息交换。我经常谈论硬件信号量,只是想了解有关它的更多信息。一些关于这方面的文献会有所帮助

最佳答案

你大多是正确的。有一个软件 API 需要一些特殊的硬件才能正常工作。软件中信号量的实现(其中有一些)都基于某种保证是原子的硬件指令。

实现信号量需要硬件中的原子性。通常硬件指令不是原子的。

为了稍微详细说明,您需要通过读取和写入对多个处理器可见的共享内存来实现信号量。读取和写入共享内存通常不是原子操作:例如,如果您先读取然后写入,则可能会在读取和写入之间安排其他指令。

关于terminology - 什么是硬件信号量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5300319/

相关文章:

dictionary - "map"在计算机科学中的起源

c++ - 在 C 中 fork child 并在他们死亡时重新 fork

ipc - ZeroMQ,开发人员是否完全放弃了 .Net 绑定(bind)支持?

c - msgid 创建错误

找不到错误C

architecture - 什么是领域逻辑?

swift - 可选绑定(bind)的参与者的姓名是什么?

utf-8 - UTF8 和 UTF-8 之间的正确术语

java - 如何防止我的程序陷入死锁但仍保持互斥? (信号量)

.NET 创建信号量失败并在 Win 2008 上出现 IoException