ОС будет загружаться (после того, как BIOS и загрузчик будут завершены) в специальной роли - первая запущенная программа будет иметь прямой доступ ко всем командам ЦП.
Таким образом, он будет настраивать различные части системы - например, настраивать Обработчики прерываний (или Программы обработки прерываний). Сделав это, он может создать «планировщик».
Фактическая обработка "процесс / поток" будет выполняться этим планировщиком. Он решает, какие потоки будут запущены. Также он управляет всеми активными потоками. Процессор не знает обо всех этих вещах.
Как только главный руководитель планировщика решает выполнить Thread (или «Process») A, он копирует данные процессов в регистры (и сохраняет эти регистры в InfoBlock недавно запущенного потока). Он укажет ЦПУ / таймеру на прерывание за n микросекунд (или другое время). Затем он сообщит процессору «запустить программу» (единственное, что знает процессор) в режиме, не связанном с ОС (чтобы он не мог изменять критические данные или регистрировать собственные обработчики прерываний без разрешения).
Пока выполняется поток A, аппаратный таймер запустится. Как только он достигает желаемого временного смещения, он вызывает прерывание. Аппаратное обеспечение затем остановит выполнение текущей программы и вместо этого вызовет зарегистрированную Interrupt Handler
. Этот обработчик будет методом планировщика (если быть точным, главным исполнительным директором).
Этот метод затем повторно оценит, какой поток должен быть запланирован, и планирование продолжится.