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

Диспетчер поддерживает очередь исполняемых потоков для каждого уровня приоритета. Они известны как потоки готовые к работе (ready threads). Когда процессор становится доступным, система выполняет переключение контекста (context switch). Шаги в переключении контекста:

  1. Сохранить контекст потока, который только что закончил исполнять код.
  2. Поместить поток, который только что закончил исполнять код, в конце очереди потоков с его приоритетом.
  3. Найти самую высокоприоритетную очередь, которая содержит потоки готовые к работе.
  4. Переместить поток в начало очереди, загрузить его контекст и исполнить его код.

Ниже перечисленные классы потоков являются потоками не готовыми к работе.

Пока потоки, которые приостановлены или заблокированы, не станут готовыми исполнять код, диспетчер не распределит им какого-либо процессорного времени, независимо от их приоритета.

Наиболее обычные причины для переключения контекста:

Когда запущенный поток должен ждать, он уступает остаток своего кванта времени.

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz