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