Характеристики подсистемы ввода/вывода
В предыдущем разделе мы рассмотрели схему использования
системных сервисов, то есть прохождение запроса ввода/вывода от приложения
к драйверу и обратно. Компонентом ОС, отвечающим за реализацию этой схемы,
является Диспетчер ввода/ вывода. Диспетчер ввода/вывода является компонентом
более общей модели - подсистемы ввода/вывода. Подсистема ввода/вывода
включает в себя все компоненты, которые обеспечивают возможность осуществления
ввода/вывода. В число этих компонент входит Диспетчер ввода/вывода и все
драйверы режима ядра. В числе характеристик подсистемы ввода/вывода NT
принято выделять следующие:
- 1. согласованность и высокая структурированность;
- 2. переносимость между процессорными архитектурами;
- 3. конфигурируемость;
- 4. вытесняемость и прерываемость;
- 5. поддержка многопроцессорности;
- 6. объектная базированность (но не объектная ориентированность);
- 7. асинхронность;
- 8. подсистема ввода/вывода управляется пакетами;
- 9. подсистема ввода/вывода многоуровневая (послойная
модель).
Как уже говорилось, подсистема ввода/вывода NT управляется
пакетами. При таком подходе каждый запрос ввода/вывода описывается своим
собственным пакетом запроса ввода/вывода (I/O Request Packet - IRP). При
задействовании системного сервиса (например, при запросе на чтение или
запись в файл) Диспетчер ввода/вывода обрабатывает этот запрос путем создания
пакета IRP, Описывающего запрос, и затем передает указатель на этот пакет
драйверу для обработки. |