Управление внешними устройствами

advertisement
Управление внешними устройствами.
Архитектура.
Ц П
О ЗУ
В неш нее
устройство
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
74
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
74
3
общ. 61
средн. 10,16
Алгоритм «лифта» - сначала «движение» в одну
сторону до «упора», затем в другую, также до
«упора»
Для  набора запросов
перемещений  2 х число_дорожек
Планирование дисковых
обменов
С-SCAN
Путь головки
L
15  4
11
47
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
 Избыточность
системы,
позволяющая
восстанавливать информацию
Download