Архитектура современных операционных систем
148 Рис. 4.27. Процесс с помощью API направляет системе запрос на выполнение файло- вой операции, например, чтение/записи файла. Диспетчер ввода/вывода форми- рует пакет запроса IRP и направляет его драйверу файловой системы. Драйвер файловой системы определяет, сколько операций с диском соот- ветствуют этому запросу, и направляет драйверу диска соответствующее коли- чество IRP 1 - IRP K Драйвер ставит их в очередь и последовательно выполняет операции вво- да/вывода, связанные с этими запросами. После выполнение каждой операции устройство вырабатывает прерыва- ние, драйвер его обрабатывает и возвращает заполненный IRP драйверу файло- вой системы. Когда все операции, запрошенные драйвером файловой системы, будут за- вершены, то есть ему будут возвращены все порожденные им IRP, драйвер файловой системы заполнят IRP, созданный диспетчером ввода/вывода, и воз- вратит его диспетчеру, а тот возвратит результат операции процессу. Если драйвер файловой системы, получив IRP от диспетчера, определяет, что для выполнения файловой операции необходим только 1 IRP, он может не создавать новый IRP, а использовать IRP, переданный ему диспетчером, одна- 3 0 процесс Диспетчер в\в Драйвер Устройство IRP 1 - IRP K IRP Драйвер
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy