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