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