Управление внешними устройствами. Архитектура.
4. Использование контроллера прямого доступа к памяти (DMA) при обмене. 5. Управление внешними устройствами с использованием процессора или канала ввода/вывода.
Программное управление внешними устройствами Драйверы логических устройств Драйверы физических устройств Программы обработки прерываний Аппаратура унификация программных интерфейсов доступа к внешним устройствам (унификация именования, абстрагирование от свойств конкретных устройств); обеспечение конкретной модели синхронизации при выполнении обмена (синхронный, асинхронный обмен); обработка возникающих ошибок (индикация ошибки, локализация ошибки, попытка исправления ситуации); буферизация обмена; обеспечение стратегии доступа к устройству (распределенный доступ, монопольный доступ); планирование выполнения операций обмена Цели:
Буферизация обмена Схемы буферизации ввода-вывода а) Без буферизации б) Одинарная буферизация Операционная система Пользовательский процесс Устройство ввода-вывода Ввод Операционная система Пользовательский процесс Устройство ввода-вывода ВводПеремещение T – время обмена; С – время выполнения программы между обменами t – общее время выполнения программы t = C+T t = max(C,T)+M M – время перемещения
Буферизация операций ввода-вывода Схемы буферизации ввода-вывода в) Двойная буферизация г) Циклическая буферизация Операционная система Пользовательский процесс Устройство ввода-вывода Ввод Перемещение Операционная система Пользовательский процесс Устройство ввода-вывода Ввод...
Планирование дисковых обменов Рассмотрим модельную ситуацию: головка HDD позиционирована на дорожке 15 Очередь запросов к дорожкам: 4, 40, 11, 35, 7, 14 FIFO Путь головкиL общ. 135 средн. 22,
Планирование дисковых обменов SSTF Путь головкиL общ. 47 средн. 7,83 Shortest Service Time First – «жадный» алгоритм – на каждом шаге поиск обмена с минимальным перемещением LIFO Путь головкиL общ. 126 средн. 20,83
Планирование дисковых обменов PRI – алгоритм, основанный на приоритетах процессов. Проблема – голодание (для всех кроме FIFO), запрос может «зависать» из-за прихода наиболее приоритетных. SCAN Путь головкиL общ. 61 средн. 10,16 Алгоритм «лифта» - сначала «движение» в одну сторону до «упора», затем в другую, также до «упора» Для набора запросов перемещений 2 х число_дорожек
Планирование дисковых обменов С-SCAN Путь головкиL общ. 47 средн. 7,83 Циклическое сканирование Сканирование в одном направлении. Ищем минимальный номер дорожки, затем «движемся наверх»
Планирование дисковых обменов N-step-SCAN Разделение очереди на подочереди длины N запросов каждая (из соображений FIFO). Последовательная обработка очередей. Обрабатываемая очередь не обновляется. Обновление очередей, отличных от обрабатываемой. Борьба с «залипанием» головки (интенсивный обмен с одной и той же дорожкой).
RAID – Redundant Array of Independent (Inexpensive) Disks – избыточный массив независимых (недорогих) дисков. RAID система - набор физических дисковых устройств, рассматриваемых операционной системой, как единое дисковое устройство (данные распределяются по физическим устройствам, образуется избыточная информация, используемая для контроля и восстановления информации). Семь уровней RAID систем. RAID системы.
Уровни RAID полоса 12 полоса 8 полоса 4 полоса 0 полоса 13 полоса 9 полоса 5 полоса 1 полоса 14 полоса 10 полоса 6 полоса 2 полоса 15 полоса 11 полоса 7 полоса 3 RAID 0 (без избыточности) полоса 12 полоса 8 полоса 4 полоса 0 полоса 13 полоса 9 полоса 5 полоса 1 полоса 14 полоса 10 полоса 6 полоса 2 полоса 15 полоса 11 полоса 7 полоса 3 RAID 1 (зеркалирование) полоса 12 полоса 8 полоса 4 полоса 0 полоса 13 полоса 9 полоса 5 полоса 1 полоса 14 полоса 10 полоса 6 полоса 2 полоса 15 полоса 11 полоса 7 полоса 3
Уровни RAID RAID 2 избыточность с кодами Хэмминга (Hamming, исправляет одинарные и выявляет двойные ошибки) RAID 3 (четность с чередующимися битами) b0b0 b1b1 b2b2 b3b3 f 0 (b)f 1 (b)f 2 (b)b0b0 b1b1 b2b2 b3b3 P(b) X4(i)=X3(i)XOR X2(i)XOR X1(i)XOR X0(i) X1(i)=X4(i)XOR X3(i)XOR X2(i)XOR X0(i) Пример: 4 диска данных, один – четности: Потеря данных на первом диске
Уровни RAID полоса 12 полоса 8 полоса 4 полоса 0 полоса 13 полоса 9 полоса 5 полоса 1 полоса 14 полоса 10 полоса 6 полоса 2 полоса 15 полоса 11 полоса 7 полоса 3 RAID 4 P(12-15) P(8-11) P(4-7) P(0-3) Пример: 4 диска данных, один – четности: Изначально: X4(i)=X3(i)XOR X2(i)XOR X1(i)XOR X0(i) После обновления полосы на диске X1: X4 new (i)=X4(i)XOR X1(i)XOR X1 new (i)
Уровни RAID RAID 5 (распределенная четность – циклическое распределение «четности») е P(16-19) полоса 12 полоса 8 полоса 4 полоса 0 полоса 16 P(12-15) полоса 9 полоса 5 полоса 1 полоса 17 полоса 13 P(8-11) полоса 6 полоса 2 полоса 18 полоса 14 полоса 10 P(4-7) полоса 3 полоса 19 полоса 15 полоса 11 полоса 7 P(0-3)
Уровни RAID полоса 12 полоса 8 полоса 4 полоса 0 P(12-15) полоса 9 полоса 5 полоса 1 Q(12-15) P(8-11) полоса 6 полоса 2 полоса 13 Q(8-11) P(4-7) полоса 3 RAID 6 (двойная избыточность – циклическое распределение четности с использованием двух схем контроля: N+2 дисков) полоса 14 полоса 10 Q(4-7) P(0-3) полоса 15 полоса 11 полоса 7 Q(0-3)
OC Unix: Работа с внешними устройствами
Файлы устройств, драйверы Файловая система Блокориентированные устройства Оперативная память Байториентированный интерфейс обмена Блокориентированный интерфейс обмена Иерархия драйверов Специальные файлы устройств ( /dev ) Байт-ориентированные устройства Блок-ориентированные устройства
Файлы устройств Содержимое файлов устройств размещается исключительно в соответствующем индексном дескрипторе Структура ИД файла устройства: «Старший номер» (major number) устройства Тип файла устройства «Младший номер» (minor number) устройства Системные таблицы драйверов устройств: bdevsw cdevsw
Системные таблицы драйверов устройств Запись содержит- структуру, в которой размещены указатели на соответствующие точки входа (функции) драйвера - коммутатор устройства; или специальную ссылку-заглушку на точку ядра Типовой набор точек входа в драйвер: open(), close() read(), write() ioctl() intr() strategy()
Ситуации, вызывающие обращение к функциям драйвера Старт системы, определение ядром состава доступных устройств Обработка запроса ввода/вывода Обработка прерывания, связанного с данным устройством Выполнение специальных команд управления
Включение/удаление драйверов в систему «Жёсткое», статистическое встраивание драйверов в код ядра Динамическое включение драйвера в систему Загрузка и динамическое связывание драйвера с кодом ядра Инициализация драйвера и соответствующего ему устройства
Организация обмена данными с файлами Для организации интерфейса работы с файлами ОС использует информационные структуры и таблицы двух типов: ассоциированные с процессом ассоциированные с ядром ОС Таблица индексных дескрипторов открытых файлов (размещается в памяти ядра ОС) Таблица файлов (размещается в памяти ОС) Таблица открытых файлов
Пример ТФ ТОФ 2 ТОФ 1 Fork name ТОФ 3 name pointer1 pointer21 12 ТИДОФ Дескрипт.1 2
Буферизация при блокориентированном обмене Пул буферов размера в один блок каждый
Буферизация при блокориентированном обмене 1. Поиск заданного блока в буферном пуле. Нашли- переходим на шаг Поиск буфера в буферном пуле для чтения и размещения заданного блока. 3. Чтение блока в найденный буфер. 4. Изменение счётчика времени во всех буферах. 5. Содержимое данного буфера передаётся в качестве результата.
Буферизация при блокориентированном обмене Оптимизация работы ОС, за счет минимизации реальных обращений к физическому устройству Недостатки: Критичность к несанкционированным отключениям питания Разорванность во времени факта обращения к системе за обменом и реальным обменом
Борьба со сбоями Наличие некого параметра, определяющего периоды времени, через которые осуществляется сброс системных данных, который может оперативно меняться Пользовательская команда SYNC Избыточность системы, позволяющая восстанавливать информацию