Архитектура современных операционных систем
158 Кроме того, Redirector помнит, какие он открывал удаленные файлы и в случае восстановления соединения делает их повторное открытие. С определенной проблемой разработчики WINDOWS NT встретились, ко- гда стали обеспечивать асинхронные сетевые операции. Обычно драйвер работает в рамках прикладного потока, запросившего ввод/вывод (своего потока нет), однако в случае выполнения асинхронной опе- рации прикладной поток продолжает выполнять работы, следовательно, для драйвера нужен другой поток. Рис. 4.30. Поначалу в первых версиях Windows NT драйвер для выполнения асин- хронных операций запускал специальный системный процесс и пользовался его потоками, однако запускать каждый раз процесс было накладно с точки зрения системных издержек, поэтому было принято другое решение. При загрузке си- стемы запускается специальный процесс инициализации. В ранних версиях Windows NT этот процесс после инициализации системы завершался, теперь не завершается, и его потоки используются для выполнения асинхронных опера- ций драйверами. Диспетчер в\в в\в RDR TDI Диспетчер в\в Драйвер ФС Драйвер Устройство IRP IRP IRP процесс TDI SRV 3 0 Сеть
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy