Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Управление процессами

Управление процессами. Распределение ресурсов.

Не уменьшая общности (для простоты рассуждений), будем считать, что на компьютере установлен один процессор.

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

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

Очевидно, что процессы не могут выполняться одновременно (процессор-то один), но подсистема управления процессами старается распределить процессорное время между процессами. Если какой-то процесс приостановился, ожидая от Вас ввода данных с клавиатуры, то резонно отдать процессор другому процессу!

Процессы могут различаться некоторыми своими характеристиками. Во всех ОС принято различать системные (запущенные самой операционной системой) и прикладные (запущенные пользователем прикладные задачи) процессы.

Следует заметить, что такое понимание термина "процессы" весьма условно, так как одно приложение может сгенерировать несколько процессов, как прикладных, так и системных. Это станет ясно в дальнейшем.

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

Выполнение – активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором. Ожидание – пассивное состояние процесса, процесс заблокирован, он не может выполняться по некоторым причинам. Процесс ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса или просто своей очереди. Жизненный цикл процесса обычно начинается с состояния готовность (это состояние возникает после запуска процесса), когда процесс готов к выполнению и ждет своей очереди. В ходе жизненного цикла каждый процесс переходит из одного состояния в другое в соответствии с алгоритмом планирования процессов, реализуемым в данной операционной системе.

В состоянии «выполнение» в заданный момент времени в однопроцессорной системе может находиться только один процесс, а в состоянии «ожидание» несколько. В многопроцессорной системе одновременно могут быть активными несколько процессов (столько, сколько процессоров или на один меньше, в случае, если операционная система один процессор оставляет за собой).

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

Дескриптор процесса:

идентификатор приоритет номер кодового сегмента номер байта в кодовом сегменте

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

Контекст процесса:

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

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

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

Программный код только тогда начнет выполняться, когда для него операционной системой будет создан процесс. Создать процесс - это значит:

§ создать информационные структуры, описывающие данный процесс, то есть его дескриптор;

§ включить дескриптор нового процесса в очередь готовых процессов;

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




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


Дата добавления: 2014-12-07; Просмотров: 737; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.