
- •Тема 4: Подсистема ввода/вывода
- •Тема 4: Подсистема ввода/вывода
- •Тема 4: Подсистема ввода/вывода и файловые системы
- •4.1. Устройства ввода-вывода
- •Различия в характеристиках устройств ввода-вывода
- •Gigabit Ethernet
- •Состав устройств ввода/вывода
- •Состав устройств ввода/вывода
- •Состав устройств ввода/вывода
- •Контроллер
- •Контроллер
- •4.2. Основные функции подсистемы ввода-вывода
- •4.2. Основные функции подсистемы ввода-вывода
- •4.2. Основные функции подсистемы ввода-вывода
- •4.2. Основные функции подсистемы ввода-вывода
- •4.2.1.Основные функции подсистемы ввода-вывода
- •4.2.1. Основные функции подсистемы ввода-вывода
- •4.2.1. Основные функции подсистемы ввода-вывода
- •4.2.2. Организация параллельной работы устройств ввода-вывода и процессора
- •Текущая команда программы
- •1.Программируемый ввод-вывод без прерываний
- •Текущая команда программы
- •2. Ввод вывод, управляемый
- •2. Ввод вывод, управляемый прерываниями
- •2. Ввод вывод, управляемый прерываниями
- •2. Ввод вывод, управляемый прерываниями
- •Текущая команда программы
- •Работа1 DMA-контроллера
- •Работа1 DMA-контроллера
- •Работа1 DMA-контроллера
- •Работа1 DMA-контроллера
- •Этот механизм называется захватом цикла, потому что контроллер устройства периодически забирает случайный цикл
- •Работа1 DMA-контроллера
- •Работа1 DMA-контроллера
- •Работа1 DMA-контроллера
- •Устройства ввода
- •4.2.3. Согласование скоростей обмена и кэширование
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •Время обработки блока данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование данных
- •4.2.3. Согласование скоростей обмена и кэширование
- •4.2.3. Согласование скоростей обмена и кэширование
- •4.2.3. Согласование скоростей обмена и кэширование
- •4.2.3. Согласование скоростей обмена и кэширование
- •4.2.3. Согласование скоростей обмена и кэширование
- •4.2.3. Согласование скоростей обмена и кэширование
- •4.2.3. Согласование скоростей обмена и кэширование
- •4.2.3. Согласование скоростей обмена и кэширование
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.4. Разделение устройств и данных между процессами
- •4.2.5.Обеспечение логического интерфейса между устройствами
- •4.2.5.Обеспечение логического интерфейса между устройствами
- •4.2.6. Поддержка широкого спектра драйверов Разнообразный набор драйверов для широкого
- •4.2.6. Поддержка широкого спектра драйверов Поэтому существует два вида интерфейсов:
- •4.2.6. Поддержка широкого спектра драйверов Интерфейс «драйвер-ядро» должен быть
- •4.2.6. Поддержка широкого спектра драйверов Эти интерфейсы включают наборы процедур,
- •Функции драйвера
- •4.2.6. Поддержка широкого спектра драйверов
- •4.2.6. Поддержка широкого спектра драйверов
- •4.2.6. Поддержка широкого спектра драйверов
- •4.2.6. Поддержка широкого спектра драйверов
- •4.2.7. Динамическая выгрузка и загрузка драйверов
- •4.2.7. Динамическая выгрузка и загрузка драйверов
- •4.2.7. Динамическая выгрузка и загрузка драйверов
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8.Основные системные таблицы ввода вывода
- •4.2.8.Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8.Основные системные таблицы ввода вывода
- •4.2.8.Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8.Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.8. Основные системные таблицы ввода вывода
- •4.2.9. Поддержка синхронных и асинхронных операций ввода-вывода
- •4.2.9. Поддержка синхронных и асинхронных операций ввода-вывода
- •4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.2.8. Поддержка синхронных и асинхронных
- •4.3. Многослойная модель подсистемы ввода/вывода 4.3.1. Общая схема
- •4.3.Многослойная модель подсистемы ввода/вывода
- •4.3.Многослойная модель подсистемы ввода/вывода
- •4.3.Многослойная модель подсистемы ввода/вывода
- •4.3.Многослойная модель подсистемы ввода/вывода
- •4.3.Многослойная модель подсистемы ввода/вывода
- •4.3.Многослойная модель подсистемы ввода/вывода
- •4.3.Многослойная модель подсистемы ввода/вывода
- •4.3.Многослойная модель подсистемы ввода/вывода
- •4.3.Многослойная модель подсистемы ввода/вывода
- •4.3.2. Драйверы
- •4.3.2. Драйверы
- •4.3.2. Драйверы
- •4.3.2. Драйверы
- •4.3.2. Драйверы
- •4.3.2. Драйверы
- •4.3.2.Драйверы
- •4.3.2. Драйверы Однако не все устройства, управляемые
- •4.3.2. Драйверы
- •Драйверы
- •4.4.Файловая система
- •4.4.Файловая система
- •Задачи файловой системы
- •Требования к файловой системе со стороны пользователя диалоговой системы общего назначения
- •4.4.2. Архитектура файловой системы
- •4.4.2. Архитектура файловой системы
- •4.4.2. Архитектура файловой системы
- •4.4.2. Архитектура файловой системы
- •4.4.2. Архитектура файловой системы
- •4.4.2. Архитектура файловой системы
- •4.4.2. Архитектура файловой системы
- •4.4.3.Организация файлов и доступ к ним
- •4.4.3.Организация файлов и доступ к ним
- •4.4.3.Организация файлов и доступ к ним
- •4.4.3.Организация файлов и доступ к ним
- •4.4.3.Организация файлов и доступ к ним
- •4.4.3.Организация файлов и доступ к ним
- •Атрибут
- •4.4.3.2.Логическая организация файлов
- •4.4.3.2. Логическая организация файлов
- •4.4.3.2. Логическая организация файлов
- •4.4.3.2. Логическая организация файлов
- •4.4.3.2. Логическая организация файлов
- •4.4.3.2. Логическая организация файлов
- •4.4.3.2. Логическая организация файлов
- •4.4.3.2. Логическая организация файлов
- •Индексно-последовательный файл
- •Индексно-последовательный файл
- •Индексно-последовательный файл
- •Индексно-последовательный файл
- •Индексированный файл
- •Полный
- •4.4.4. Каталоговые системы
- •4.4.4. Каталоговые системы
- •4.4.4.Каталоговые системы
- •4.4.4. Каталоговые системы
- •4.4.4.Каталоговые системы
- •4.6.Физическая организация файловой системы
- •4.6.Физическая организация файловой системы
- •4.6.Физическая организация файловой системы
- •4.6.Физическая организация файловой системы
- •4.6.Физическая организация файловой системы
- •4.6.Физическая организация файловой системы
- •4.6.Физическая организация файловой системы
- •Адресация блоков данных диска
- •4.6.Физическая организация файловой системы
- •4.6.Физическая организация файловой системы
- •Первичный раздел
- •4.6.Физическая организация файловой системы
- •4.6.Физическая организация файловой системы
- •4.6.2. Физическая организация и адресация файла
- •Связный список индексов
- •Связный список индексов - FAT
- •Связный список индексов - FAT
- •I- узел (index node)
- •Файловая система ОС UNIX ufs
- •Файловая система ОС UNIX ufs
- •Файловая система ОС UNIX ufs
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Пример
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Физическая организация FAT
- •Файловая система Windows 2000
- •Структура тома NTFS
- •Загрузочный блок
- •Структура файлов NTFS
- •Файлы NTFS в зависимости от способа размещения делятся на небольшие, большие, очень большие
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Структура файловой системы NTFS
- •Основные характеристики файловых систем
- •4. 7. Операции управления каталогами и файловые операции
- •4.7. Операции управления каталогами и файловые операции
- •4.7. Операции управления каталогами и файловые операции
- •4.7. Операции управления каталогами и файловые операции
- •4. 7. Операции управления каталогами и файловые операции
- •4.7. Операции управления каталогами и файловые операции
- •4. 7. Операции управления каталогами и файловые операции
- •4.7.2. Способы выполнения файловых операций
- •4.7.2. Способы выполнения файловых операций
- •4.7.2. Способы выполнения файловых операций
- •4.7.2. Способы выполнения файловых операций
- •Примеры системных вызовов для работы с файлами
- •4.7.3. Контроль доступа к файлам и каталогам
- •4.7.3. Контроль доступа к файлам и каталогам
- •4.7.3.Контроль доступа к файлам и каталогам
- •4.7.3.Контроль доступа к файлам и каталогам
- •4.7.3. Контроль доступа к файлам и каталогам
- •4.7.3. Контроль доступа к файлам и каталогам
- •4.7.3. Контроль доступа к файлам и каталогам
- •4.7.3. Контроль доступа к файлам и каталогам
- •4.7.3. Контроль доступа к файлам и каталогам
- •4.7.3. Контроль доступа к файлам и каталогам
- •4.7.3. Контроль доступа к файлам и каталогам
- •4.7.3. Контроль доступа к файлам и каталогам
- •4.7.3. Контроль доступа к файлам и каталогам
- •Квоты дискового пространства
- •Квоты дискового пространства
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista
- •Системный загрузчик Windows NT/2000/XP/Vista

