Операционные системы Управление внешними устройствами
Управление внешними устройствами. Архитектура ЦП Внешнее устройство ОЗУ 1. Непосредственное управление внешними устройствами центральным процессором ОЗУЦП контроллер внеш- него устройства Внешние устройства 2. Синхронное управление внешними устройствами использованием контроллеров внешних устройств 3. Асинхронное управление внешними устройствами с использованием контроллеров внешних устройств
Управление внешними устройствами. Архитектура 4.Использование контроллера прямого доступа к памяти (DMA) при обмене. 5.Управление внешними устройствами с использованием процессора или канала ввода/вывода. ОЗУ Внешнее устройство ЦП DMA контроллер + контроллер или процессор ввода/вывода
Программное управление внешними устройствами Драйверы логических устройств Драйверы физических устройств Программы обработки прерываний Аппаратура
Программное управление внешними устройствами унификация программных интерфейсов доступа к внешним устройствам (унификация именования, абстрагирование от свойств конкретных устройств) обеспечение конкретной модели синхронизации при выполнении обмена (синхронный, асинхронный обмен) обработка возникающих ошибок (индикация ошибки, локализация ошибки, попытка исправления ситуации); буферизация обмена обеспечение стратегии доступа к устройству (распределенный доступ, монопольный доступ); планирование выполнения операций обмена
Планирование дисковых обменов Рассмотрим модельную ситуацию: головка 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 алгоритм, основанный на приоритетах процессов. SCAN Путь головки L общ. 61 средн. 10,16 «Лифт» сначала «движение» в одну сторону до «упора», затем в другую, также до «упора» Для набора запросов перемещений 2 число_дорожек
Планирование дисковых обменов С-SCAN Путь головки L общ. 47 средн. 7,83 Циклическое сканирование Сканирование в одном направлении. Ищем минимальный номер дорожки, затем «движемся наверх»
Планирование дисковых обменов N-step-SCAN Разделение очереди на подочереди длины N запросов каждая (из соображений FIFO). Последовательная обработка очередей. Обрабатываемая очередь не обновляется. Обновление очередей, отличных от обрабатываемой. Борьба с «залипанием» головки (интенсивный обмен с одной и той же дорожкой).
RAID (Redundant Array of Independent (Inexpensive) Disks) избыточный массив независимых (недорогих) дисков (1987, Беркли, Калифорния, США). 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 избыточность с кодами Хэмминга 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)
UNIX: Работа с внешними устройствами 1.Файлы устройств, драйверы 1.1.Файлы устройств 1.2.Системные таблицы драйверов устройств 1.3.Ситуации, вызывающие обращение к функциям драйвера 1.4.Включение/удаление драйверов в системе 2.Организация обмена данных с файлами 3.Буферизация при блок-ориентированном обмене 4.Борьба со сбоями
Файлы устройств, драйверы Файловая система Блок-ориентированные устройства Оперативная память Байт-ориентированный интерфейс обмена Блок-ориентированный интерфейс обмена Иерархия драйверов Специальные файлы устройств (/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. Поиск заданного блока в буферном пуле. Нашли- переходим на шаг 4 2. Поиск буфера в буферном пуле для чтения и размещения заданного блока 3. Чтение блока в найденный буфер 4. Изменение счётчика времени во всех буферах 5. Содержимое буфера передаётся в качестве результата
Буферизация при блок- ориентированном обмене Оптимизация работы ОС, за счет минимизации реальных обращений к физическому устройству Недостатки: Критичность к несанкционированным отключениям питания Разорванность во времени факта обращения к системе за обменом и реальным обменом
Борьба со сбоями Наличие параметра, определяющего периоды времени, через которые осуществляется сброс системных данных, который может оперативно меняться Пользовательская команда SYNC Избыточность системы, позволяющая восстанавливать информацию