SlideShare una empresa de Scribd logo
1 de 33
Учебный курс
Встроенные системы и
микроконтроллеры
Тема 7. Ввод-вывод.
Система управления вводом-выводом
Кафедра прикладной информатики
Два вида деятельности
вычислительной системы
 Обработка информации
 Операции ввода-вывода
С точки зрения программиста:
Обработка информации – выполнение команд процессора над
данными, находящимися в памяти, независимо от уровня
иерархии
Ввод-вывод – обмен данными между памятью и устройствами,
внешними по отношению к ней и процессору
С точки зрения ОС:
Обработка информации – выполнение команд процессора над
данными, лежащими в памяти на уровнях не ниже основной
памяти
Ввод-вывод – все остальное
Два вида деятельности
вычислительной системы
 Обработка информации
– Что делается?
– Как делается?
 Операции ввода-вывода
– Что делается?
– Как делается?
Курсы «Алгоритмы и структуры данных» и
«Программирование»
Курс «Операционные системы»
Тема этой лекции
Общие сведения об архитектуре
компьютера
Процессор Память Диски
Монитор Клавиатура
линии
Локальная
магистраль
Общие сведения об архитектуре
компьютера
Локальная
магистраль
Процессор
Монитор
Память Диски
Клавиатура
Шина данных
Шина адреса
Шина управления
Ширина шины
– количество
линий в шине
Общие сведения об архитектуре
компьютера
Передача информации из процессора в память
1. На адресной шине выставить сигналы для адреса
памяти
2. На шине данных выставить сигналы для данных
3. На шине управления выставить сигналы работы с
памятью и операции записи
Общие сведения об архитектуре
компьютера
Память и устройства I/O
 Память:
– Локализована в пространстве
– Ячейки взаимно однозначно отображаются на линейное
адресное пространство памяти.
 Устройства I/O:
– Пространственно разнесены и подключаются к локальной
магистрали через порты ввода-вывода.
I/O I/O I/O
Порты i/o
Общие сведения об архитектуре
компьютера
Память и устройства I/O
 Память:
– Локализована в пространстве
– Ячейки взаимно однозначно отображаются на линейное
адресное пространство памяти.
 Устройства I/O:
– Пространственно разнесены и подключаются к локальной
магистрали через порты ввода-вывода.
– Порты ввода-вывода взаимно однозначно отображаются на
линейное адресное пространство ввода-вывода
(иногда на линейное адресное пространство памяти)
Общие сведения об архитектуре
компьютера
Передача информации из процессора в порт,
отображенный в адресное пространство
ввода-вывода
1. На адресной шине выставить сигналы для адреса
порта
2. На шине данных выставить сигналы для данных
3. На шине управления выставить сигналы работы с
устройствами ввода-вывода и операции записи
Общие сведения об архитектуре
компьютера
Память и устройства I/O
 Занесение информации в память завершает
операцию записи
 Занесение информации в порт часто инициализирует
реальное совершение устройства ввода-вывода
Что делать после получения информации через
порт и как предоставить информацию для
чтения из порта определяют контроллеры
устройств
Общие сведения об архитектуре
компьютера
 Устройства ввода-вывода подключаются к локальной
магистрали через порты
 Могут существовать два адресных пространства:
пространство памяти и пространство ввода-вывода
 Порты обычно отображаются в адресное
пространство ввода-вывода и иногда – в адресное
пространство памяти
 Какое адресное пространство использовать
определяется типом команды или типом операндов
 Управлением устройством ввода-вывода, приемом и
