gpt4 book ai didi

linux - alarm(2) - 当有人在等待时更改系统时间时它会做什么?

转载 作者:太空宇宙 更新时间:2023-11-04 09:08:38 26 4
gpt4 key购买 nike

手册页说 alarm() 安排 SIGALRM 信号在 _seconds_ 秒内传送到进程。 如果有人(例如用户或 ntpd) 在警报挂起时更改系统时钟?报警剩余时间如何计算?

最佳答案

首先,最负责任的管理员和 xntpd 通常不会大块地调整时间。例如,这样做会破坏 cron。

但即使他们这样做,alarm 也会使用带有 ITIMER_REAL 的 setitimer() - 这意味着它仍然会等待这么多时钟滴答声。假设系统时钟以 100 万赫兹运行,每秒一百万次滴答。好的,所以 2 秒是 200 万个实时时钟滴答声,不管系统时间设置的是什么。 setitimer() 只是继续将其计数器递减为零。当它达到零时,会发出 SIGALARM。这方面可能会有相当大的松弛,因为其他进程可能有 cpu。 alarm() 保证在最少 n 秒后响起 - 实际耗时可能会稍长一些。

扰乱系统时间会破坏 AppWorx 或 cron 等调度软件。

关于linux - alarm(2) - 当有人在等待时更改系统时间时它会做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4269850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com