Контекст системного уровня


Запись таблицы процессов Определяет состояние процесса; эта информация всегда доступна операционной системе

Пользовательская область Информация по управлению процессом, необходимая только в кон­тексте данного процесса

Таблица областей процесса Задает отображение виртуальных адресов в физические; содержит также поле полномочий, в котором указывается тип доступа, на который процесс имеет право: только для чтения, для чтения и за­писи или для записи и выполнения

Стек ядра Содержит кадр стека процедур ядра при работе процесса в ре­жиме ядра

 

В контекст пользовательского уровня (user-level context) входят основные эле­менты пользовательских программ; он может генерироваться непосредственно из скомпилированных объектных файлов. Каждая пользовательская программа разде­лена на две части, одна из которых размещается в текстовой области, а другая — в области данных. Текстовая область предназначена только для чтения; в ней хранят­ся команды пользовательских программ. Во время выполнения процессор использует пользовательский стек для вызовов и возвратов из процедур, а также для передачи параметров. Совместно используемая область памяти — это область данных, доступ к которой одновременно предоставляется различным процессам. Хотя в системе име­ется только одна физическая копия совместно используемой области памяти, при использовании виртуальной памяти эта область находится в адресном пространстве каждого процесса, который ее использует.

Когда процесс не выполняется, соответствующая информация по состоянию процессора хранится в области контекста регистров (register context).

В контексте системного уровня (system-level context) находится остальная информация, которая нужна операционной системе для управления процессом. Эта информация состоит из статической части фиксированного размера, который остается неизменным на протяжении всего времени жизни процесса, и динами­ческой части, размер которой меняется. Одним из компонентов статической час­ти является запись таблицы процессов, которая фактически является частью таблицы процессов, поддерживаемой операционной системой, в которой каждо­му процессу соответствует одна запись. Запись таблицы процессов содержит информацию по управлению процессом, доступную ядру в любой момент времени. Таким образом, в системе виртуальной памяти все записи таблицы процессов по­стоянно остаются в основной памяти. В табл. 3.11 перечислены компоненты за­писи таблицы процессов. Пользовательская область содержит дополнительную управляющую информацию, которая нужна ядру при работе в контексте этого процесса; эта информация используется также при загрузке и выгрузке страниц процесса из основной памяти. В табл. 3.12 приведено содержимое этой таблицы

 

Таблица 3.11. Элемент таблицы процессов в системе UNIX

 

Состояние процесса Текущее состояние процесса
Указатели Пользовательская область и область памяти процесса (текст, дан­ные, стек)  
Размер процесса Дает возможность операционной системе определить, сколько па­мяти потребуется процессу  
Идентификаторы пользователя Реальный идентификатор пользователя (real user ID) указывает, кто из пользователей несет ответственность за выполняющийся процесс. Фактический идентификатор пользователя (effective user ID) может использоваться процессом для предоставления времен­ных привилегий, связанных с определенной программой; на вре­мя выполнения этой программы в составе процесса последний ис­пользует фактический идентификатор пользователя  
Идентификаторы процесса Идентификатор данного и родительского процессов. Эти иденти­фикаторы присваиваются процессу в состоянии создания
Дескриптор событий Используется, когда процесс находится в спящем состоянии; с наступлением события процесс переходит в состояние готовности
Приоритет Используется при планировании процессов  
Сигнал Перечисляет отправленные, но еще не обработанные сигналы
Таймеры Включают время выполнения процесса, использование ресурсов ядром, а также пользовательские таймеры для отправки сигналов в определенное время
Р-связь Указатель на следующий элемент в очереди готовых к выполнению процессов (используется, когда процесс находится в состоя­нии готовности)
Статус памяти Указывает, находится ли образ процесса в основной памяти или выгружен из нее. Если процесс загружен в память, в этом поле также указывается, можно ли его выгрузить или он временно блокирован в основной памяти

 

 

Таблица 3.12. Пользовательская область UNIX

Указатель таблицы процессов   Указывает запись, соответствующую области пользователя
Идентификаторы пользователя Реальный и фактический идентификаторы пользователя. Используются для определения пользовательских привилегий
Таймеры   Записывают время, затраченное на выполнение данного и дочерних процессов в пользовательском режиме и в режиме ядра  
Массив обработчи­ков сигналов   Указывает, как будет реагировать процесс на каждый из пяти типов сигналов, заданных в системе (выходить из системы, игнорировать сигнал, выполнять заданную пользователем функцию)
Управляющий терминал Указывает, с какого терминала был запущен процесс (если этот терминал существует)
Поле ошибок   Содержит записи об ошибках, произошедших во время системного вызова
Возвращаемое значение   Содержит результат выполнения системных вызовов
Параметры ввода-вывода Задает объем передаваемых данных, адрес массива данных в пользовательском пространстве, а также смещения в файлах при вводе-выводе  
Файловые параметры Текущий и корневой каталоги описывают файловую систему процесса
Таблица дескрипто­ров файлов пользо­вателя   Содержит записи об открытых файлах
Граничные поля Ограничивают размер процесса и размер файла, который он может записать  
Поля режимов доступа   Установки режима доступа к создаваемым процессом файлам

 

Различия между записью таблицы процессов и пользовательской областью отражают тот факт, что ядро системы UNIX всегда выполняется в контексте ка­кого-нибудь процесса. Большую часть времени ядро работает с контекстом те­кущего процесса, однако иногда ядру нужен доступ к информации и о других процессах, например при работе планировщика.

Третьей статической частью, входящей в контекст системного уровня, явля­ется таблица областей процесса, которая используется системой управления па­мятью. И, наконец, стек ядра — это динамическая часть контекста системного уровня. Этот стек используется при выполнении процесса в режиме ядра и со­держит информацию, которую нужно сохранять и восстанавливать во время вы­зовов процедур и прерываний.



Дата добавления: 2016-06-05; просмотров: 2134;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.