Мы завершили рассмотрение
контекста процесса. Процессы в
системе UNIX могут находиться в
различных логических состояниях и
переходить из состояния в
состояние в соответствии с
установленными правилами перехода,
при этом информация о состоянии
сохраняется в таблице процессов и в
адресном пространстве процесса.
Контекст процесса состоит из
пользовательского контекста и
системного контекста.
Пользовательский контекст состоит
из программ процесса, данных, стека
задачи и областей разделяемой
памяти, а системный контекст
состоит из статической части
(запись в таблице процессов,
адресное пространство процесса и
информация, необходимая для
отображения адресного
пространства) и динамической части
(стек ядра и сохраненное состояние
регистров предыдущего
контекстного уровня системы),
которые запоминаются в стеке и
выбираются из стека при выполнении
процессом обращений к системным
функциям, при обработке прерываний
и при переключениях контекста.
Пользовательский контекст
процесса распадается на отдельные
области, которые представляют
собой непрерывные участки
виртуального адресного
пространства и трактуются как
самостоятельные объекты
использования и защиты. В модели
управления памятью, которая
использовалась при описании
формата виртуального адресного
пространства процесса,
предполагалось наличие у каждой
области процесса своей таблицы
страниц. Ядро располагает целым
набором различных алгоритмов для
работы с областями. В
заключительной части главы были
рассмотрены алгоритмы приостанова
(sleep) и возобновления (wakeup)
процессов. Структуры и алгоритмы,
описанные в данной главе, будут
использоваться в последующих
главах при рассмотрении системных
функций управления процессами и
планирования их выполнения, а также
при объяснении различных методов
распределения памяти. Предыдущая
глава || Оглавление
|| Следующая глава
6.7 ВЫВОДЫ