- •Проектирование Операционных Систем
- •Определение ос
- •Промышленная эксплуатация
- •Принцип модульности
- •Принцип функциональной избирательности
- •Принцип перемещаемости
- •Принцип защиты
- •Состояние процессов
- •Переходы между состояниями
- •Классификация процессов
- •Характеристики процессов
- •Определение
- •Классификация ресурсов
- •Интерфейс пользователя
- •Командный интерфейс
- •Примеры командных файлов из операционных систем
- •Эльбрус
- •3. Vm, os/2: rexx (пример аналога команды unix Grep)
- •Графический интерфейс
- •Основные понятия gui
- •Обработка прерываний
- •Подсистемы ос
- •Подсистема управления процессами
- •Долгосрочное планирование
- •Краткосрочное планирование
- •Дескрипторы процессов
- •Искусственное снижение уровня мультипрограммирования
- •Подсистема распределения ресурсов
- •Подсистема управления памятью
- •Два уровня распределения оперативной памяти
- •Задачи распределения памяти
- •Выделение
- •Подсистема управления вводом/выводом
- •Требования к подсистеме управления ввода/вывода:
- •Буферизация ввода вывода
- •Пример реализации ввода/вывода в системе unix
- •Пример реализации ввода/вывода в ос vm
- •Организация виртуальной памяти
- •Структуризация адресных пространств
- •Схемы страничной структуризации.
- •Схемы сегментной структуризации.
- •Сегментно-страничная структуризация
- •Требования к вп
- •Задачи управления виртуальной памятью
- •Задача размещения
- •Задача перемещения
- •Задача взаимного исключения
- •Задача «производитель-потребитель»
- •Модификации данной задачи
- •Задача «читатели-писатели»
- •Задача «обедающие философы»
- •Механизмы синхронизации Критерии оценки механизмов синхронизации
- •Архитектура механизмов синхронизации
- •Синхронизация с помощью прерываний
- •Синхронизация при помощи переменной состояния
- •Семафоры
- •Простые семафоры
- •Множественные семафоры
Задача «производитель-потребитель»
Имеются два процесса, первый из которых вырабатывает сообщение и помещает их по одному в некоторую область памяти. Второй процесс принимает готовые сообщения. В данном случае область памяти сообщений – критический ресурс. Необходимо согласовать работу процессов, удовлетворив следующие требования:
Выполнять требования задачи взаимного исключения по отношению к области памяти сообщения.
Учитывать заполненность области памяти, влияющей на возможность передачи или получения сообщения.
<...>
Блокирование попытки означает перевод процесса в состояние ожидание <...>
Отклонение попытки означает оповещение процесса о невозможности выполнения действия без перевода в состояние ожидания.
В случае блокирования необходимо обеспечить перевод ожидающего процесса в состояние готовности при изменении состояния области сообщения.
Модификации данной задачи
Наличие более одного производителя или более одного потребителя.
Двусторонняя связь через одну и ту же область.
Использование нескольких областей.
Использование областей, размер которых позволяет хранить несколько сообщений.
Задача «читатели-писатели»
В отношении некоторой области памяти, являющейся критическим ресурсом, выделяется два типа процессов:
Процессы – читатели. Они считывают одновременно информацию из области, если это допускается конкретным устройством.
Процессы – писатели. Записывают информацию в некоторую область, исключая друг-друга, а так же читателей.
Читатели или писатели могут иметь приоритет над процессами другого типа.
Если приоритетом обладают читатели, то писатели не получат ресурс до тех пор, пока он занят хотя бы одним читателем.
Если приоритетом обладают писатели, то писатель выдавший запрос на ресурс получит его в свое распоряжение, а последующими запросы читателей и писателей будут отвергнуты.
Задача «обедающие философы»
В рамках этой задачи формулируются требования на синхронизацию работы процессов на совместное использование пересекающейся группы ресурсов.
Пусть имеются три параллельных процесса П1, П2 и П3, а так же три ресурса Р1-Р3.
Процессу П1 в активном состояние требуются Р1 и Р2, процессу П2 – Р2 и Р3, а процессу П3 – Р3 и Р1.
Скорости развития процессов произвольные. Переходы между состояниями происходят в произвольные моменты. Требуется обеспечить максимально параллельное и правильное развитие процессов. Синхронизация, в данном случае, заключается в упорядочивании предоставления процессам ресурсов во избежание возможных блокировок одними процессами других.
Возможные опасности:
Полная взаимоблокировка
Постоянная дискриминация одного из процессов.
Механизмы синхронизации Критерии оценки механизмов синхронизации
Простота использования (определяется простотой синтаксиса и семантики, структура примитива должна быть простой, интуитивно понятной).
Гибкость – способность механизма быть использованным для реализации многих известных типов отношений между процессами в ясной и недвусмысленной форме.
Проверяемость – определяется возможностью применения формального метода анализа.
Эффективность – простота реализации в пределах аппаратных средств рассматриваемой вычислительной машины, введение механизмов синхронизации не должно приводить к существенным задержкам в развитии использующих его процессов.
Надёжность – вероятность правильной работы механизма не только в заранее оговоренных условиях, но и в каких-то экстремальных ситуациях.
Для реального сравнения механизмов синхронизации необходимо проводить их испытания на рассмотренных ранее типовых задачах синхронизации.