Оглавление:
Определение - Что означает запрос ввода / вывода?
Пакеты запросов ввода-вывода - это структуры режима ядра, используемые для связи между моделью диска Windows и драйверами устройств Windows NT, а также с операционной системой Windows. Все детали данных передаются в структуру данных через один указатель вместо того, чтобы следовать старому соглашению о передаче множества небольших аргументов данных. Эти запросы ввода / вывода выполняются для прохождения множества различных этапов обработки. Эти этапы определяются характером запроса, предназначен ли он для целевого устройства для однослойного драйвера или многослойного диска.
Techopedia объясняет запрос ввода / вывода
Пакеты запроса ввода / вывода в основном используются для связи между драйверами устройства и операционной системой. Это позволяет конкретному процессу разблокироваться и быть полностью выполненным.
На первом этапе инициируется процесс, который выдает блокирующее считывание дескриптора файла ранее использованного файла. Код операционной системы или ядра содержит код системного вызова, который работает для проверки точности параметров. Если буферный кеш уже содержит данные, то данные возвращаются и запрос завершается. В случае, если данные не найдены в буферном кеше, выполняется физический ввод-вывод. Это гарантирует, что процесс будет удален из очереди выполнения и помещен в очередь ожидания. После этого драйвер устройства получает запрос через подсистему ввода-вывода. Затем драйвер устройства должен освободить место для входящих данных и запланировать ввод-вывод. Затем контроллер устройства работает на оборудовании устройства, чтобы выполнить процесс передачи данных. Контроллер DMA управляет передачей данных в память ядра и управляет ею. Когда передача завершена, это создает прерывание, которое принимается обработчиком прерывания через таблицу векторов прерываний. Он сканирует данные на предмет важной информации, а затем возвращает прерывание. Этот сигнал затем принимается драйвером устройства, который завершает запрос и также определяет статус запроса. Наконец, ядро должно удалить процесс из очереди ожидания в готовую очередь, и данные передаются в адресное пространство. Этот шаг разблокирует процесс. Итак, теперь, когда процесс назначен ЦПУ, он возобновляет работу и завершается.