1.Программируемый ввод-вывод без прерываний
Воперационных системах Windows (и Windows 9х, и Windows NT/ 2000) печать через параллельный порт осуществляется не в режиме с прерываниями, как это сделано в других ОС, а в режиме опроса готовности, что приводит к 100-процентной загрузке центрального процессора на все время печати.
При этом другие задачи, запущенные на исполнение, выполняются исключительно за счет того, что упомянутые операционные системы поддерживают вытесняющую мультизадачность.
Операционные системы |
21 |
|

Текущая команда программы |
|
|
Системный вызов для выполнения |
|
|
операции ввода-вывода |
Выполнение |
|
|
|
|
Вызов драйвера. Передача |
других |
|
команды контроллеру. |
действий |
|
|
|
|
Запрос состояния контроллера |
|
|
ввода-вывода |
|
|
|
|
ПРЕРЫВАНИЕ |
Не готов |
Проверка |
|
|
|
|
|
состояния |
|
Готов |
Ошибка |
|
Получить слово от |
|
|
контроллера ввода-вывода |
|
|
Записать слово в память |
|
|
Нет |
|
Да |
Все выполнено ? |
|
Следующая команда
2. Ввод-вывод, управляемый прерываниями.
Процессор посылает необходимые команды контроллеру ввода-вывода и продолжает выполнять процесс, если нет необходимости в ожидании выполнения операции. В противном случае процесс приостанавливается до получения сигнала прерывания о завершении ввода/вывода, а процессор переключается на выполнение другого процесса. В конце каждого цикла выполненных команд процессор проверяет наличие прерываний.
Операционные системы |
22 |

