- •Часть2.
- •Путеводитель по части 2
- •Глава3. Описание процессов и управление ими
- •Глава 4. Потоки, симметричная мультипроцессорная обработка и микроядра
- •Глава 5. Параллельные вычисления: взаимоисключения и многозадачность
- •Глава 6. Взаимоблокировка и голодание
- •Глава3.
- •3.1. Состояния процессов
- •Биты режима работы
- •Коды условий
- •3.3. Управление процессами
- •3.4. Управление процессами
- •Зависят от используемого аппаратного обеспечения
- •3.5. Резюме, ключевые и контрольные вопросы
- •3.6. Рекомендуемая литература
- •3.7. Задачи
3.6. Рекомендуемая литература
Материал этой главы изложен в учебниках, приведенных в разделе 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.
NEHM75 Nehmer J. Dispatcher Primitives for the Construction of Operating System Kernels. — Acta Informatica, vol. 5, 1975.
3.7. Задачи
Назовите пять основных функций операционной системы при управлении процессами; обоснуйте в общих чертах их необходимость.
В [PINK89] определены такие состояния процессов: выполняющийся, готовый к выполнению, блокированный и приостановленный. Процесс находится в блокированном состоянии, если он ожидает разрешения использовать какой-то ресурс; процесс является приостановленным, если он ждет, пока освободится ресурс, запрос на использование которого он уже отправил. Во многих операционных системах эти два состояния объединяются в одно, и называются блокированным состоянием. В этом случае определение приостановленного состояния совпадает с тем, которое использовалось в данной главе. Сравните преимущества использования этих двух наборов состояний.
Нарисуйте диаграмму с использованием очередей для модели с семью состояниями, изображенной на рис. 3.6,6. В качестве основы возьмите диаграмму, представленную на рис. 3.5,6.
Рассмотрим диаграмму переходов состояний, изображенную на рис. 3.6,6. Предположим, что для операционной системы пришло время переключать процесс. Пусть у нас имеются процессы как в состоянии готовности, так и готовые к выполнению приостановленные. Кроме того, по крайней мере один из готовых к выполнению приостановленных процессов имеет более высокий приоритет по сравнению с приоритетом любого процесса в состоянии готовности. Можно действовать в соответствии с одной из двух следующих стратегий.
Всегда выбирать процесс в состоянии готовности, чтобы свести свопинг к минимуму.
Всегда отдавать предпочтение процессу с более высоким приоритетом, даже если для этого приходится выполнять свопинг, который не является необходимым.
Предложите промежуточную стратегию, в которой была бы предпринята попытка сбалансировать концепции приоритета и производительности.
3.5. В табл. 3.13 приведены состояния процессов, использующиеся в операционной системе VAX/VMS.
а. Сможете ли вы найти оправдание наличию такого большого количества различных состояний ожидания?
б. Почему нет резидентных и приостановленных версий таких состояний, как ожидание загрузки страницы в основную память, ожидание разрешения конфликта доступа к странице, ожидание общего события, ожидание свободной страницы и ожидание ресурса.
в. Изобразите диаграмму переходов состояний и укажите на ней действие или событие, которое приводит к каждому из изображенных переходов.
Таблица 3.13. Состояния процессов в операционной системе VAX/VMS
Выполняющееся Выполняющийся процесс
Выполнимое (резидентное) Готовый к выполнению процесс, находящийся в основной памяти
Выполнимое (выгруженное) Готовый к выполнению процесс, выгруженный из основной памяти
Состояние ожидания
загрузки страницы Процесс обратился к странице, которая отсутствует в основной памяти, и должен ждать, пока она будет считана
Состояние ожидания
разрешения конфликта
доступа к странице Процесс обратился к совместно используемой странице, загрузку которой уже ожидает другой процесс, или к персональной странице, для которой как раз выполняется чтение или запись
Состояние ожидания
общего события Ожидание переключения совместно используемого флага событий (флаги событий — это однобитовые механизмы передачи сигналов от одного процесса другому)
Состояние ожидания
свободной страницы Процесс ожидает, пока ко множеству выделенных ему и находящихся в основной памяти страниц (рабочему множеству процесса) будет добавлена свободная страница основной памяти
Состояние сна Процесс переводит сам себя в состояние ожидания
(резидентное)
Состояние сна
(выгруженное) Процесс в состоянии сна выгружается из основной памяти
Ожидание локального
события (резидентное) Процесс находится в основной памяти и ожидает наступления локального события (обычно этим событием является завершение ввода-вывода)
Ожидание локального
события (выгруженное) Процесс в ожидании локального события выгружен из основной памяти
Приостановленное
(резидентное) Процесс, переведенный другим процессом в состояние ожидания
Приостановленное
(выгруженное) Приостановленный процесс выгружается из основной памяти
Ожидание ресурса Процесс, ожидающий, пока ему будет предоставлен какой-то системный ресурс