Материалы

Распределение приоритетов. Контекст. Переключение контекста.

Рейтинг:   / 0
ПлохоОтлично 

Распределение приоритетов

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

Приоритеты потоков Windows 2000 повышает в следующих случаях:

  • после завершения операций ввода-вывода;
  • по окончании ожидания на каком-либо событии исполнительной системы или на семафоре;
  • по окончании операции ожидания потоками активного процесса;
  • при пробуждении GUI-потоков из-за операций с окнами;
  • если поток, готовый к выполнению, задерживается из-за нехватки процессорного времени.

Динамическое повышение приоритета предназначено для оптимизации общей пропускной способности и отзывчивости системы, а также для устранения потенциально нечестных сценариев планирования.

Распределение приоритетов задач

 

Контекст. Переключение контекста

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

В типичном случае полный контекст включает следующие данные:

  • счетчик команд,
  • регистр состояния процессора (регистр флагов),
  • содержимое остальных регистров процессора,
  • указатели на стеки ядра ОС и пользователя,
  • указатели на адресное пространство задачи (см. каталог таблиц страниц CR3 для х86),
  • промежуточные результаты работы программы.

Переключение контекста позволяет из памяти загрузить в процессор на выполнение новую задачу, а информацию о старой сохранить. Объем контекста 32-разрядного процессора составляет 64 байта и более. Объем контекста RISC процессора значительно больше, так в процессоре Itanium число 64-разрядных регистров около 500. Ряд задач не требуют сохранения полного контекста, достаточно сохранить/ восстановить счетчик команд и регистр состояния процессора. Такими задачами могут быть задачи обслуживания прерываний клавиатуры, таймера и др. В этом случае размер контекста 8 байт (два слова).

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

Планирование потоков в системах с симметричной мультипроцессорной обработкой

В многопроцессорной системе диспетчер при планировании рассматривает дополнительные условия, связанные с выбором процессора для выполнения текущей задачи, при этом учитывается:

  • поток уже выполнялся в прошлый раз на данном процессоре;
  • данный процессор должен быть идеальным для этого потока.

Если в момент прихода задачи (переход в состояние Ready) все процессоры заняты, проверяетcя, нельзя ли вытеснить задачу на одном из процессоров. Какой процессор рассматривается в первую очередь? Сначала идеальный, затем - остальные.

Яндекс.Метрика