Как работает вытеснение в архитектуре x86?

Я изо всех сил пытаюсь понять одну вещь о упреждении. Со ссылкой на Википедию:

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.

Итак, в основном они говорят, что планировщик может прервать текущую запущенную задачу. Как это вообще возможно? ЦП в данный момент выполняет код этой задачи, а не код планировщика. Так как же планировщик может сделать что-нибудь?

Я предполагаю, что должен быть какой-то аппаратный таймер, который физически прерывает процессор по истечении некоторого времени и возвращает управление планировщику. Это верно? Есть ли какая-нибудь документация, где я могу прочитать об этом более подробно?

Любые ответы будут высоко оценены.

8
задан rubix_addict 15 August 2012 в 21:30
поделиться