Архитектура операционной системы UNIX :: Бах Морис Дж.
Страница:
269 из 715
Причины, вызвавшие переключение контекста, при этом не имеют значения. На механизм переключения контекста не влияет и метод выбора следующего процесса для исполнения.
1. Принять решение относительно необходимости переклю- чения контекста и его допустимости в данный момент.
2. Сохранить контекст «прежнего» процесса.
3. Выбрать процесс, наиболее подходящий для исполнения, используя алгоритм диспетчеризации процессов, приведенный в главе 8.
4. Восстановить его контекст.
Рисунок 6.15. Последовательность шагов, выполняемых при переключении контекста
Текст программы, реализующей переключение контекста в системе UNIX, из всех программ операционной системы самый трудный для понимания, ибо при рассмотрении обращений к функциям создается впечатление, что они в одних случаях не возвращают управление, а в других — возникают непонятно откуда. Причиной этого является то, что ядро во многих системных реализациях сохраняет контекст процесса в одном месте программы, но продолжает работу, выполняя переключение контекста и алгоритмы диспетчеризации в контексте «прежнего» процесса. Когда позднее ядро восстанавливает контекст процесса, оно возобновляет его выполнение в соответствии с ранее сохраненным контекстом.
|< Пред. 267 268 269 270 271 След. >|