booksdaily.club
booksdaily.club » Компьютеры и Интернет » ОС и Сети » Операционная система UNIX - Робачевский Андрей Михайлович

Операционная система UNIX - Робачевский Андрей Михайлович

На этом ресурсе Вы можете бесплатно читать книгу онлайн Операционная система UNIX - Робачевский Андрей Михайлович. Жанр: ОС и Сети . На сайте booksdaily.club Вы можете онлайн читать полную версию книги без регистрации и sms. Так же Вы можете ознакомится с содержанием, описанием, предисловием о произведении
Перейти на страницу:

Соответственно и образ процесса состоит из двух частей: данных режима ядра и режима задачи. Образ процесса в режиме задачи состоит из сегмента кода, данных, стека, библиотек и других структур данных, к которым он может получить непосредственный доступ. Образ процесса в режиме ядра состоит из структур данных, недоступных процессу в режиме задачи, которые используются ядром для управления процессом. Сюда относятся данные, диктуемые аппаратным уровнем, например состояния регистров, таблицы для отображения памяти и т.д., а также структуры данных, необходимые ядру для обслуживания процесса. Вообще говоря, в режиме ядра процесс имеет доступ к любой области памяти.

Структуры данных процесса

Каждый процесс представлен в системе двумя основными структурами данных — proc и user, описанными, соответственно, в файлах <sys/proc.h> и <sys/user.h>. Содержимое и формат этих структур различны для разных версий UNIX. В табл. 3.1 приведены некоторые поля структуры

proc
в SCO UNIX, позволяющие проиллюстрировать информацию, необходимую ядру, для управления процессом.

Таблица 3.1. Структура proc

char
p_stat
Состояние процесса (выполнение, приостановлен, сон и т.д.)
char
p_pri
Текущий приоритет процесса
unsigned int
p_flag
Флаги, определяющие дополнительную информацию о состоянии процесса
unsigned short
p_uid
UID процесса
unsigned short
p_suid
EUID процесса
int
p_sid
Идентификатор сеанса
short
p_pgrp
Идентификатор группы процессов (равен идентификатору лидера группы)
short
p_pid
Идентификатор процесса (PID)
short
p_ppid
Идентификатор родительского процесса (PPID)
sigset_t
p_sig
Сигналы, ожидающие доставки
unsigned int
p_size
Размер адресного пространства процесса в страницах
time_t
p_utime
Время выполнения в режиме задачи
time_t
p_stime
Время выполнения в режиме ядра
caddr_t
p_ldt
Указатель на LDT процесса
struct pregion
*p_region
Список областей памяти процесса
short
p_xstat
Код возврата, передаваемый родительскому процессу
unsigned int
p_utbl[]
Массив записей таблицы страниц для u-area

В любой момент времени данные структур

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

Структура

proc
является записью системной таблицы процессов, которая, как мы только что заметили, всегда находится в оперативной памяти. Запись этой таблицы для выполняющегося в настоящий момент времени процесса адресуется системной переменной
curproc
. Каждый раз при переключении контекста, когда ресурсы процессора передаются другому процессу, соответственно изменяется значение переменной
curproc
, которая теперь указывает на структуру
proc
активного процесса.

Вторая упомянутая структура —

user
, также называемая u-area или u-block, содержит дополнительные данные о процессе, которые требуются ядру только во время выполнения процесса (т.е. когда процессор выполняет инструкции процесса в режиме ядра или задачи). В отличие от структуры
proc
, адресованной указателем
curproc
, данные
user
размещаются (точнее, отображаются) в определенном месте виртуальной памяти ядра и адресуются переменной
u
. На рис. 3.2 показаны две основные структуры данных процесса и способы их адресации ядром UNIX.

Операционная система UNIX - img_27.jpeg

Рис. 3.2. Основные структуры данных процесса

В u-area хранятся данные, которые используются многими подсистемами ядра и не только для управления процессом. В частности, там содержится информация об открытых файловых дескрипторах, диспозиция сигналов, статистика выполнения процесса, а также сохраненные значения регистров, когда выполнение процесса приостановлено. Очевидно, что процесс не должен иметь возможности модифицировать эти данные произвольным образом, поэтому u-area защищена от доступа в режиме задачи.

Перейти на страницу:

Робачевский Андрей Михайлович читать все книги автора по порядку

Робачевский Андрей Михайлович - на сайте онлайн книг booksdaily.club Вы можете читать полные версии книг автора в одном месте.


Операционная система UNIX отзывы

Отзывы читателей о книге Операционная система UNIX, автор: Робачевский Андрей Михайлович. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор booksdaily.club


Прокомментировать
Подтвердите что вы не робот:*