Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Планировщик поддерживает очередь исполняемых потоков для каждого уровня приоритета. Они известны как готовые потоки. Когда процессор становится доступным, система выполняет переключение контекста. Ниже приведены действия в переключении контекста.
- Сохраните контекст потока, который только что завершил выполнение.
- Поместите поток, который только что завершил выполнение в конце очереди для его приоритета.
- Найдите очередь с высоким приоритетом, содержащую готовые потоки.
- Удалите поток в голове очереди, загрузите его контекст и выполните его.
Следующие классы потоков не готовы.
- Потоки, созданные с помощью флага CREATE_SUSPENDED
- Потоки остановлены во время выполнения с помощью функции приостановки приостановки или SwitchToThread
- Потоки, ожидающие объекта синхронизации или входных данных.
Пока потоки, которые приостановлены или заблокированы, становятся готовыми к выполнению, планировщик не выделяет для них время процессора независимо от их приоритета.
Наиболее распространенными причинами переключения контекста являются:
- Срез времени истек.
- Поток с более высоким приоритетом стал готов к выполнению.
- Выполняющийся поток должен ждать.
Когда выполняющийся поток должен ждать, он откажется от оставшейся части времени.