Я не уверен, как сформулировать этот вопрос, но я буду стараться изо всех сил. Когда мы планируем какое-то абстрактное задание в режиме реального времени, как оно вызывается вовремя (заданием может быть все, что запланировано на определенное время, например, будильник, который будит вас утром)? Что происходит на самом низком уровне программного обеспечения? Например, в .NET WaitHandle.WaitOne (1000), как это реализовано? Есть ли какой-то планировщик операционной системы (я не говорю о временном разрезе между потоками), который каждая программная платформа использует для планирования своей задачи? Когда системные часы идут на один такт, это как-то говорит операционной системе: «Эй, один тик истек, увеличьте системное время!». А затем операционная система увеличивает время и говорит планировщику проверить, запланированы ли какие-либо события в это новое время? Или планировщик работает в отдельном потоке в бесконечном цикле, проверяет системное время в каждой итерации и проверяет, есть ли у него запланированные действия? Или нет планировщика, и каждый компонент выполняет бесконечные циклы самостоятельно? Я предполагаю, что идея одинакова в каждой операционной системе, но если нет, меня особенно интересует, что происходит в ОС Windows и .NET.
С уважением,