
- •Основные понятия и концепции ос
- •Классификация ос
- •Управление процессами
- •Операции над процессом
- •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 системах
06122012 Лекция 12 Основные процедуры драйверов устройств
Обязательная процедура инициализации;
Обязательный набор процедур диспетчеризации (вызывается диспетчером ввода/вывода и принимает в качестве параметра IRP пакет);
Необязательная процедура запуска;
Необязательная процедура обслуживания прерывания;
Необязательный отложенный вызов;
Необязательная процедура завершения;
Обязательная процедура выгрузки драйвера;
Необязательная процедура отмены длительной операции;
Обязательная процедура уведомления об отключении системы (вызывается диспетчером ввода/вывода)
Необязательная процедура протоколирования ошибок.
Процедуры обслуживания прерывания isr (interrupt Service Routine)
Выполняется в ответ на получение прерывания от аппаратного устройства с высоким приоритетом. Как правило, размещает в очереди вызов отложенной обработки DPC – defraud processing call.
Процедура облуживания прерываний так же может быть вызвана асинхронно, когда генерируется APC (Asynchronous processing call). Так же выполняется привилегированно, но в контексте вызвавшего процесса: в режиме ядра или пользователя. Используется:
Буферизированный ввод/вывод - буфер выделяться в невыгружаемой памяти и действительном контексте любого процесса или потока
Прямой ввод/вывод - буфер независим от процесса и описывается для драйвера при помощи дескрипторов памяти. Адрес буфера используется в качестве системного виртуального адресного пространства
Небуферизированный ввод/вывод – драйверу непосредственно передается адрес буфера в контексте вызвавшего процесса.
Дерево устройств
При инициализации устройства диспетчер plug-and-play формирует дерево устройств, начинающееся с виртуального драйвера шины с имени root и отражающего взаимосвязи между устройствами.
При перечислении устройств в процессе загрузки диспетчер PnP запрашивает у драйверов шин описание устройств, найденных на этих шинах. Описание включает уникальный идентификатор устройства и его требования к аппаратным ресурсам. По этим данным формируются узлы устройств. В общем случае объект устройства может включать:
Высокоуровневый драйвер фильтра;
Функциональный драйвер;
Низкоуровневый драйвер;
Драйвер фильтра шины;
Драйвер шины.
Идентификаторы устройств специфичны для конкретной шины. Могут состоять из идентификатора составителя, продукта и экземпляра устройств. Общий идентификатор устройства используется для поиска раздела устройства в реестре.
Устройства драйвера PnP устройства:
Драйвер шины информирует диспетчер PnP о новом устройстве, сообщая его идентификатор. Если в реестре нет походящего функционального драйвера, сообщение передается диспетчеру PnP пользовательского режима. Он собственно пытается установить нужный драйвер (генерация диалоговых окон и так далее). API функции (особенно Setup CfgMgr) используются для поиска info файлов, совместимых с обнаруженным устройством. Когда драйвер обнаружен, устанавливаются его параметры.
Диспетчер электропитания
Применяемая спецификация управления электропитания соответствует стандарту ACPI (Advanced Configuration and Power Interface). Все базовые устройства должны соответствовать этому стандарту. Определяются уровни электропотребления для системы его устройств.
Каждый уровень характеризуется параметрами:
Энергопотребление;
Возобновление работы;
Аппаратная задержка.
Основные шесть состояний система (S0-S5):
Состояние |
Энергопотребление |
Возобновление работы ПО |
Аппаратная задержка |
S0 (fully on) |
max |
- |
нет |
S1 (sleeping) |
S2<S1<S0 |
С той же точки, где была прервана (возврат в S0) |
(Много) менее 2с |
S2 (sleeping) |
S3<S2<S2 |
С той же точки, где была прервана (возврат в S0) |
От 2с |
S3 (sleeping) |
S3<S2 (выкл. процессор) |
С той же точки, где была прервана (возврат в S0) |
В значительной степени больше2с |
S4 (hibernatiny) |
Ток на кнопке питания и контуре пробуждения (wake up контур) |
Перезапуск с помощи hibernate file и возобновляется с точки прерывания (S0) |
Длительная неопределенная |
S5 (fully off) |
Ток на кнопку электропитания |
Загрузка заново |
Длительная неопределенная |
Для устройств определено 4 состояния D0-D3 (D1, D2 зависит от конкретного устройства).