- •Понятие ос. Задачи, решаемые ос.
- •Обзор архитектуры ibm System/370.
- •Процессор System/370. Регистры. Команды.
- •Процессор System/370. Память. Постоянно распределенные области памяти.
- •Процессор System/370. Прерывания.
- •Процессор System/370. Средства отсчета времени
- •Процессор System/370. Динамическое преобразование адресов.
- •Система ввода/вывода. Адресация, управление, данные.
- •Организация ввода/вывода на физическом уровне.
- •Процедура начальной загрузки
- •Пульт управления.
- •Понятие виртуальной машины
- •Оглавление vm
- •Функции cp. Пуск и завершение vm
- •Функции cp. Распределение времени между вм
- •Функции cp. Управление реальной памятью
- •Функции cp. Управление устройствами ввода/вывода
- •Функции cp. Обработка прерываний
- •Функции cp. Разграничение доступа
- •Функции cp. Обеспечение файлов накопления
- •Разделение функций между cp и cms
- •Общая характеристика ос cms
- •Хранимые системы и наборы сегментов
- •Способы моделирования виртуальных устройств ввода/вывода
- •Процесс как концепция ос. Состояние процесса.
- •Ресурс как концепция ос. Виртуализация ресурсов.
- •Интерфейс пользователя как концепция ос.
- •Прерывания как концепция ос. Обработка прерываний.
- •Организация в/в в ос Unix.
- •Синхронизация процессов. Задача взаимного исключения.
- •Задача синхронизации «производитель-потребитель».
- •Задача синхронизации «читатели-писатели».
- •Задача синхронизации «обедающие философы».
- •Механизмы синхронизации. Критерии их оценки.
- •Архитектура механизмов синхронизации. Прерывания. Переменная состояния.
- •Семафоры. Простые семафоры. Множественные семафоры.
Задача синхронизации «читатели-писатели».
Эта задача также имеет много вариантов. Наиболее характерная область использования этой задачи — при построении файловых систем ОС. В отношении некоторой области памяти, являющейся по смыслу критическим ресурсом для параллельных процессов, работающих с ней, выделяется два типа процессов.
Первый тип — процессы-читатели. Они считывают одновременно информацию из области, если это допускается при работе с конкретным устройством памяти.
Второй тип — процессы-писатели. Они записывают информацию в область и могут делать это, только исключая как друг друга, так и процессы-читатели, т. е. запись должна удовлетворяться на основе решения задачи взаимного исключения. Имеются различные варианты взаимодействия между процессами-писателями и процессами-читателями. Наиболее широко распространены следующие. Устанавливается приоритетность в использовании критического ресурса процессам-читателям. Если хотя бы один процесс-читатель пользуется ресурсом, то он закрыт для использования всем процессам-писателям и доступен для использования всем процессам-читателям. Во втором варианте, наоборот, больший приоритет у процессов-писателей. При появлении запроса от процесса-писателя необходимо закрыть ресурс для использования всем процессам-читателям, которые выдадут запрос позже него.
Задача синхронизации «обедающие философы».
Хотя и название, и формулировка задачи носят некоторый абстрактный характер, такая задача синхронизации также имеет место при построении систем распределения ресурсов в составе ОС. В рамках этой задачи формулируются требования на синхронизацию работы процессов, которые совместно используют пересекающиеся группы ресурсов.
Пример. Пусть имеются три параллельных процесса X, Y, Z и три ресурса: Р1—устройство ввода с перфокарт; Р2—печатающее устройство, РЗ — накопитель на МД. Особенность развития процессов такова, что для пребывания процесса Х в активном состоянии ему требуется выделить одновременно ресурсы ?1 и ?2, для пребывания процесса Y в активном состоянии ему требуется выделить одновременно ресурсы ?2 и РЗ, для пребывания процесса Z в активном состоянии ему требуется выделить одновременно ресурсы РЗ и ?1. Скорости развития процессов произвольны. Переходы из активного в другие состояния происходят в непредсказуемые моменты. Необходимо обеспечить максимально параллельное и правильное развитие процессов. Синхронизация в данном случае заключается в определенном упорядочении действий процессов по захвату ресурсов во избежание возможных блокировок одними процессами других. В данном случае возможны две опасности: возникновение тупиковой ситуации при распределении ресурсов и возникновение ситуации “голодания” в отношении некоторого процесса при распределении ресурса. Для пояснения обратимся к формулировке задачи, изложенной в терминологии, предложенной впервые Э.Дейкстрой.