Атрибуты, инфраструктура процесса

 

Атрибуты процесса:

- PID – идентификатор процесса. Уникальный номер, по которому ядро различает тот или иной процесс. Присваивается по возрастанию и по мере освобождения процессов

- PPID – идентификатор родителя

- NiceNumber – приоритет процесса; - статический (задан) / динамический (установлен ядром)

- tty – терминал, ассоциируемый с процессом при нормально функционировании

- RID – реальный идентификатор пользователя, запустившего данный процесс. Связан с ID пользователя, запустившего данный процесс на выполнение

- EID – эффективный идентификатор пользователя, являющегося владельцем процесса. Позволяет расширять права пользователя, который запускает процесс до прав владельца процесса за счёт флага SUID, если ему это позволен (здесь RID <> EID)

- временная статистика

 

Так как процесс – образ программы, ему соответствует АП отображаемой памяти (код, стек, данные, библиотеки), структура данных ядра, необходимая для управления процессом.

Инфраструктура процесса

User Mode – инструкции прикладной программы, допустимые на непривилегированном уровне; не доступны некоторые структуры данных. Переход из пользовательского режима в режим ядра посредством системного вызова.

Kernel Mode – инструкции ядра на привилегированном уровне и делается это от имени вызвавшего процесса.

Образ процесса

В UM + libdata, в KM - самые основные структуры данных: U – area и Proc; служат для управления процессом. U – area соответствует контексту: proc соответствует дескриптору.

 

Структура данных proc:

Тип переменной Название Назначение
Char Char Unsigned Unsigned short   Unsigned short Int Short Short Signed_int Unsigned int Time_t Time_t Struct presion x Short Unsigned int p_stat p_pri p_flag p_vid p_suid p_sid p_grp p_id,p_ppid p_sig p_size p_stime p_utime p_lost p_region p_xstat p_utlb[] Статус процесса Текущий приоритет Флаги о состоянии процесса UID – идентификатор пользователя EUID – эфф идентификатор пользователя Идентификатор сеанса Идентификатор группы PID, PPID Сигнал ошибки доставки Размер адресного пространства Время выполнения в режиме ядра Время выполнения задачи Указатель локальной дескрипторной таблицы Список областей памяти процесса Код возврата Массив записей таблицы страниц для u-area

 

В каждый момент времени данные структур proc должны быть в ОЗУ, это минимальная информация, необходимая для определения места нахождения остальных структур. Остальные структуры могут находиться во вторичной памяти (swaping)

Структура proc – запись в системной таблице процессов. Запись этой для выполнения в данный момент процесса активизируется переменной curproc. Эта переменная всегда указывает на активный процесс. При переключении контекста переменную меняют.

Структура u-area

U=u-area=user_area-block

Содержит дополнительные данные о процессе; доступна только при выполнении процесса, находится в области памяти, на которую указывает переменная U, там содержится информация об открытых файлах (файловые дескрипторы), сохраняет значение регистров. Используется многими подсистемами ядра. Содержит стек фиксированного размера (стек ядра). При выполнении в режиме ядра в него заносится цепочка вызовов. Процесс не имеет возможности модифицировать эти данные, и область защищена от доступа в режиме пользователя.

 



php"; ?>