передачей данных через порты и выставлением
сигналов на магистрали занимаются контроллеры
Структура контроллера
устройства
Регистр состояния
(read only)
Бит занятости
Бит готовности данных
Бит ошибки
Регистр управления
(write only)
Биты кода команды
Биты режима работы
Бит готовности команды
Регистр выходных данных
(read only)
Регистр входных данных
(write only)
Вывод данных на внешнее устройство
Чтение из порта
регистра состояния
пока бит
занятости == 1
Процессор
Запись кода команды
в порт регистра
управления
Запись данных в порт
регистра входных
данных
Запись бита готовности
команды в порт
регистра управления
Установить
бит занятости
Анализ кода команды
Инициализация операции
вывода
После завершения
операции – сбросить
бит готовности команды
Выставить значение
бита ошибки
и сбросить бит занятости
Контроллер
Чтение из порта
регистра состояния
пока бит
занятости == 1
Polling или опрос
устройств
Вывод данных на внешнее устройство
Процессор
Линия
прерываний
1. После выполнения
команды процессор
обнаруживает сигнал на
линии прерываний
2. Сохраняет часть
регистров
3. Передает управление по
заранее определенному
адресу
4. Обрабатывает
прерывание
5. Восстанавливает
контекст
I/O
Память
I/O
Вывод данных на внешнее устройство
Процессор
1. После выполнения
команды процессор
обнаруживает сигнал на
линии прерываний
2. Сохраняет часть
регистров
3. Передает управление по
заранее определенному
адресу
4. Обрабатывает
прерывание
5. Восстанавливает
контекст
I/O
Память
Шина
прерываний
Контроллер
прерываний
I/O
Внешние прерывания,
исключительные ситуации и
программные прерывания
Внешние
прерывания
Исключительные
ситуации
Программные
прерывания
•Обнаруживаются
процессором между
выполнением команд
•Сохраняется часть
контекста перед
выполнением
следующей
команды
•Не связаны с
работой процессора
и непредсказуемы
•Обнаруживаются
во время
выполнения команды
•Сохраняется часть
контекста перед
выполнением
текущей
команды
•Связаны с работой
процессора, но
непредсказуемы
•Происходят
в результате
выполнения команды
•Сохраняется часть
контекста перед
выполнением
следующей
команды
•Связаны с работой
процессора и
предсказуемы
Прямой доступ к памяти
(Direct memory access – DMA)
1. Контроллер DMA
программируется
2. После получения сигнала
от устройства I/O
запрашивает у
процессора управление
магистралью
3. Получив управление,
выставляет адрес и
извещает устройство I/O
4. Используя шины данных
и управления совместно
с устройством I/O
передает информацию
5. Возвращает управление
магистралью
I/O
Память
Контроллер
прерываний
Процессор
Контроллер
DMA
I/O
Канал
DMA
Основные направления различия
устройств ввода-вывода
 Скорость обмена информацией (от нескольких
байтов до нескольких Гигабайтов в секунду)
 Возможность использования несколькими
процессами параллельно
 Запоминание выведенной информации для
последующего ввода
 Символьные и блочные
 Только для ввода информации, только для вывода
информации и read-write устройства
Структура системы ввода-вывода
клавиатура мышь монитор IDE диски SCSI диски
Контроллер
клавиатуры
Контроллер
мыши
Контроллер
монитора
IDE
контроллер
SCSI
контроллер
Hardware
Драйвер
клавиатуры
Драйвер
мыши
Драйвер
монитора
IDE
драйвер
SCSI
драйвер
Базовая подсистема ввода-вывода
Остальные части ядра ОС и пользовательские процессы
Систематизация внешних устройств
 Символьные устройства (клавиатура, модем,
терминал и т.д.)
 Блочные устройства (магнитные и оптические диски и
ленты и т.д.)
 Сетевые устройства (сетевые карты)
 Все остальные (таймеры, графические дисплеи,
видеокамеры и т.д.)
Интерфейс между базовой подсистемой
ввода-вывода и драйверами
Символьные
устройства
Блочные
устройства
Ввести символ – get
Вывести символ – put
Прочитать блок – read
Записать блок – write
Найти блок – seek
Выполнить произвольную команду – ioctl
(Ре)инициализировать драйвер и устройство – open
Временно завершить работу с устройством – close
Остановить работу драйвера – stop
Опросить состояние устройства – poll
Функции
базовой подсистемы ввода-вывода
 Поддержка блокирующихся, неблокирующихся и
асинхронных вызовов
 Буферизация и кэширование входных и выходных
данных
 Осуществление spooling’а и монопольного захвата
внешних устройств
 Обработка ошибок и прерываний
 Планирование последовательности запросов на
выполнение операций ввода-вывода
Блокирующиеся, неблокирующиеся и
асинхронные вызовы
 При блокирующемся системном вызове процесс переходит из