2. Ввод вывод, управляемый |
Жесткий диск |
|
прерываниями |
|
|
Возбуждение сигнала |
|
|
прерывания |
Контроллер запускает устройство 2 |
|
|
Центральный |
4 |
Контроллер |
|
||
процессор |
|
прерываний |
5 |
3 |
1
Регистры контроллера
Контроллер диска
Драйвер программирует контроллер и переходит в состояние ожидания
3Контроллер устройства ввода-вывода завершил операцию
5 |
Обработка прерывания, перемещение данных в область |
|
программы, передача управления программе |
|
|
|
Операционные системы |
23 |

2. Ввод вывод, управляемый прерываниями
Режим обмена с прерываниями по своей сути является режимом асинхронного управления. Для того чтобы не потерять связь с устройством, может быть запущен отсчет времени, в течение которого устройство обязательно должно выполнить команду и выдать-таки сигнал запроса на прерывание.
Максимальный интервал времени, в течение которого устройство ввода-вывода или его контроллер должны выдать сигнал запроса на прерывание, часто называют установкой тайм-аута.
Если это время истекло после выдачи устройству очередной команды, а устройство так и не ответило, то делается вывод о том, что связь с устройством потеряна и управлять им больше нет возможности. Пользователь и/или задача получают соответствующее диагностическое сообщение.
Операционные системы |
24 |

2. Ввод вывод, управляемый прерываниями
Драйверы, работающие в режиме прерываний, представляют собой сложный комплекс программных модулей и могут иметь несколько секций: секцию запуска, одну или несколько секций продолжения и секцию завершения.
Секция запуска инициирует операцию ввода-вывода. Эта секция запускается для включения устройства ввода-вывода или просто для инициализации очередной операции ввода- вывода.
Операционные системы |
25 |

