Память. Верхний уровень

Многозадачность и операционная система

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

Рассмотрим методы планирования и диспетчерирования. Различают несколько видов планирования (см. таблица ниже).

Виды планирования

Задача (поток) в процессе жизни в ОС может находиться в одном из состояний:

  • Ready (готова) - готова к выполнению;
  • Standby (простаивает) - выбрана следующей для выполнения на конкретном процессоре, диспетчер переключит контекст на эту задачу;
  • Running (выполняется) - задача выполняется до момента:
    -Завершения;
    -Вытеснения задачей с более высоким приоритетом;
    -Самостоятельного перехода в состояние ожидания;
    -Окончания выделенного кванта времени.
  • Waiting (ожидает) - задача переходит в это состояние самостоятельно на синхронизирующем объекте или по команде ОС, по окончании ожидания задача переходит в состояние Running или Ready;
  • Transition (переходное состояние) - стек задачи выгружен из памяти, при загрузке переходи в состояние Ready;
  • Terminated (завершена) - заканчивается выполнение, может удаляться из памяти;
  • Initialized (инициализирована) - загужена из ROM или винчестера.

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

Initialized - Ready - Standby - Running - Terminated. Более полно схема прохождения задачи по состояниям показана на рисунке (Win 2000 - см. рисунок ниже).

Схема продвижения задачи по состояниям
Яндекс.Метрика