состояния исполнение в состояние ожидание. После
выполнения операций ввода-вывода в полном объеме он
разблокируется.
 При неблокирующемся системном вызове операции ввода-
вывода могут быть выполнены неполностью. Процесс либо
неблокируется совсем, либо блокируется не более чем на
определенное время.
 При асинхронном системном вызове процесс никогда не
блокируется. Операции ввода-вывода выполняются в полном
объеме.
Буферизация и кэширование
 Разные скорости приема и передачи информации участников
обмена
 Разные объемы данных, которые могут быть приняты или
переданы участниками обмена единовременно
 Необходимость копирования данных из приложения в ядро ОС и
обратно
Буфер – область памяти для запоминания информации
при обмене данными между устройствами, процессами
или между устройством и процессом
Причины буферизации в базовой подсистеме
ввода-вывода
Буферизация и кэширование
 Буфер служит для согласования параметров участников обмена
информацией и для ее промежуточного хранения. Кэш
применяется для ускорения доступа к данным.
 Кэш всегда содержит копию данных, существующих где-либо
еще. Буфер часто содержит единственный экземпляр данных в
системе.
Кэш (cache) – область быстрой памяти, содержащая
копию данных, расположенных где-либо в более
медленной памяти, предназначенная для ускорения
работы вычислительной системы
Разница между кэшем и буфером
Spooling и захват устройств
 Монопольный захват устройства.
 Spooling.
Spool – буфер, содержащий входные или выходные
данные для устройства, на котором следует избегать
чередования его использования различными процессами
Способы использования неразделяемых устройств
Обработка прерываний и ошибок
Ожидание
Исполнение
Прерывание
Выполнение кода ОС
Работа hardware
Сохранение
контекста
Обработка
прерывания
Готовность Исполнение
Готовность
Планирование
Работа hardware
Выполнение кода ОС
Восстановление
контекста
Выполнение кода
пользователя
Выполнение кода
пользователя
 Определение устройства, выдавшего прерывание.
 Взаимодействие с устройством.
 Проверка успешности выполнения операции.
 Попытка устранения возможных ошибок.
 Определение процесса, ожидающего этого прерывания.
Перевод его из состояния ожидание в состояние готовность.
 Если есть еще процессы с неудовлетворенными запросами к
этому устройству – инициализация нового запроса.
Действия операционной системы
Обработка прерываний и ошибок
Действия по обработке прерывания и компенсации
ошибок могут быть частично делегированы драйверу
устройства – функция intr в интерфейсе драйвера
 При занятости устройства запрос ставится в очередь к данному
устройству.
 После освобождения устройства необходимо принять решение:
какой из запросов в очереди инициировать следующим –
планирование запросов.
Для блокирующихся и асинхронных системных
вызовов
Планирование запросов
Действия по планированию запросов могут быть частично
или полностью делегированы драйверу устройства –
функция strategy в интерфейсе драйвера
Строение жесткого диска
Алгоритмы планирования запросов
к жесткому диску
Параметры планирования
Алгоритмы планирования запросов
к жесткому диску
 Запрос полностью характеризуется:
– типом операции
– номером цилиндра
– номером дорожки
– номером сектора
 Параметр планирование – время, необходимое для выполнения
запроса.
Время выполнения запроса = transfer time + positioning time
Positioning time = seek time + positioning latency
Единственным параметром запроса остается seek time –
время пропорциональное разнице между номером
цилиндра в запросе и номером текущего цилиндра
Диск имеет 100 цилиндров (от 0 до 99)
Очередь запросов: 23, 67, 55, 14, 31, 7, 84, 10
Текущий цилиндр – 63
Алгоритмы планирования запросов
к жесткому диску
 Алгоритм FCFS (First Come First Served)
Всего перемещение на 329 цилиндров
 Алгоритм SSTF ( Short Seek Time First)
Всего перемещение на 141 цилиндр
63 -> 23 -> 67-> 55 -> 31-> 14 -> 07 -> 84 -> 10
63 -> 67 -> 55-> 31 -> 14-> 23 -> 10 -> 07 -> 84
Диск имеет 100 цилиндров (от 0 до 99)
Очередь запросов: 23, 67, 55, 14, 31, 7, 84, 10
Текущий цилиндр – 63
Алгоритмы планирования запросов
к жесткому диску
 Алгоритм SCAN
