
- •Основные понятия и концепции ос
- •Классификация ос
- •Управление процессами
- •Операции над процессом
- •13092012 Лекция 2
- •Алгоритмы планирования
- •Средства взаимодействия и синхронизации процессов
- •Синхронизация процессов
- •20092012 Лекция 3 Взаимоблокировки
- •Ликвидация взаимоблокировок
- •Неделимые транзакции
- •04102012 Лекция 4 Архитектура и управление процессами в ос семейства Windows
- •11102012 Лекция 5 Синхронизация потоков
- •Архитектура и процессы unix
- •Управление процессами
- •Создание новых процессов
- •18102012 Лекция 6 Межпроцессное взаимодействие
- •Файловая система
- •Структуризация файлов
- •25102012 Лекция 7 Адресация доступа к файлам
- •Операции над файлами
- •Обобщенная модель файловой системы
- •Отображаемые в память файлы
- •Современная архитектура файловых систем
- •Файловые системы Windows
- •01112012 Лекция 8 Файловая система fat
- •Файловая система ntfs
- •081112 Лекция 9
- •Файловые системы unix Традиционная фс s5
- •Виртуальная фс vfs (Virtual File System)
- •Монтирование файловых систем vfs
- •15112012 Лекция 10 Управление вводом/выводом
- •Драйверы устройств
- •Система ввода/вывода unix
- •29112012 Лекция 11 Подсистема ввода/вывода Windows
- •06122012 Лекция 12 Основные процедуры драйверов устройств
- •Процедуры обслуживания прерывания isr (interrupt Service Routine)
- •Дерево устройств
- •Диспетчер электропитания
- •13122012 Лекция 13 Основные требования ос
- •Множественные прикладные среды
- •Способы построения множественных прикладных сред
- •Реализация множества прикладных средств в Windows системах
Монтирование файловых систем vfs
15112012 Лекция 10 Управление вводом/выводом
http://bourabai.kz/os/lecture16.htm
Устройства ввода/вывода делятся на два типа:
Блок-ориентированное устройство – хранит информацию в блоках фиксированного размера, каждый из которых имеет собственный адрес. Пример: жесткий диск.
Байт-ориентированное устройство – не адресуемо и генерирует или потребляет последовательности байтов. Пример: монитор, сканер, сетевой адаптер.
Внешнее устройство, как правило, состоит из механического и электронного компонента (контроллер или адаптер). Каждый контроллер имеет несколько регистров, использующихся для взаимодействия с ЦП и являющихся частью физического адресного пространства. Адреса регистров ввода/вывода могут образовывать свое адресное пространство.
Программное обеспечение ввод/вывода представляет собой несколько уровней, экранирующих особенности аппаратуры. Большинство операций ввода/вывода выполняется асинхронно, но представляется для пользовательских программ в синхронном виде.
Функциями подсистемного ввода/вывода являются:
изоляция устройств и взаимодействия с ними
единообразное именование
обработка ошибок
Большая часть ПО ввода/вывода не зависит от устройств и выполняет функции:
Обеспечение общего интерфейса к драйверам устройств.
Именование устройств.
Защита устройств.
Обеспечение независимого размера блоков.
Буферизация.
Распределение памяти для блок-ориентированных устройств.
Распределение и освобождение выделенных устройств.
Уведомление об ошибках.
Пользовательский слой ПО ввода/вывода включает:
системные библиотеки;
спулинг (spooling) – это способ работы с выделенными устройствами в мультипрограммной среде. Спул – это буфер, содержащий входные или выходные данные устройства, разделяемый системными средствами между процессами.
С каждым устройством связана очередь запросов процессов, находящихся в состоянии ожидания, и запросов, выполняющихся асинхронно. Каждая очередь управляется отдельно в соответствии с системой планирования.
Задача планирования использования устройства может быть реализована:
В базовой подсистеме ввода/вывода.
Внутри драйвера соответствующего устройства.
Приложения, библиотечные функции – пользовательский слой;
Системные вызовы, система буферных данных – независимый слой;
Драйвер устройств, обработка прерываний – зависимый слой.
Драйверы устройств
Драйвер – это программа/программный модуль, управляющий внешним устройством и содержащий весь зависимый от устройства код.
При реализации запроса драйвера он:
Преобразуется из абстрактной формы в конкретную.
Передается контроллеру записью в его регистр.
Принимается решение о блокировке драйвера.
Драйверы являются частью ядра системы, исполняются в привилегированном режиме и имеют доступ на запись с элементом данных программ и части ядра.
Для каждого класса устройств используется фиксированный набор операций (команд). Базовый набор команд может быть расширен при помощи:
Интерпретация данных в пользовательскую программу
Использование терминальной БД.
Использование фильтров – заключается в использовании промежуточного языка команд интерпретируемого фильтром.
Обработку запроса можно разделить на три фазы:
Фаза предобработки:
Проверка допустимости параметров
Копирование или отображение данных из пользовательского АП в системное
Преобразование выводимых данных
Обращение к процедурам драйвера и передача запроса
Исполнение запросов
Постобработка
Анализ результата операции
Действие по восстановлению в случае неуспеха
Копирование или отображение данных в пользовательское АП (преобразование данных)
Оповещение программы о завершении запроса