Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jak pokazano na rysunku Przetwarzanie IRPs w sterownikach warstwowych, system plików jest dwuczęściowym sterownikiem.
Sterownik systemu plików (FSD), który jest wykonywany w kontekście wątku trybu użytkownika, który wywołuje usługę systemową we/wy
Menedżer I/O wysyła odpowiedni IRP do FSD. Jeśli FSD ustawi procedurę zakończenia dla IRP, ta procedura zakończenia nie musi być wywoływana w kontekście oryginalnego wątku w trybie użytkownika.
Zestaw wątków systemu plików i prawdopodobnie FSP (proces systemu plików)
FSD może utworzyć zestaw dedykowanych wątków systemowych dla sterowników, ale większość FSD używa wątków procesów roboczych systemu, aby wykonać pracę bez wiązania wątków w trybie użytkownika, które wykonują żądania we/wy. Każdy FSD może skonfigurować własną przestrzeń adresową procesu, w której są uruchamiane wątki dedykowane sterownikom, ale dostarczone przez system FSD unikają tej praktyki, aby oszczędzać pamięć systemową.
Systemy plików zwykle używają systemowych wątków roboczych do konfigurowania i zarządzania wewnętrznymi kolejkami roboczymi IRP, które wysyłają do jednego lub większej liczby sterowników niższego poziomu, prawdopodobnie dla różnych urządzeń.
Podczas gdy sterownik najniższego poziomu pokazany w rysunku Przetwarzanie IRP w warstwowych sterownikach przetwarza każdy IRP etapami przez zestaw dyskretnych, dostarczonych przez siebie procedur, nie używa wątków systemowych, jak robi to system plików. Sterownik najniższego poziomu nie potrzebuje własnego kontekstu wątku, chyba że skonfigurowanie urządzenia do operacji wejścia/wyjścia jest na tyle długotrwałym procesem, że zauważalnie wpływa na wydajność systemu. Mało sterowników niskopoziomowych lub pośrednich musi konfigurować własne wątki systemowe dedykowane dla sterowników lub urządzeń, a te, które to robią, ponoszą karę wydajności z powodu przełączeń kontekstu do ich wątków.
Większość sterowników trybu jądra, takich jak sterownik urządzenia fizycznego na rysunku Przetwarzanie adresów IRP w sterownikach warstwowych, działa w dowolnym kontekście wątku: takim, który jest aktualny w momencie, gdy są wywoływane do przetworzenia IRP. W związku z tym sterowniki zwykle przechowują informacje o stanie swoich operacji we/wy oraz urządzeń, którymi się zajmują, w zdefiniowanej przez sterownik części obiektów urządzeń, zwanej rozszerzeniem urządzenia.