Всего перемещение на 147 цилиндров
 Алгоритм LOOK
Всего перемещение на 133 цилиндра
 Алгоритм C-SCAN
 Алгоритм C-LOOK
63 -> 55 -> 31-> 23 -> 10-> 14 -> 07 -> 67 -> 84
63 -> 55 -> 31-> 23 -> 10-> 14 -> 07 -> 67 -> 84
-> 0
63 -> 55 -> 31-> 23 -> 10-> 14 -> 07 -> 84 ->67
63 -> 55 -> 31-> 23 -> 10-> 14 -> 07 -> 84 -> 67-> 0 -> 99

Más contenido relacionado

La actualidad más candente

025
025025
025
JIuc
 
41
4141
41
JIuc
 
023
023023
023
JIuc
 
033
033033
033
JIuc
 
42
4242
42
JIuc
 
тест треннинг по архитектуре
тест треннинг по архитектуретест треннинг по архитектуре
тест треннинг по архитектуре
JIuc
 
презентация по информатике
презентация по информатикепрезентация по информатике
презентация по информатике
SEZY216
 
23
2323
23
JIuc
 
24
2424
24
JIuc
 
Аппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераАппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютера
student_SSGA
 
Materinskaya plata ppt
Materinskaya plata pptMaterinskaya plata ppt
Materinskaya plata ppt
KozinskaIS
 

La actualidad más candente (20)

Устройство персонального компьютера
Устройство персонального компьютераУстройство персонального компьютера
Устройство персонального компьютера
 
025
025025
025
 
1
11
1
 
41
4141
41
 
023
023023
023
 
033
033033
033
 
[DD] 10. Memory
[DD] 10. Memory[DD] 10. Memory
[DD] 10. Memory
 
Medical informatics
Medical informaticsMedical informatics
Medical informatics
 
42
4242
42
 
тест треннинг по архитектуре
тест треннинг по архитектуретест треннинг по архитектуре
тест треннинг по архитектуре
 
Внутренняя память компьютера
Внутренняя память компьютераВнутренняя память компьютера
Внутренняя память компьютера
 
Cистемное программное обеспечение
Cистемное программное обеспечениеCистемное программное обеспечение
Cистемное программное обеспечение
 
презентация по информатике
презентация по информатикепрезентация по информатике
презентация по информатике
 
23
2323
23
 
lecture-monitoring and performance tuning of the computer
lecture-monitoring and performance tuning of the computerlecture-monitoring and performance tuning of the computer
lecture-monitoring and performance tuning of the computer
 
24
2424
24
 
Аппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераАппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютера
 
Процессор
ПроцессорПроцессор
Процессор
 
Materinskaya plata ppt
Materinskaya plata pptMaterinskaya plata ppt
Materinskaya plata ppt
 
ОС в реальном времени
ОС в реальном времениОС в реальном времени
ОС в реальном времени
 

Destacado

архитектура компьютера
архитектура компьютераархитектура компьютера
архитектура компьютера
Maniaks_Doll
 
39
3939
39
JIuc
 
арихектура копьютера
арихектура копьютераарихектура копьютера
арихектура копьютера
IAMURBAN
 
Лекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и системЛекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и систем
pianist2317
 
35
3535
35
JIuc
 
Лекция №11 Организация ЭВМ и систем
Лекция №11 Организация ЭВМ и системЛекция №11 Организация ЭВМ и систем
Лекция №11 Организация ЭВМ и систем
pianist2317
 
материнская плата
материнская платаматеринская плата
материнская плата
AnnKar16
 

Destacado (20)

Theme 06
Theme 06Theme 06
Theme 06
 
архитектура компьютера
архитектура компьютераархитектура компьютера
архитектура компьютера
 
39
3939
39
 
36арл
36арл36арл
36арл
 
арихектура копьютера
арихектура копьютераарихектура копьютера
арихектура копьютера
 
Лекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и системЛекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и систем
 
