Структуры программных процессов


Процессы в ОС UNIX

Процесс в ОС создается при запуске приложения со стороны пользователя или самой ОС. Для каждого процесса ОС характерны совокупность набора команд процессора и ассоциированных ресурсов – адресное пространство, стеки, используемые файлы и устройства ввода-вывода и т.п.

Различают:

независимые процессы– используют ресурсы, но не обмениваются информацией;

взаимодействующие процессы– обмениваются информацией, либо их выполнение синхронизировано.

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

• Каждый процесс характеризуется набором атрибутов. К их числу относятся:

– PID – идентификатор процесса

– PPID – идентификатор родительского процесса

– UID, GID – идентификаторы пользователя и группы

– TT – управляющий терминал (процессы не связанные с управляющими терминалами называются демонами)

– SID – идентификатор сессии, устанавливается равным PID лидера сессии;

– NICE – приоритет процесса (относительный приоритет)

– TIME – процессорное время.

Механизм создания нового процесса :

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

 

Состояния процесса (state)

В UNIX релиз. Вытесняющая многозадачность => каждому процессу для выполнения отводится непрерывный период (квант) процессорного времени.

Реализован механизм виртуальной памяти:

За время жизни, процесс может быть вытеснен из ОП на диск в область подкачки и по требованию загружен обратно.

Каждый запущенный процесс в любой момент времени находится в одном из следующих состояний (которое называют еще статусом процесса):

Активен (R=Running) – процесс находится в очереди на выполнение, то есть либо выполняется в данный момент, либо ожидает выделения ему очередного кванта времени центрального процессора.

«Спит» (S=Sleeping) – процесс находится в состоянии прерываемого ожидания, то есть ожидает какого-то события, сигнала или освобождения нужного ресурса.

Находится в состоянии непрерываемого ожидания (D=Direct) – процесс ожидает определенного («прямого») сигнала от аппаратной части и не реагирует на другие сигналы;

Приостановлен (T) – процесс находится в режиме трассировки (обычно такое состояние возникает при отладке программ).

«Зомби» (Z=Zombie) – это процесс, выполнение которого завершилось, но относящиеся к нему структуры ядра по каким-то причинам не освобождены. Одной из причин их появления в системе может быть следующая ситуация. Обычно освобождение структур ядра, относящихся к процессу, выполняет процесс-родитель после получения от потомка сигнала о завершении. Но бывают случаи, когда родительский процесс завершается раньше дочернего. Процессы, не имеющие родителя, называются "сиротами". "Сироты" автоматически усыновляются процессом init, который и принимает сигналы об их завершении. Если процесс-родитель или init по каким-то причинам не может принять сигнал о завершении дочернего процесса, то процесс-потомок превращается в "зомби" и получает статус Z. Процессы-зомби не занимают процессорного времени (т. е. их выполнение прекращается), но соответствующие им структуры ядра не освобождаются. В некотором смысле это «мертвые» процессы. Уничтожение таких процессов — одна из обязанностей системного администратора. (появление данных процессов говорит о том, что в системе что-то не в порядке, и скорее всего не в порядке с аппаратной частью).

Особый вид процессов - демоны. Данный вид процессов работает в фоне (подобно службам в Windows), без терминала и выполняет задачи для других процессов. Данный вид процессов на серверных системах является основным.

 

Ядро поддерживает две ключевые структуры данных, относящиеся к процессам: таблицу процессовproc -(резидентная) и структуру пользователя - user -(выгружается на диск, когда процесс отсутствует в памяти).

1.Таблица процессов содержит:

1. Параметры планирования. Приоритеты процессов, процессорное время, потребленное за последний учитываемый период, количество времени, проведенное процессом в режиме ожидания.

2. Образ памяти. Указатели на сегменты программы, данных и стека или на таблицы страниц. Когда процесса нет в памяти здесь содержится информация о его месте на диске.

3. Сигналы. Маски, характеризующие сигналы (игнорирование, перехват, блокирование)

4. Разное.Текущее состояние процесса, ожидаемые события, PID процесса, идентификатор пользователя и др.

 

2.Структура пользователя включает:

Машинные регистры



Дата добавления: 2021-01-26; просмотров: 404;


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

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

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

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