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