Подсистема управления процессом. Структура данных процесса, состояния процесса.



Процесс- выполняющийся экземпляр программы. Процессы в UNIX-совокупность программ и связанных с ней системных данных среды процесса. В LINUX функции управления процессом объявлены в файле<unistd.h>Этот файл доступен др.версиям О.С.

Есть независимые и взаимодействующие процессы.

 Независимые- конкурируют за ресурсы, но не обмениваются информацией.

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

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

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

Каждый процесс представлен в системе двумя основными структурами данных-proc и user,описанными в файлах <sys/proc.h> и <sys/user.h>

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

сurproc,которая теперь указывает на структуру proc активного процесса.

Структура user содержит дополнительные данные о процессе, которые требуются ядру только во время выполнения процесса.(т.е. когда процессор выполняет инструкции процесса в режиме ядра или задачи)В user хранятся данные об открытых файловых дескрипторах, статистика выполнения процесса, сохраненные значения регистров.User содержит стек фиксированного размера –системный стек или стек ядра.

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

Жизненный цикл процесса разбит на несколько состояний. Переход процесса из одного состояния в другое происходит в зависимости наступления событий в системе.

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

2.Процесс выполняется в режиме ядра. При этом процессором выполняются системные инструкции ядра О.С.от имени процесса.

3.Прицесс не выпол., но готов к запуску, как планировщик выберет его. Процесс находится в очереди на выполнение и обладает всеми необходимыми ему ресурсами.

4.Прицесс находится в состоянии сна, ожидая недоступного ресурса, например завершения операции ввода/вывода

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

6.Процесс создан вызовом fork() и находится в переходном состоянии: он существует, но не готов к запуску и не находится в состоянии сна.

7.Процесс выполнил системный вызов exit() и перешел в состояние зомби.

Типы процессов: системные процессы, демоны, прикладные процессы.

Системные процессы- являются частью ядра, всегда расположены в О.П.

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

-диспетчер свопинга, страничного размещения, буферного кэша, памяти ядра.

К системным проц. относятся прародители всех остальных процессов.(не являются частью ядра, запускаются из исполняемого файла.)

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

Демоны не связанны ни с одним из пользовательских сеансов. Они не могут управляться пользователями. Демоны ждут когда процесс запросит услугу. Для эффективного управления процессом он имеет атрибут PID.

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

Идентификаторы- шестнадцатиразрядные числа, назначенные последовательно по мере создания процесса.

У всякого процесса есть родительский процесс, за иск. init. К атрибутам так же относится идентификатор родительского процесса PPID,приоритет процесса (NN),реальный идентификатор пользователя процесса (RID),эффективный идентификатор пользователя процесса(EUID),терминальная линия(TTI) реальный идентификатор группы(RGID), эффективный идентификатор группы(EGDI).


16.Жизненый путь процесса. Инфраструктура процесса ОС UNIX.

                                          Исполняемый файл

Исходный текст

а)заголовок     б) data   в) text   г) libdatа   д) libtext  
Программы


Дата добавления: 2018-05-09; просмотров: 418; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!