Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Som visas i figuren Processing IRPs in Layered Drivers (Bearbetar IRPs i lager) är ett filsystem en tvådelad drivrutin:
En filsystemdrivrutin (FSD), som körs i kontexten för en tråd i användarläge som anropar en I/O-systemtjänst
I/O-chefen skickar motsvarande IRP till FSD. Om FSD konfigurerar en slutföranderutin för en IRP anropas inte dess slutföranderutin nödvändigtvis i den ursprungliga användarlägestrådens kontext.
En uppsättning filsystemtrådar och eventuellt en FSP (filsystemprocess)
En FSD kan skapa en uppsättning drivrutinsspecifika systemtrådar, men de flesta FSD:er använder systemarbetstrådar för att få jobbet gjort utan att binda upp användarlägestrådar som gör I/O-begäranden. Alla FSD:er kan konfigurera ett eget processadressutrymme där dess drivrutinsspecifika trådar körs, men de systemspecifika FSD:erna undviker den här metoden för att spara systemminne.
Filsystemet använder vanligtvis systemets arbetstrådar för att konfigurera och hantera interna arbetsköer med IRP:er som de skickar till en eller flera drivrutiner på lägre nivåer, möjligen för olika enheter.
Medan den drivrutin på lägsta nivån som visas i figuren Processing IRPs i Layered Drivers bearbetar varje IRP stegvis genom en uppsättning diskreta rutiner som tillhandahålls av drivrutinen, använder den inte systemtrådar som filsystemet gör. En drivrutin på lägsta nivå behöver inte sin egen trådkontext om inte konfigurationen av enheten för I/O är en så utdragen process att den har en märkbar effekt på systemets prestanda. Få drivrutiner på lägsta eller mellannivå behöver konfigurera sina egna drivrutinsspecifika eller enhetsdedikerade systemtrådar, och de som gör det betalar ett prestandastraff orsakat av kontextväxlingar till deras trådar.
De flesta drivrutiner i kernelläge, till exempel den fysiska enhetsdrivrutinen i figuren Bearbeta IRP:er i lagerdrivrutiner, körs i en godtycklig trådkontext: den tråd som råkar vara aktuell när de anropas för att bearbeta en IRP. Därför underhåller drivrutiner vanligtvis tillstånd om sina I/O-åtgärder och de enheter som de betjänar i en drivrutinsdefinierad del av sina enhetsobjekt, vilket kallas för ett enhetstillägg.