Основы операционных систем. Лекция 12

Содержание

Слайд 2

Вывод данных на внешнее устройство Чтение из порта регистра состояния пока

Вывод данных на внешнее устройство

Чтение из порта регистра состояния

пока бит занятости

== 1

Процессор

Запись кода команды в порт регистра управления

Запись данных в порт регистра входных данных

Запись бита готовности
команды в порт регистра управления

Установить бит занятости

Анализ кода команды
Инициализация операции вывода

После завершения операции – сбросить бит готовности команды

Выставить значение бита ошибки и сбросить бит занятости

Контроллер

Чтение из порта регистра состояния

пока бит занятости == 1

Polling или опрос устройств

Слайд 3

Вывод данных на внешнее устройство Процессор Линия прерываний После выполнения команды

Вывод данных на внешнее устройство

Процессор

Линия прерываний

После выполнения команды процессор обнаруживает сигнал на

линии прерываний
Сохраняет часть регистров
Передает управление по заранее определенному адресу
Обрабатывает прерывание
Восстанавливает контекст

I/O

Память

I/O

Слайд 4

Вывод данных на внешнее устройство Процессор После выполнения команды процессор обнаруживает

Вывод данных на внешнее устройство

Процессор

После выполнения команды процессор обнаруживает сигнал на

линии прерываний
Сохраняет часть регистров
Передает управление по заранее определенному адресу
Обрабатывает прерывание
Восстанавливает контекст

I/O

Память

Шина прерываний

Контроллер прерываний

I/O

Слайд 5

Внешние прерывания, исключительные ситуации и программные прерывания Внешние прерывания Исключительные ситуации

Внешние прерывания, исключительные ситуации и программные прерывания

Внешние прерывания

Исключительные ситуации

Программные прерывания

Обнаруживаются процессором между

выполнением команд
Сохраняется часть контекста перед выполнением следующей команды
Не связаны с работой процессора и непредсказуемы

Обнаруживаются во время выполнения команды
Сохраняется часть контекста перед выполнением текущей команды
Связаны с работой процессора, но непредсказуемы

Происходят в результате выполнения команды
Сохраняется часть контекста перед выполнением следующей команды
Связаны с работой процессора и предсказуемы

Слайд 6

Прямой доступ к памяти (Direct memory access – DMA) Контроллер DMA

Прямой доступ к памяти (Direct memory access – DMA)

Контроллер DMA программируется
После

получения сигнала от устройства I/O запрашивает у процессора управление магистралью
Получив управление, выставляет адрес и извещает устройство I/O
Используя шины данных и управления совместно с устройством I/O передает информацию
Возвращает управление магистралью

I/O

Память

Контроллер прерываний

Процессор

Контроллер DMA

I/O

Канал DMA

Слайд 7

Основные направления различия устройств ввода-вывода Скорость обмена информацией (от нескольких байтов

Основные направления различия устройств ввода-вывода

Скорость обмена информацией (от нескольких байтов до

нескольких Гигабайтов в секунду)
Возможность использования несколькими процессами параллельно
Запоминание выведенной информации для последующего ввода
Символьные и блочные
Только для ввода информации, только для вывода информации и read-write устройства
Слайд 8

Структура системы ввода-вывода клавиатура мышь монитор IDE диски SCSI диски Контроллер

Структура системы ввода-вывода

клавиатура

мышь

монитор

IDE диски

SCSI диски

Контроллер клавиатуры

Контроллер мыши

Контроллер монитора

IDE контроллер

SCSI
контроллер

Hardware

Драйвер клавиатуры

Драйвер мыши

Драйвер монитора

IDE драйвер

SCSI драйвер

Базовая подсистема ввода-вывода

Остальные части ядра

ОС и пользовательские процессы
Слайд 9

Систематизация внешних устройств Символьные устройства (клавиатура, модем, терминал и т.д.) Блочные

Систематизация внешних устройств

Символьные устройства (клавиатура, модем, терминал и т.д.)
Блочные устройства (магнитные

и оптические диски и ленты и т.д.)
Сетевые устройства (сетевые карты)
Все остальные (таймеры, графические дисплеи, видеокамеры и т.д.)
Слайд 10

Интерфейс между базовой подсистемой ввода-вывода и драйверами Символьные устройства Блочные устройства

Интерфейс между базовой подсистемой ввода-вывода и драйверами

Символьные устройства

Блочные устройства

Ввести символ –

get
Вывести символ – put

Прочитать блок – read
Записать блок – write
Найти блок – seek

Выполнить произвольную команду – ioctl
(Ре)инициализировать драйвер и устройство – open
Временно завершить работу с устройством – close
Остановить работу драйвера – stop
Опросить состояние устройства – poll

Слайд 11

Функции базовой подсистемы ввода-вывода Поддержка блокирующихся, неблокирующихся и асинхронных вызовов Буферизация

Функции базовой подсистемы ввода-вывода

Поддержка блокирующихся, неблокирующихся и асинхронных вызовов
Буферизация и кэширование

входных и выходных данных
Осуществление spooling’а и монопольного захвата внешних устройств
Обработка ошибок и прерываний
Планирование последовательности запросов на выполнение операций ввода-вывода
Слайд 12

Блокирующиеся, неблокирующиеся и асинхронные вызовы При блокирующемся системном вызове процесс переходит

Блокирующиеся, неблокирующиеся и асинхронные вызовы

При блокирующемся системном вызове процесс переходит из

состояния исполнение в состояние ожидание. После выполнения операций ввода-вывода в полном объеме он разблокируется.
При неблокирующемся системном вызове операции ввода-вывода могут быть выполнены неполностью. Процесс либо неблокируется совсем, либо блокируется не более чем на определенное время.
При асинхронном системном вызове процесс никогда не блокируется. Операции ввода-вывода выполняются в полном объеме.
Слайд 13

Буферизация и кэширование Разные скорости приема и передачи информации участников обмена

Буферизация и кэширование

Разные скорости приема и передачи информации участников обмена
Разные объемы

данных, которые могут быть приняты или переданы участниками обмена единовременно
Необходимость копирования данных из приложения в ядро ОС и обратно

Буфер – область памяти для запоминания информации при обмене данными между устройствами, процессами или между устройством и процессом

Причины буферизации в базовой подсистеме ввода-вывода

Слайд 14

Буферизация и кэширование Буфер служит для согласования параметров участников обмена информацией

Буферизация и кэширование

Буфер служит для согласования параметров участников обмена информацией и

для ее промежуточного хранения. Кэш применяется для ускорения доступа к данным.
Кэш всегда содержит копию данных, существующих где-либо еще. Буфер часто содержит единственный экземпляр данных в системе.

Кэш (cache) – область быстрой памяти, содержащая копию данных, расположенных где-либо в более медленной памяти, предназначенная для ускорения работы вычислительной системы

Разница между кэшем и буфером

Слайд 15

Spooling и захват устройств Монопольный захват устройства. Spooling. Spool – буфер,

Spooling и захват устройств

Монопольный захват устройства.
Spooling.

Spool – буфер, содержащий входные или

выходные данные для устройства, на котором следует избегать чередования его использования различными процессами

Способы использования неразделяемых устройств

Слайд 16

Обработка прерываний и ошибок Ожидание Исполнение Прерывание Выполнение кода ОС Работа

Обработка прерываний и ошибок

Ожидание

Исполнение

Прерывание

Выполнение кода ОС

Работа hardware

Сохранение контекста

Обработка прерывания

Готовность

Исполнение

Готовность

Планирование

Работа hardware

Выполнение кода

ОС

Восстановление контекста

Выполнение кода пользователя

Выполнение кода пользователя