Я изо всех сил пытаюсь понять одну вещь о упреждении. Со ссылкой на Википедию:
In computing, preemption (more correctly pre-emption) is the act of temporarily interrupting a task being carried out by a computer system, without requiring its cooperation, and with the intention of resuming the task at a later time. Such a change is known as a context switch. It is normally carried out by a privileged task or part of the system known as a preemptive scheduler, which has the power to preempt, or interrupt, and later resume, other tasks in the system.
Итак, в основном они говорят, что планировщик может прервать текущую запущенную задачу. Как это вообще возможно? ЦП в данный момент выполняет код этой задачи, а не код планировщика. Так как же планировщик может сделать что-нибудь?
Я предполагаю, что должен быть какой-то аппаратный таймер, который физически прерывает процессор по истечении некоторого времени и возвращает управление планировщику. Это верно? Есть ли какая-нибудь документация, где я могу прочитать об этом более подробно?
Любые ответы будут высоко оценены.