Структуры программных процессов
Процессы в ОС 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; просмотров: 398;