-->

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

На нашем литературном портале можно бесплатно читать книгу Операционная система UNIX, Робачевский Андрей Михайлович-- . Жанр: ОС и Сети. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Операционная система UNIX
Название: Операционная система UNIX
Дата добавления: 16 январь 2020
Количество просмотров: 432
Читать онлайн

Операционная система UNIX читать книгу онлайн

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

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

В книге рассматриваются: архитектура ядра UNIX (подсистемы ввода/вывода, управления памятью и процессами, а также файловая подсистема), программный интерфейс UNIX (системные вызовы и основные библиотечные функции), пользовательская среда (командный интерпретатор shell, основные команды и утилиты) и сетевая поддержка в UNIX (протоколов семейства TCP/IP, архитектура сетевой подсистемы, программные интерфейсы сокетов и TLI).

Для широкого круга пользователей.

 

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

1 ... 58 59 60 61 62 63 64 65 66 ... 156 ВПЕРЕД
Перейти на страницу:

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

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

Каждый процесс представлен в системе двумя основными структурами данных — 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 защищена от доступа в режиме задачи.

1 ... 58 59 60 61 62 63 64 65 66 ... 156 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название