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


 

В операционной системе UNIX процессы создаются с помощью вызова сис­темной функции ядра под названием fork (). При вызове этой функции процес­сом операционная система выполняет следующие действия [ВАСН86].

1. Выделяет в таблице процессов место для нового процесса.

2. Назначает этому процессу уникальный идентификатор.

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

4. Увеличивает показания счетчиков всех файлов, принадлежащих родительскому процессу, что отражает тот факт, что новый процесс также владеет этими файлами.

5. Назначает процессу состояние готовности к выполнению.

Возвращает родительскому процессу идентификатор дочернего процесса, а дочернему процессу — значение 0.

 

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

 

РЕЗЮМЕ, КЛЮЧЕВЫЕ И КОНТРОЛЬНЫЕ ВОПРОСЫ

 

Фундаментальным строительным блоком современных операционных систем является процесс. Основная функция операционной системы состоит в соз­дании, управлении и завершении процессов. Операционная система должна сле­дить за тем, чтобы каждому активному процессу выделялось время для выпол­нения на процессоре, координировать деятельность процессов, разрешать конфликтные ситуации и выделять процессам системные ресурсы.

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

Во время своего существования процесс может переходить из одного со­стояния в другое. Наиболее важными из всех состояний являются состояние го­товности, состояние выполняющегося процесса и блокированное состояние. Го­товый к выполнению процесс — это процесс, который не выполняется в данный момент, но его выполнение может начаться сразу же, как только операционная система передаст ему управление. Выполняющийся процесс — это процесс, ко­торый в настоящее время выполняется процессором. В многопроцессорной сис­теме в этом состоянии может находиться сразу несколько процессов. Блокиро­ванный процесс •— это такой, который ожидает наступления какого-то события, например завершения операции ввода-вывода.

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

 

Ключевые термины

 

Вытеснение Прерывание Слово состояния программы

Дочерний процесс Привилегированный Состояние блокирования

Завершение процесса режим Состояние выполнения

Задание Процесс Состояние готовности

Ловушка Режим ядра Состояние нового процесса

Образ процесса Родительский процесс Состояние

Переключение процессов Свопинг приостановленности

Переключение режимов Системный режим Управляющий блок

Пользовательский режим След процесса

Контрольные вопросы

 

3.1. Что такое след процесса?

3.2. В результате каких событий создаются процессы?

3.3. Дайте краткое описание каждого состояния, фигурирующего в модели обработки процессов, представленной на рис. 3.3.

3.4. Что такое вытеснение процесса ?

3.5. Что такое свопинг и когда он применяется?

3.6. Зачем на рис. 3.6,6 представлены два блокированных состояния?

3.7. Перечислите четыре характерных признака приостановленных процессов.

3.8. Для каких объектов операционная система поддерживает таблицы с управляющей информацией?

3.9. Перечислите три общие категории информации в управляющем блоке процесса.

3.10. Зачем нужны два режима работы процессора (пользовательский режим и режим ядра)?

3.11. Какие действия выполняет операционная система при создании нового процесса?

3.12. Чем отличаются обычное прерывание и ловушка?

3.13. Приведите три примера прерываний.

Чем отличаются переключение режима работы процессора и переключение процессов?

 

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

Материал этой главы изложен в учебниках, приведенных в разделе 2.9. Описание управления процессами в операционной системе UNIX можно найти в [GOOD94] и [GRAY97]. В [NEHM75] обсуждаются состояния процессов и прими­тивов операционной системы, использующиеся при диспетчеризации процессов.

GOOD94 Goodheart В., Сох J. The Magic Garden Explained: The Internals of UNIX System V Release 4. — Englewood Cliffs, NJ: Prentice Hall, 1994.

GRAY97 Gray J. Interprocess Communication in UNIX: The Nooks and Crannies. — Upper Saddle River, NJ: Prentice Hall, 1997.

NEHM75Nehmer J. Dispatcher Primitives for the Construction of Operating System Kernels. — Acta Informatica, vol. 5, 1975.

 

ЗАДАЧИ

Назовите пять основных функций операционной системы при управлении процессами; обоснуйте в общих чертах их необходимость.

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

3.2. Нарисуйте диаграмму с использованием очередей для модели с семью состояниями, изображенной на рис. 3.6,6. В качестве основы возьмите диаграмму, представленную на рис. 3.5,6.

3.3. Рассмотрим диаграмму переходов состояний, изображенную на рис. 3.6,6. Предположим, что для операционной системы пришло время переключать процесс. Пусть у нас имеются процессы как в состоянии готовности, так и готовые к выполнению приостановленные. Кроме того, по крайней мере один из готовых к выполнению приостановленных процессов имеет более высокий приоритет по сравнению с приоритетом любого процесса в состоянии готовности. Можно действовать в соответствии с одной из двух следующих стратегий.

 

1. Всегда выбирать процесс в состоянии готовности, чтобы свести свопинг к минимуму.

2. Всегда отдавать предпочтение процессу с более высоким приоритетом, даже если для этого приходится выполнять свопинг, который не является необходимым.

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

3.5. В табл. 3.13 приведены состояния процессов, использующиеся в операционной системе VAX/VMS.

а. Сможете ли вы найти оправдание наличию такого большого количества различных состояний ожидания?

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

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

 

Таблица 3.13. Состояния процессов в операционной системе VAX/VMS

Выполняющееся Выполняющийся процесс

Выполнимое (резидентное) Готовый к выполнению процесс, находящийся в основной памяти

Выполнимое (выгруженное) Готовый к выполнению процесс, выгруженный из основной памяти

Состояние ожидания

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

Состояние ожидания

разре­шения конфликта

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

Состояние ожидания

общего события Ожидание переключения совместно используемого флага событий (флаги событий — это однобитовые механизмы передачи сигналов от одного процесса другому)

Состояние ожидания

свобод­ной страницы Процесс ожидает, пока ко множеству выделенных ему и находящихся в основной памяти страниц (рабочему мно­жеству процесса) будет добавлена свободная страница ос­новной памяти

Состояние сна Процесс переводит сам себя в состояние ожидания

(резидентное)

 

Состояние сна

(выгруженное) Процесс в состоянии сна выгружается из основной памяти

 

Ожидание локального

собы­тия (резидентное) Процесс находится в основной памяти и ожидает наступ­ления локального события (обычно этим событием явля­ется завершение ввода-вывода)

Ожидание локального

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

 

Приостановленное

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

 

Приостановленное

(выгруженное) Приостановленный процесс выгружается из основной памяти

Ожидание ресурса Процесс, ожидающий, пока ему будет предоставлен какой-то системный ресурс

 

 



Дата добавления: 2016-06-05; просмотров: 2128;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.022 сек.