1: Основы операционных систем
2: Часть V. Ввод-вывод Лекция 13. Система управления вводом-выводом
3: Два вида деятельности вычислительной системы Обработка информации Операции ввода-вывода С точки зрения программиста: Обработка информации – выполнение команд процессора над данными, находящимися в памяти, независимо от уровня иерархии Ввод-вывод – обмен данными между памятью и устройствами, внешними по отношению к ней и процессору С точки зрения ОС: Обработка информации – выполнение команд процессора над данными, лежащими в памяти на уровнях не ниже основной памяти Ввод-вывод – все остальное
4: Два вида деятельности вычислительной системы Обработка информации Что делается? Как делается? Операции ввода-вывода Что делается? Как делается?
5: Общие сведения об архитектуре компьютера
6: Общие сведения об архитектуре компьютера
7: Общие сведения об архитектуре компьютера Передача информации из процессора в память На адресной шине выставить сигналы для адреса памяти На шине данных выставить сигналы для данных На шине управления выставить сигналы работы с памятью и операции записи
8: Общие сведения об архитектуре компьютера Память и устройства I/O Память: Локализована в пространстве Ячейки взаимно однозначно отображаются на линейное адресное пространство памяти. Устройства I/O: Пространственно разнесены и подключаются к локальной магистрали через порты ввода-вывода.
9: Общие сведения об архитектуре компьютера Память и устройства I/O Память: Локализована в пространстве Ячейки взаимно однозначно отображаются на линейное адресное пространство памяти. Устройства I/O: Пространственно разнесены и подключаются к локальной магистрали через порты ввода-вывода. Порты ввода-вывода взаимно однозначно отображаются на линейное адресное пространство ввода-вывода (иногда на линейное адресное пространство памяти)
10: Общие сведения об архитектуре компьютера Передача информации из процессора в порт, отображенный в адресное пространство ввода-вывода На адресной шине выставить сигналы для адреса порта На шине данных выставить сигналы для данных На шине управления выставить сигналы работы с устройствами ввода-вывода и операции записи
11: Общие сведения об архитектуре компьютера Память и устройства I/O Занесение информации в память завершает операцию записи Занесение информации в порт часто инициализирует реальное совершение устройства ввода-вывода
12: Общие сведения об архитектуре компьютера Устройства ввода-вывода подключаются к локальной магистрали через порты Могут существовать два адресных пространства: пространство памяти и пространство ввода-вывода Порты обычно отображаются в адресное пространство ввода-вывода и иногда – в адресное пространство памяти Какое адресное пространство использовать определяется типом команды или типом операндов Управлением устройством ввода-вывода, приемом и передачей данных через порты и выставлением сигналов на магистрали занимаются контроллеры
13: Структура контроллера устройства
14: Вывод данных на внешнее устройство
15: Вывод данных на внешнее устройство
16: Вывод данных на внешнее устройство
17: Внешние прерывания, исключительные ситуации и программные прерывания
18: Прямой доступ к памяти (Direct memory access – DMA)
19: Основные направления различия устройств ввода-вывода Скорость обмена информацией (от нескольких байтов до нескольких Гигабайтов в секунду) Возможность использования несколькими процессами параллельно Запоминание выведенной информации для последующего ввода Символьные и блочные Только для ввода информации, только для вывода информации и read-write устройства
20: Структура системы ввода-вывода
21: Систематизация внешних устройств Символьные устройства (клавиатура, модем, терминал и т. д. ) Блочные устройства (магнитные и оптические диски и ленты и т. д. ) Сетевые устройства (сетевые карты) Все остальные (таймеры, графические дисплеи, видеокамеры и т. д. )
22: Интерфейс между базовой подсистемой ввода-вывода и драйверами
23: Функции базовой подсистемы ввода-вывода Поддержка блокирующихся, неблокирующихся и асинхронных вызовов Буферизация и кэширование входных и выходных данных Осуществление spoolingа и монопольного захвата внешних устройств Обработка ошибок и прерываний Планирование последовательности запросов на выполнение операций ввода-вывода
24: Блокирующиеся, неблокирующиеся и асинхронные вызовы При блокирующемся системном вызове процесс переходит из состояния исполнение в состояние ожидание. После выполнения операций ввода-вывода в полном объеме он разблокируется. При неблокирующемся системном вызове операции ввода-вывода могут быть выполнены неполностью. Процесс либо неблокируется совсем, либо блокируется не более чем на определенное время. При асинхронном системном вызове процесс никогда не блокируется. Операции ввода-вывода выполняются в полном объеме.
25: Буферизация и кэширование Разные скорости приема и передачи информации участников обмена Разные объемы данных, которые могут быть приняты или переданы участниками обмена единовременно Необходимость копирования данных из приложения в ядро ОС и обратно
26: Буферизация и кэширование Буфер служит для согласования параметров участников обмена информацией и для ее промежуточного хранения. Кэш применяется для ускорения доступа к данным. Кэш всегда содержит копию данных, существующих где-либо еще. Буфер часто содержит единственный экземпляр данных в системе.
27: Spooling и захват устройств Монопольный захват устройства. Spooling.
28: Обработка прерываний и ошибок
29: Определение устройства, выдавшего прерывание. Определение устройства, выдавшего прерывание. Взаимодействие с устройством. Проверка успешности выполнения операции. Попытка устранения возможных ошибок. Определение процесса, ожидающего этого прерывания. Перевод его из состояния ожидание в состояние готовность. Если есть еще процессы с неудовлетворенными запросами к этому устройству – инициализация нового запроса.
30: При занятости устройства запрос ставится в очередь к данному устройству. При занятости устройства запрос ставится в очередь к данному устройству. После освобождения устройства необходимо принять решение: какой из запросов в очереди инициировать следующим – планирование запросов.
32: Запрос полностью характеризуется: Запрос полностью характеризуется: типом операции номером цилиндра номером дорожки номером сектора Параметр планирование – время, необходимое для выполнения запроса. Время выполнения запроса transfer time positioning time Positioning time seek time positioning latency
33: Алгоритм FCFS (First Come First Served) Алгоритм FCFS (First Come First Served) Всего перемещение на 329 цилиндров Алгоритм SSTF ( Short Seek Time First) Всего перемещение на 141 цилиндр
34: Алгоритм SCAN Алгоритм SCAN Всего перемещение на 147 цилиндров Алгоритм LOOK Всего перемещение на 133 цилиндра Алгоритм C-SCAN Алгоритм C-LOOK