2. Ввод вывод, управляемый прерываниями
Секция продолжения (их может быть несколько, если алгоритм управления обменом данными сложный, и требуется несколько прерываний для выполнения одной логической операции) осуществляет основную работу по передаче данных.
Секция продолжения является основным обработчиком прерывания. Поскольку используемый интерфейс может потребовать для управления вводом-выводом несколько последовательностей управляющих команд, а сигнал прерывания у устройства, как правило, только один, то после выполнения очередной секции прерывания супервизор прерываний при следующем сигнале готовности должен передать управление другой секции. Это делается путем изменения адреса обработки прерывания после выполнения очередной секции, а если имеется только одна секция продолжения, она сама передает управление в ту или иную часть кода подпрограммы обработки прерывания.
Секция завершения обычно выключает устройство ввода-вывода или просто завершает операцию.
Операционные системы |
26 |

Текущая команда программы |
|
3. Прямой доступ к |
|
|||||||
|
|
|
|
|
|
|
||||
Системный вызов для выполнения |
Выполнение |
|
памяти. |
|
|
|||||
Модуль |
прямого |
доступа |
к |
|||||||
операции ввода-вывода. Вызов драйвера. |
||||||||||
Программирование DMA |
других |
памяти |
управляет |
обменом |
||||||
действий |
||||||||||
|
|
|
||||||||
Запрос состояния контроллера |
|
данных |
между |
|
основной |
|||||
|
ввода-вывода |
|
памятью |
и |
контроллером |
|||||
Не готов |
|
|
|
ввода-вывода. |
|
Процессор |
||||
Проверка |
|
|
посылает |
запрос |
на |
передачу |
||||
|
|
|
||||||||
|
состояния |
|
блока данных модулю прямого |
|||||||
Готов |
Ошибка |
|
||||||||
|
доступа |
к |
памяти, |
а |
||||||
|
|
|||||||||
Запуск контроллера. Перенос |
|
прерывание |
|
происходит |
||||||
данных в буфер. Сигнал в DMA. |
|
только после |
передачи всего |
|||||||
|
|
|
|
|||||||
Запрос от DMA на перенос данных. Запись |
блока данных. |
|
|
|
|
|||||
|
|
|
|
|
|
|||||
слова в память контроллером. Сигнал в DMA. |
|
|
|
|
|
|
DMA увеличивает адрес памяти и уменьшает счетчик байтов
Нет |
Да |
|
Все выполнено ? |
Прерывание |
|
|
Операционные системы |
27 |

|
3. Ввод1 вывод через DMA |
|
Диск |
||||
|
Центральный процессор |
|
|
|
|
||
1 |
|
Подтверждение |
|
|
|||
программирует DMA |
5 |
|
|
||||
|
|
|
|
|
|
|
|
|
1 |
Адрес |
|
|
|
Буфер |
|
|
|
|
2 |
|
Оперативнаяпамять |
||
Центральный процессор |
|
|
|
|
|||
Счетчик |
|
|
|
|
|||
Управляющий |
5 |
Контроллер |
|
||||
регистр |
|
|
|||||
|
|
|
|||||
DMA |
|
2 |
|
||||
|
|
|
|||||
|
|
|
|
||||
|
|
|
|
2 |
|
|
4 |
|
Прерывание |
|
3 |
DMA запрашивает |
4 |
Перенос |
|
|
после |
|
|||||
|
|
|
перенос1 |
данных |
|
данных |
|
|
выполнения |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шина |
|
|
Операционные системы |
|
28 |

Работа1 DMA-контроллера
DMA-контроллер4 имеет доступ к системной шине независимо от центрального процессора.
Контроллер содержит несколько регистров,
2
доступных центральному процессору для чтения и
записи (регистр адреса памяти, счетчик байтов, управляющие регистры). 2
Управляющие регистры задают, какой порт ввода-вывода должен 2 быть использован, направление переноса данных (чтение или запись в устройство ввода-вывода), единицу переноса (побайтно, пословно),3 а1 также число байтов, которые следует перенести за одну операцию.
Операционные системы |
29 |

Работа1 DMA-контроллера
Перед выполнением4 операции обмена ЦП программирует DMA-контроллер, устанавливая его
регистры (шаг 1).
2
Затем ЦП дает команду дисковому контролеру прочитать данные во внутренний буфер и
проверить контрольную сумму. После этого
2
процессор продолжает свою работу. Когда данные получены и проверены контроллером диска, DMA может начинать работу. 2
3
1
Операционные системы |
30 |