2016-01-15 2 views
0

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

Большое вам спасибо!

ответ

1

Операционная система имеет компонент, называемый Планировщик, который выполняет функцию переключения между приложением и другими системными потоками (задачами). Планировщик почти всегда является частью образа ядра ОС, который обычно выполняется на выделенном аппаратном потоке процессора, как только ОС загрузится в память загрузчиком.

После того, как Планировщик запускает задание для выполнения, он ожидает сигнала от своего оборудования контроллера прерываний, чтобы сообщить ему, когда необходимо выполнить (остановить) текущую задачу и освободить другую задачу для выполнения. Детали того, как это происходит, зависят от алгоритма планирования (например, Round-Robin, Time-Slicing, Earliest-Deadline-First и т. Д.), Которые разработчик ОС решил реализовать. Например, ОС с ядром, использующим время, будет использовать прерывания от аппаратного таймера в качестве вызова для своего Планировщика.

2

Ядро операционной системы обычно не является процессом, а скорее кодом, который выполняет режим ядра во время выполнения процесса.

Одна последовательность переключения процессов может быть:

  1. прерывание таймера выключается во время работы процесса P.
  2. Таймер обработчик прерывания запускается на выполнение в режиме ядра с помощью P.
  3. обработчик прерываний вызывает метод планировщик, который определяет процесс Q, должен выполняться.
  4. Планировщик выполняет инструкцию по сохранению процесса изменения, сохраняя состояние P.
  5. Планировщик выполняет команду контекста процесса загрузки, загружая состояние Q. Как только эта команда завершает выполнение Q, выполняется процесс.
  6. Обработчик прерываний завершает работу, возвращая управление Q, где он был последним.