- •Часть2.
- •Путеводитель по части 2
- •Глава3. Описание процессов и управление ими
- •Глава 4. Потоки, симметричная мультипроцессорная обработка и микроядра
- •Глава 5. Параллельные вычисления: взаимоисключения и многозадачность
- •Глава 6. Взаимоблокировка и голодание
- •Глава3.
- •3.1. Состояния процессов
- •Биты режима работы
- •Коды условий
- •3.3. Управление процессами
- •3.4. Управление процессами
- •Зависят от используемого аппаратного обеспечения
- •3.5. Резюме, ключевые и контрольные вопросы
- •3.6. Рекомендуемая литература
- •3.7. Задачи
Часть2.
Процессы
Основной задачей любой операционной системы является управление процессами. Операционная система должна распределять между ними ресурсы, предоставлять им возможность совместно использовать информацию и обмениваться ею, защищать ресурсы, используемые одним процессом, от их использования другими процессами, а также обеспечивать возможность синхронной работы процессов. Для этого операционная система должна поддерживать для каждого процесса свою структуру данных, в которой задается состояние данного процесса и указываются ресурсы, которыми он владеет. Это позволяет операционной системе осуществлять управление процессами.
В многозадачной однопроцессорной системе несколько различных процессов могут выполняться, чередуясь один с другим. В многопроцессорной системе несколько процессов могут не только чередоваться, но и выполняться одновременно. Эти типы параллелизма вызывают массу сложных проблем, с которыми сталкивается как создающий приложение программист, так и операционная система.
Во многих современных операционных системах положение с управлением процессами усложняется введением понятия потока. В многопоточной системе принадлежность ресурсов остается атрибутом процесса, в то время как сам процесс представляет собой множество параллельно выполняющихся потоков.
Путеводитель по части 2
Глава3. Описание процессов и управление ими
Основная работа традиционной операционной системы связана с управлением процессами. В любой момент времени этапы исполнения каждого процесса характеризуются одним из нескольких состояний, в число которых входят состояние готовности, выполнения и заблокированности. Операционная система отслеживает состояния процессов и управляет их изменением, для чего ей приходится поддерживать довольно подробные структуры данных, описывающие каждый процесс. Операционная система должна выполнять функции планирования и предоставлять инструментарий для совместного выполнения процессов и их синхронизации. В главе 3 рассматриваются указанные структуры данных и методы, используемые типичной операционной системой для управления процессами.
Глава 4. Потоки, симметричная мультипроцессорная обработка и микроядра
Во многих операционных системах традиционная концепция процесса разделена на две части: одна из них связана с принадлежностью ресурсов (процесс), а другая — с выполнением машинных команд (поток). Процесс может содержать несколько потоков. Многопоточная организация помогает лучше структурировать приложения, а также повысить производительность их работы. В главе также рассматривается симметричная многопроцессорность (symmetric multiprocessor — SMP), представляющая собой компьютерную систему с несколькими процессорами, каждый из которых способен исполнять все приложения и системный код. Многопроцессорная организация системы улучшает производительность и надежность ее работы. SMP часто используется совместно с многопоточ-ностью, но может давать значительный выигрыш производительности и без нее. И, наконец, в главе анализируется работа микроядра (представляющего собой стиль разработки операционной системы, при котором объем системного кода, работающего в режиме ядра, сводится к минимуму) и его преимущества.