МГТУГА

Категории раздела

История воздухоплавания [31]
Системное программное обеспечение [55]
Сети 3-4 курс [41]
Методы и средства защиты информации [17]
Вычислительный системы [42]
про САПР [41]
Безопасность жизнедеятельности. БЖД. [46]
Интернет-технологии ГА [49]

Статистика


Онлайн всего: 3
Гостей: 3
Пользователей: 0

Форма входа

Каталог статей

Главная » Статьи » Системное программное обеспечение

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

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

Подсистема управления процессами является сердцем ОС Unix. Вся функциональность ОС определяется выполнением тех или иных процессов. Процессы неотъемлемо связаны с двумя важнейшими ресурсами Процессором и оперативной памятью. Как правило, этих ресурсов никогда не бывает много, и в ОС происходит конкурентная борьба за право обладания процессом и памятью.

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

p_stat

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

p_pri

Приоритет процесса

p_uid

UID процесса

p_suid

EUID процесса

p_pid

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

p_size

Размер адресного пространства процесса

p_utime

Время выполнения в режиме задачи

p_stime

Время выполнения в режиме ядра

p_xstat

Код возврата, передаваемы родительскому процессу

p_utbl[]

Массив записей таблицы страниц для

u-area

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

Структура user так же называемая u-area содержит дополнительные данные о процессе, которые требуются ядру только во время выполнения процесса. Данные user размещаются в определённом месте виртуальной памяти ядра и адресуются переменной u. u-area так же содержит стек фиксированного размера, - системный стек или стек ядра. При выполнении процесса в режиме ядра операционная система использует этот стек, а не обычный стек процесса.

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

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

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

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

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

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

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

7.        Процесс выполнил системный вызов exit() и перешёл в состояние зомби (zombie, defunct). Как такового процесса не существует, но остаются записи, содержащие код возврата и временную статистику его выполнения, доступную для родительского процесса. Это состояние является конечным в жизненном цикле процесса

Категория: Системное программное обеспечение | Добавил: mgtuga (15.01.2009)
Просмотров: 1046 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:

Поиск

Дисциплины