
- •Часть2.
- •Путеводитель по части 2
- •Глава3. Описание процессов и управление ими
- •Глава 4. Потоки, симметричная мультипроцессорная обработка и микроядра
- •Глава 5. Параллельные вычисления: взаимоисключения и многозадачность
- •Глава 6. Взаимоблокировка и голодание
- •Глава3.
- •3.1. Состояния процессов
- •Биты режима работы
- •Коды условий
- •3.3. Управление процессами
- •3.4. Управление процессами
- •Зависят от используемого аппаратного обеспечения
- •3.5. Резюме, ключевые и контрольные вопросы
- •3.6. Рекомендуемая литература
- •3.7. Задачи
Глава 5. Параллельные вычисления: взаимоисключения и многозадачность
Двумя центральными темами, связанными с современными операционными системами, являются многозадачность и распределенные вычисления. Их основой, как и основой технологий разработки операционных систем, являются параллельные вычисления. В главе рассматриваются два важных аспекта параллельных вычислений: взаимоисключения и синхронизация. Взаимное исключение означает такое совместное использование кода, ресурсов или данных несколькими процессами (или потоками), при котором в каждый момент времени доступ к совместно используемым объектам имеет только один процесс. Синхронизация тесно связана с взаимным исключением, и представляет собой способность нескольких процессов координировать свою деятельность путем обмена информацией. В главе дается широкий обзор вопросов, связанных с параллельными вычислениями, начинающийся с рассмотрения вопросов архитектуры операционных систем, имеющих отношение к этому понятию. Здесь же обсуждается аппаратная поддержка параллельных вычислений, а также важнейшие механизмы программной поддержки: семафоры, мониторы и передача сообщений.
Глава 6. Взаимоблокировка и голодание
В этой главе рассматриваются два дополнительных аспекта параллельных вычислений. Ситуация, в которой два или большее количество процессов находятся в состоянии ожидания, причем ни один из них не может продолжить свою работу, называется взаимоблокировкой. Взаимоблокировка — это явление, которое трудно предугадать, и простых общих методов решения этой проблемы не существует. В главе представлены три основных подхода к обработке взаимоблокировки: предотвращение, устранение и обнаружение. Ситуация, в которой готовый к выполнению процесс долго не получает доступа к процессору из-за того, что он выполняет другие процессы, называется голоданием. Голодание в основном связано с планированием, поэтому детальнее оно рассматривается в четвертой части. Основное внимание в главе уделяется взаимоблокировке, голодание же рассматривается в плане разрешения проблемы взаимоблокировок для его исключения.
Глава3.
Описание процессов и управление ими
Состояния процессов
Описание процессов
Управление процессами
Управление процессами в операционной системе UNIX SVR4
Резюме, ключевые термины и контрольные вопросы
Рекомендуемая литература
Задачи
Архитектура операционной системы должна удовлетворять определенным требованиям. Все многозадачные операционные системы используют концепцию процесса — начиная с однопользовательских операционных систем, таких, как Windows 98, и заканчивая операционными системами для мейнфреймов, таких, как OS/390, которые способны поддерживать работу тысяч пользователей. Таким образом, основные требования, которым должны удовлетворять операционные системы, могут быть сформулированы с использованием понятия процесса.
Операционная система должна чередовать выполнение нескольких процессов, чтобы повысить степень использования процессора при обеспечении разумного времени отклика.
Операционная система должна распределять ресурсы между процессами в соответствии с заданной стратегией (т.е. предоставляя определенным функциям или приложениям более высокий приоритет), избегая в то же время взаимоблокировок.
От операционной системы может потребоваться поддержка обмена информацией между процессами, а также обеспечение возможности создания процессов пользователями. Обе эти возможности могут помочь в структурировании приложений.
Подробное изучение операционных систем мы начнем со знакомства с представлением процессов и управлением ими. Для начала рассмотрим возможные состояния процессов, характеризующие их поведение; затем перейдем к структурам данных, которые нужны операционной системе для представления состояния и других характеристик процессов. И, наконец, будет рассмотрено управление процессами в операционной системе UNIX SVR4.
Примечание. При описании процессов в большинстве случаев в этой главе концепцию виртуальной памяти можно игнорировать, но при рассмотрении некоторых специализированных вопросов уместно обратить на нее особое внимание. Хотя подробно виртуальная память обсуждается только в главе 8, "Виртуальная память", краткий обзор приведен в главе 2, "Обзор операционных систем".