Как переключить задачу поддержки Intel CPU? Есть ли аппаратный таймер, который управляет?
Мне интересно, почему процессор может контролировать задачу. Кроме вызова JMP и обработчика прерываний и excetipn, существует ли аппаратный таймер, который управляет переключением процессора на другую задачу и выполняет его?
1 ответ
Это действительно зависит от платформы, на которой вы работаете.
Например, Linux 2.2 (последнее ядро, над которым я когда-либо работал) на устройствах типа ПК программирует PIT (программируемый таймер прерываний) так, чтобы прерывание доставлялось с частотой 100 Гц.
Это 100 раз в секунду или каждые 10 миллисекунд. Это называется тик.
Таким образом, каждый тик, вызывается подпрограмма обслуживания прерываний в ядре, и этот ISR отвечает за различные вещи, в том числе за упреждение выполняемой в данный момент задачи, если он использовал все свои кванты времени.