35
3535
35
 
4
44
4
 
системный блок матплата
системный блок матплатасистемный блок матплата
системный блок матплата
 
материнская плата
материнская платаматеринская плата
материнская плата
 
Лекция №11 Организация ЭВМ и систем
Лекция №11 Организация ЭВМ и системЛекция №11 Организация ЭВМ и систем
Лекция №11 Организация ЭВМ и систем
 
схема компьютера
схема компьютерасхема компьютера
схема компьютера
 
материнская плата
материнская платаматеринская плата
материнская плата
 
Prez osob mikroproc
Prez osob mikroprocPrez osob mikroproc
Prez osob mikroproc
 
пк
пкпк
пк
 
Материнская плата
Материнская платаМатеринская плата
Материнская плата
 
презентация
презентацияпрезентация
презентация
 
Информатика (архитектура)
Информатика (архитектура)Информатика (архитектура)
Информатика (архитектура)
 
Управление данными (транзакции)
Управление данными (транзакции)Управление данными (транзакции)
Управление данными (транзакции)
 
архитектура компьютера
архитектура компьютераархитектура компьютера
архитектура компьютера
 

Similar a Theme 07

Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и систем
pianist2317
 
тема 2 2.техническое обеспечение компьютера
тема 2 2.техническое обеспечение компьютератема 2 2.техническое обеспечение компьютера
тема 2 2.техническое обеспечение компьютера
mrprizrak
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Mikhail Kurnosov
 
тест по темам принцип открытой архитектуры
тест по темам принцип открытой архитектурытест по темам принцип открытой архитектуры
тест по темам принцип открытой архитектуры
JIuc
 
Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора
Yandex
 
архитектура компьютера
архитектура компьютераархитектура компьютера
архитектура компьютера
Marina Arcebaseva
 
архитектура компьютера
архитектура компьютераархитектура компьютера
архитектура компьютера
Marina Arcebaseva
 
процессоры
процессорыпроцессоры
процессоры
ttku
 
вычислительные системы, сети и системы связи
вычислительные системы, сети и системы связивычислительные системы, сети и системы связи
вычислительные системы, сети и системы связи
Bysh46
 

Similar a Theme 07 (20)

Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и систем
 
Лекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и системЛекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и систем
 
тема 2 2.техническое обеспечение компьютера
тема 2 2.техническое обеспечение компьютератема 2 2.техническое обеспечение компьютера
тема 2 2.техническое обеспечение компьютера
 
Микропроцессорная техника
Микропроцессорная техникаМикропроцессорная техника
Микропроцессорная техника
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4
 
лекция 2
лекция 2лекция 2
лекция 2
 
тест по темам принцип открытой архитектуры
тест по темам принцип открытой архитектурытест по темам принцип открытой архитектуры
тест по темам принцип открытой архитектуры
 
Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора
 
Конструкция и компоновка персонального компьютера
Конструкция и компоновка персонального компьютераКонструкция и компоновка персонального компьютера
Конструкция и компоновка персонального компьютера
 
архитектура компьютера
архитектура компьютераархитектура компьютера
архитектура компьютера
 
архитектура компьютера
архитектура компьютераархитектура компьютера
архитектура компьютера
 
презентация 2
презентация 2презентация 2
презентация 2
 
внутреннее устройство пк
внутреннее устройство пквнутреннее устройство пк
внутреннее устройство пк
 
устройство пк
устройство пкустройство пк
устройство пк
 
prezlec_Історія.ppt
prezlec_Історія.pptprezlec_Історія.ppt
prezlec_Історія.ppt
 
Магистрально модульный принцип построения пк
Магистрально модульный принцип построения пкМагистрально модульный принцип построения пк
Магистрально модульный принцип построения пк
 
процессоры
процессорыпроцессоры
процессоры
 
вычислительные системы, сети и системы связи
вычислительные системы, сети и системы связивычислительные системы, сети и системы связи
вычислительные системы, сети и системы связи
 
Presentation
PresentationPresentation
Presentation
 

