![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Управление процессами состоит в их создании и уничтожении; приостановлении и возобновлении; изменении приоритета; переключении состояний.
При управлении процессами ОС использует два основных типа информационных структур: дескриптор процесса и контекст процесса.
Дескриптор процесса (это термин, используемый в Unix, но ставший общеупотребительным. Аналогичная структура в Windows называется объект-процессом) содержит информацию о процессе, которая необходима ядру ОС в течение всего жизненного цикла процесса независимо от его состояния.
Дескриптор содержит::
· идентификатор процесса;
· информацию о состоянии процесса;
· данные о степени привилегированности процесса;
· местоположение кодового сегмента;
· данные о родственных процессах;
· данные о событиях, которые ожидает процесс и др.
Дескрипторы отдельных процессов объединены в таблицу (очередь) процессов, на основе которой ОС осуществляет планирование и синхронизацию процессов. Память для таблицы отводится динамически в области ядра ОС.
Контекст процесса содержит информацию, необходимую для возобновления выполнения процесса после прерывания и поэтому сохраняемую перед прерыванием. Это:
· состояние аппаратуры компьютера:
· значение счетчика команд; содержимое регистров общего назначения;
· режим работы процессора;
· флаги;
· маски прерываний и др.;
· параметры операционной системы:
· указатели на открытые файлы;
· информация о незавершенных операциях ввода-вывода;
· коды ошибок выполняемых процессом системных вызовов и др.
Контекст, как и дескриптор, доступен только программам ядра, но хранится не в области ядра, а непосредственно примыкает к образу (совокупности кода и данных) процесса и может быть перемещен вместе с ним (из ОП на диск и наоборот).
Программный код начинает выполняться, когда для него создан процесс.
Создать процесс - это означает:
· создать информационные структуры, описывающие процесс, т.е. его дескриптор и контекст;
· включить дескриптор нового процесса в очередь готовых процессов;
· загрузить кодовый сегмент процесса в Оперативную память или область свопинга.
В многопоточных системах (с возможностью распараллеливания процессов) для каждого процесса должен создаться как минимум один поток выполнения. При этом ОС генерирует описатель (дескриптор) потока.
Момент выборки процесса на выполнение осуществляется в соответствии с принятой в ОС дисциплиной обслуживания.
Процесс может порождать процессы - потомки, в результате чего организуется иерархическая структура процессов. Отношения между потомками и родителями строятся по-разному в различных ОС.
В мультипрограммной системе процесс может находиться в одном из трех основных состояний:
· выполнение - активное состояние, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
· ожидание - пассивное состояние; процесс заблокирован, он не может выполняться по своим внутренним причинам, ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;
· готовность - также пассивное состояние; но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.
В течение своей жизни каждый процесс переходит из одного состояния в другое в соответствии с алгоритмом планирования процессов, принятым в данной операционной системе.
Типичный граф состояний потока:
Дата публикования: 2015-10-09; Прочитано: 1312 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!