Óïðàâëåíèå âíåøíèìè óñòðîéñòâàìè

advertisement
Операционные системы
Управление внешними устройствами
Управление внешними устройствами.
Архитектура
ЦП
ОЗУ
Внешнее
устройство
1. Непосредственное управление внешними
устройствами центральным процессором
ОЗУ
ЦП
контроллер внешнего устройства
Внешние
устройства
2. Синхронное управление внешними устройствами
использованием контроллеров внешних устройств
3. Асинхронное управление внешними устройствами с
использованием контроллеров внешних устройств
Управление внешними устройствами.
Архитектура
ОЗУ
ЦП
DMA
контроллер
+
контроллер
или процессор
ввода/вывода
Внешнее
устройство
4. Использование контроллера прямого доступа к
памяти (DMA) при обмене.
5. Управление внешними устройствами с
использованием процессора или канала
ввода/вывода.
Программное управление внешними
устройствами
Драйверы логических устройств
Драйверы физических устройств
Программы обработки прерываний
Аппаратура
Программное управление внешними
устройствами
• унификация программных интерфейсов доступа к
внешним устройствам (унификация именования,
абстрагирование от свойств конкретных устройств)
• обеспечение конкретной модели синхронизации при
выполнении обмена (синхронный, асинхронный
обмен)
• обработка возникающих ошибок (индикация ошибки,
локализация ошибки, попытка исправления ситуации);
• буферизация обмена
• обеспечение стратегии доступа к устройству
(распределенный доступ, монопольный доступ);
• планирование выполнения операций обмена
Планирование дисковых обменов
Рассмотрим модельную ситуацию:
головка HDD позиционирована на дорожке 15
Очередь запросов к дорожкам: 4, 40, 11, 35, 7, 14
FIFO
Путь
L
головки
11
15  4
36
4  40
40  11 29
11  35 24
28
35  7
7
7  14
общ. 135
средн. 22,5
0
4
7
11 14 15
35
40
Планирование дисковых обменов
Shortest Service Time First — «жадный» алгоритм — на
каждом шаге поиск обмена с минимальным
перемещением
SSTF
LIFO
Путь
L
головки
1
15  14
3
14  11
4
11  7
3
74
31
4  35
5
35  40
общ. 47
средн. 7,83
Путь
L
головки
1
15  14
7
14  7
28
7  35
35  11 24
11  40 29
36
40  4
общ. 126
средн. 20,83
Планирование дисковых обменов
PRI — алгоритм, основанный на приоритетах процессов.
SCAN
Путь
L
головки
15  35 20
5
35  40
40  14 26
3
14  11
4
11  7
3
74
общ. 61
средн. 10,16
«Лифт» — сначала «движение» в одну
сторону до «упора», затем в другую,
также до «упора»
Для  набора запросов
перемещений  2  число_дорожек
Планирование дисковых обменов
С-SCAN
Путь
L
головки
11
15  4
3
47
4
7  11
3
11  14
14  35 21
5
35  40
общ. 47
средн. 7,83
Циклическое сканирование
Сканирование в одном направлении.
Ищем минимальный номер дорожки,
затем «движемся наверх»
Планирование дисковых обменов
N-step-SCAN
Разделение очереди на подочереди длины  N запросов
каждая (из соображений FIFO). Последовательная
обработка очередей. Обрабатываемая очередь не
обновляется. Обновление очередей, отличных от
обрабатываемой.
Борьба с «залипанием» головки (интенсивный обмен с
одной и той же дорожкой).
RAID системы
RAID (Redundant Array of Independent (Inexpensive)
Disks) — избыточный массив независимых (недорогих)
дисков (1987, Беркли, Калифорния, США).
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 избыточность с кодами Хэмминга
Пример: 4 диска данных,
один — четности: Потеря
данных на первом диске
b0
b1
b2
b3
RAID 3 (четность с
чередующимися битами)
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 дисков)
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()
Ситуации, вызывающие обращение к
функциям драйвера
• Старт системы, определение ядром состава
доступных устройств
• Обработка запроса ввода/вывода
• Обработка прерывания, связанного с данным
устройством
• Выполнение специальных команд управления
Включение/удаление драйверов в
систему
• «Жёсткое», статистическое встраивание драйверов
в код ядра
• Динамическое включение драйвера в систему
•
Загрузка и динамическое связывание драйвера с кодом
ядра
• Инициализация драйвера и соответствующего ему
устройства
Организация обмена данными с
файлами
• Таблица индексных дескрипторов открытых файлов
(размещается в памяти ядра ОС)
• Таблица файлов (размещается в памяти ОС)
• Таблица открытых файлов
Пример
ТОФ 1
ТИДОФ
12 Дескрипт.
ТФ
12 pointer1
1 pointer2
name
ТОФ 3
name
ТОФ 2
name
fork
Буферизация при блокориентированном обмене
1. Поиск заданного блока в буферном пуле. Нашли2.
3.
4.
5.
переходим на шаг 4
Поиск буфера в буферном пуле для чтения и
размещения заданного блока
Чтение блока в найденный буфер
Изменение счётчика времени во всех буферах
Содержимое буфера передаётся в качестве
результата
Буферизация при блокориентированном обмене
• Оптимизация работы ОС, за счет минимизации
реальных обращений к физическому устройству
• Недостатки:
• Критичность к несанкционированным отключениям
питания
• Разорванность во времени факта обращения к системе
за обменом и реальным обменом
Борьба со сбоями
• Наличие параметра, определяющего периоды времени,
через которые осуществляется сброс системных
данных, который может оперативно меняться
• Пользовательская команда SYNC
• Избыточность системы, позволяющая восстанавливать
информацию
Download