Theme 07

  • 1. Учебный курс Встроенные системы и микроконтроллеры Тема 7. Ввод-вывод. Система управления вводом-выводом Кафедра прикладной информатики
  • 2. Два вида деятельности вычислительной системы  Обработка информации  Операции ввода-вывода С точки зрения программиста: Обработка информации – выполнение команд процессора над данными, находящимися в памяти, независимо от уровня иерархии Ввод-вывод – обмен данными между памятью и устройствами, внешними по отношению к ней и процессору С точки зрения ОС: Обработка информации – выполнение команд процессора над данными, лежащими в памяти на уровнях не ниже основной памяти Ввод-вывод – все остальное
  • 3. Два вида деятельности вычислительной системы  Обработка информации – Что делается? – Как делается?  Операции ввода-вывода – Что делается? – Как делается? Курсы «Алгоритмы и структуры данных» и «Программирование» Курс «Операционные системы» Тема этой лекции
  • 4. Общие сведения об архитектуре компьютера Процессор Память Диски Монитор Клавиатура линии Локальная магистраль
  • 5. Общие сведения об архитектуре компьютера Локальная магистраль Процессор Монитор Память Диски Клавиатура Шина данных Шина адреса Шина управления Ширина шины – количество линий в шине
  • 6. Общие сведения об архитектуре компьютера Передача информации из процессора в память 1. На адресной шине выставить сигналы для адреса памяти 2. На шине данных выставить сигналы для данных 3. На шине управления выставить сигналы работы с памятью и операции записи
  • 7. Общие сведения об архитектуре компьютера Память и устройства I/O  Память: – Локализована в пространстве – Ячейки взаимно однозначно отображаются на линейное адресное пространство памяти.  Устройства I/O: – Пространственно разнесены и подключаются к локальной магистрали через порты ввода-вывода. I/O I/O I/O Порты i/o
  • 8. Общие сведения об архитектуре компьютера Память и устройства I/O  Память: – Локализована в пространстве – Ячейки взаимно однозначно отображаются на линейное адресное пространство памяти.  Устройства I/O: – Пространственно разнесены и подключаются к локальной магистрали через порты ввода-вывода. – Порты ввода-вывода взаимно однозначно отображаются на линейное адресное пространство ввода-вывода (иногда на линейное адресное пространство памяти)
  • 9. Общие сведения об архитектуре компьютера Передача информации из процессора в порт, отображенный в адресное пространство ввода-вывода 1. На адресной шине выставить сигналы для адреса порта 2. На шине данных выставить сигналы для данных 3. На шине управления выставить сигналы работы с устройствами ввода-вывода и операции записи
  • 10. Общие сведения об архитектуре компьютера Память и устройства I/O  Занесение информации в память завершает операцию записи  Занесение информации в порт часто инициализирует реальное совершение устройства ввода-вывода Что делать после получения информации через порт и как предоставить информацию для чтения из порта определяют контроллеры устройств
  • 11. Общие сведения об архитектуре компьютера  Устройства ввода-вывода подключаются к локальной магистрали через порты  Могут существовать два адресных пространства: пространство памяти и пространство ввода-вывода  Порты обычно отображаются в адресное пространство ввода-вывода и иногда – в адресное пространство памяти  Какое адресное пространство использовать определяется типом команды или типом операндов  Управлением устройством ввода-вывода, приемом и передачей данных через порты и выставлением сигналов на магистрали занимаются контроллеры
  • 12. Структура контроллера устройства Регистр состояния (read only) Бит занятости Бит готовности данных Бит ошибки Регистр управления (write only) Биты кода команды Биты режима работы Бит готовности команды Регистр выходных данных (read only) Регистр входных данных (write only)
  • 13. Вывод данных на внешнее устройство Чтение из порта регистра состояния пока бит занятости == 1 Процессор Запись кода команды в порт регистра управления Запись данных в порт регистра входных данных Запись бита готовности команды в порт регистра управления Установить бит занятости Анализ кода команды Инициализация операции вывода После завершения операции – сбросить бит готовности команды Выставить значение бита ошибки и сбросить бит занятости Контроллер Чтение из порта регистра состояния пока бит занятости == 1 Polling или опрос устройств
  • 14. Вывод данных на внешнее устройство Процессор Линия прерываний 1. После выполнения команды процессор обнаруживает сигнал на линии прерываний 2. Сохраняет часть регистров 3. Передает управление по заранее определенному адресу 4. Обрабатывает прерывание 5. Восстанавливает контекст I/O Память I/O
  • 15. Вывод данных на внешнее устройство Процессор 1. После выполнения команды процессор обнаруживает сигнал на линии прерываний 2. Сохраняет часть регистров 3. Передает управление по заранее определенному адресу 4. Обрабатывает прерывание 5. Восстанавливает контекст I/O Память Шина прерываний Контроллер прерываний I/O
  • 16. Внешние прерывания, исключительные ситуации и программные прерывания Внешние прерывания Исключительные ситуации Программные прерывания •Обнаруживаются процессором между выполнением команд •Сохраняется часть контекста перед выполнением следующей команды •Не связаны с работой процессора и непредсказуемы •Обнаруживаются во время выполнения команды •Сохраняется часть контекста перед выполнением текущей команды •Связаны с работой процессора, но непредсказуемы •Происходят в результате выполнения команды •Сохраняется часть контекста перед выполнением следующей команды •Связаны с работой процессора и предсказуемы
  • 17. Прямой доступ к памяти (Direct memory access – DMA) 1. Контроллер DMA программируется 2. После получения сигнала от устройства I/O запрашивает у процессора управление магистралью 3. Получив управление, выставляет адрес и извещает устройство I/O 4. Используя шины данных и управления совместно с устройством I/O передает информацию 5. Возвращает управление магистралью I/O Память Контроллер прерываний Процессор Контроллер DMA I/O Канал DMA
  • 18. Основные направления различия устройств ввода-вывода  Скорость обмена информацией (от нескольких байтов до нескольких Гигабайтов в секунду)  Возможность использования несколькими процессами параллельно  Запоминание выведенной информации для последующего ввода  Символьные и блочные  Только для ввода информации, только для вывода информации и read-write устройства
  • 19. Структура системы ввода-вывода клавиатура мышь монитор IDE диски SCSI диски Контроллер клавиатуры Контроллер мыши Контроллер монитора IDE контроллер SCSI контроллер Hardware Драйвер клавиатуры Драйвер мыши Драйвер монитора IDE драйвер SCSI драйвер Базовая подсистема ввода-вывода Остальные части ядра ОС и пользовательские процессы
  • 20. Систематизация внешних устройств  Символьные устройства (клавиатура, модем, терминал и т.д.)  Блочные устройства (магнитные и оптические диски и ленты и т.д.)  Сетевые устройства (сетевые карты)  Все остальные (таймеры, графические дисплеи, видеокамеры и т.д.)
  • 21. Интерфейс между базовой подсистемой ввода-вывода и драйверами Символьные устройства Блочные устройства Ввести символ – get Вывести символ – put Прочитать блок – read Записать блок – write Найти блок – seek Выполнить произвольную команду – ioctl (Ре)инициализировать драйвер и устройство – open Временно завершить работу с устройством – close Остановить работу драйвера – stop Опросить состояние устройства – poll
  • 22. Функции базовой подсистемы ввода-вывода  Поддержка блокирующихся, неблокирующихся и асинхронных вызовов  Буферизация и кэширование входных и выходных данных  Осуществление spooling’а и монопольного захвата внешних устройств  Обработка ошибок и прерываний  Планирование последовательности запросов на выполнение операций ввода-вывода
  • 23. Блокирующиеся, неблокирующиеся и асинхронные вызовы  При блокирующемся системном вызове процесс переходит из состояния исполнение в состояние ожидание. После выполнения операций ввода-вывода в полном объеме он разблокируется.  При неблокирующемся системном вызове операции ввода- вывода могут быть выполнены неполностью. Процесс либо неблокируется совсем, либо блокируется не более чем на определенное время.  При асинхронном системном вызове процесс никогда не блокируется. Операции ввода-вывода выполняются в полном объеме.
  • 24. Буферизация и кэширование  Разные скорости приема и передачи информации участников обмена  Разные объемы данных, которые могут быть приняты или переданы участниками обмена единовременно  Необходимость копирования данных из приложения в ядро ОС и обратно Буфер – область памяти для запоминания информации при обмене данными между устройствами, процессами или между устройством и процессом Причины буферизации в базовой подсистеме ввода-вывода
  • 25. Буферизация и кэширование  Буфер служит для согласования параметров участников обмена информацией и для ее промежуточного хранения. Кэш применяется для ускорения доступа к данным.  Кэш всегда содержит копию данных, существующих где-либо еще. Буфер часто содержит единственный экземпляр данных в системе. Кэш (cache) – область быстрой памяти, содержащая копию данных, расположенных где-либо в более медленной памяти, предназначенная для ускорения работы вычислительной системы Разница между кэшем и буфером
  • 26. Spooling и захват устройств  Монопольный захват устройства.  Spooling. Spool – буфер, содержащий входные или выходные данные для устройства, на котором следует избегать чередования его использования различными процессами Способы использования неразделяемых устройств
  • 27. Обработка прерываний и ошибок Ожидание Исполнение Прерывание Выполнение кода ОС Работа hardware Сохранение контекста Обработка прерывания Готовность Исполнение Готовность Планирование Работа hardware Выполнение кода ОС Восстановление контекста Выполнение кода пользователя Выполнение кода пользователя
  • 28.  Определение устройства, выдавшего прерывание.  Взаимодействие с устройством.  Проверка успешности выполнения операции.  Попытка устранения возможных ошибок.  Определение процесса, ожидающего этого прерывания. Перевод его из состояния ожидание в состояние готовность.  Если есть еще процессы с неудовлетворенными запросами к этому устройству – инициализация нового запроса. Действия операционной системы Обработка прерываний и ошибок Действия по обработке прерывания и компенсации ошибок могут быть частично делегированы драйверу устройства – функция intr в интерфейсе драйвера
  • 29.  При занятости устройства запрос ставится в очередь к данному устройству.  После освобождения устройства необходимо принять решение: какой из запросов в очереди инициировать следующим – планирование запросов. Для блокирующихся и асинхронных системных вызовов Планирование запросов Действия по планированию запросов могут быть частично или полностью делегированы драйверу устройства – функция strategy в интерфейсе драйвера
  • 30. Строение жесткого диска Алгоритмы планирования запросов к жесткому диску
  • 31. Параметры планирования Алгоритмы планирования запросов к жесткому диску  Запрос полностью характеризуется: – типом операции – номером цилиндра – номером дорожки – номером сектора  Параметр планирование – время, необходимое для выполнения запроса. Время выполнения запроса = transfer time + positioning time Positioning time = seek time + positioning latency Единственным параметром запроса остается seek time – время пропорциональное разнице между номером цилиндра в запросе и номером текущего цилиндра
  • 32. Диск имеет 100 цилиндров (от 0 до 99) Очередь запросов: 23, 67, 55, 14, 31, 7, 84, 10 Текущий цилиндр – 63 Алгоритмы планирования запросов к жесткому диску  Алгоритм FCFS (First Come First Served) Всего перемещение на 329 цилиндров  Алгоритм SSTF ( Short Seek Time First) Всего перемещение на 141 цилиндр 63 -> 23 -> 67-> 55 -> 31-> 14 -> 07 -> 84 -> 10 63 -> 67 -> 55-> 31 -> 14-> 23 -> 10 -> 07 -> 84
  • 33. Диск имеет 100 цилиндров (от 0 до 99) Очередь запросов: 23, 67, 55, 14, 31, 7, 84, 10 Текущий цилиндр – 63 Алгоритмы планирования запросов к жесткому диску  Алгоритм SCAN Всего перемещение на 147 цилиндров  Алгоритм LOOK Всего перемещение на 133 цилиндра  Алгоритм C-SCAN  Алгоритм C-LOOK 63 -> 55 -> 31-> 23 -> 10-> 14 -> 07 -> 67 -> 84 63 -> 55 -> 31-> 23 -> 10-> 14 -> 07 -> 67 -> 84 -> 0 63 -> 55 -> 31-> 23 -> 10-> 14 -> 07 -> 84 ->67 63 -> 55 -> 31-> 23 -> 10-> 14 -> 07 -> 84 -> 67-> 0 -> 99