Операционные системы. Управление ресурсами


Ядро и процессы - часть 4


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

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

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




Начало  Назад  Вперед



Книжный магазин