【发布时间】:2014-03-16 13:32:06
【问题描述】:
我正在阅读有关 alarm() 调用如何在 linux 上工作的信息。
alarm(5) 将在至少 5 秒内向进行此调用的进程发送 SIGALRM。
由于内核设置的递减计数器达到零,警报是在那个时刻引起的。
我的疑问在这里——我们可以有 N 个进程发出警报,并且系统中有一个可用于此目的的递减计数器。因此内核必须使用一个向下计数器来跟踪它必须向其发送信号的所有进程。它是怎么做到的?
[它是否维护一个排序的链表,每个节点都表示过程?]
【问题讨论】:
标签: linux timer linux-kernel system-calls alarm