Példa I/O-kérelemre – Áttekintés

Az alábbi ábra áttekintést nyújt arról, hogy mi történik, ha egy alrendszer megnyit egy adatfájlt képviselő fájlobjektumot egy alkalmazás nevében.

fájlobjektum megnyitását szemléltető diagram.

  1. Az alrendszer meghív egy I/O rendszerszolgáltatást egy névvel ellátott fájl megnyitásához.

  2. Az I/O-kezelő meghívja az objektumkezelőt, hogy keresse meg a megnevezett fájlt, és segítsen feloldani a fájlobjektum szimbolikus hivatkozásait. A biztonsági referenciafigyelőt is meghívja annak ellenőrzésére, hogy az alrendszer rendelkezik-e a megfelelő hozzáférési jogosultságokkal a fájlobjektum megnyitásához.

  3. Ha a kötet még nincs csatlakoztatva, az I/O-kezelő ideiglenesen felfüggeszti a nyitott kérést, és meghív egy vagy több fájlrendszert, amíg egyikük fel nem ismeri a fájlobjektumot a fájlrendszer által használt egyik tárolóeszközön tároltként. Amikor a fájlrendszer csatlakoztatta a kötetet, az I/O-kezelő folytatja a kérést.

  4. Az I/O-kezelő memóriát foglal le és inicializál egy IRP-t a nyitott kérelemhez. Az illesztőprogramok számára a megnyitás egyenértékű egy "létrehozási" kéréssel.

  5. Az I/O-kezelő meghívja a fájlrendszer-illesztőprogramot, és átadja az IRP-t. A fájlrendszer-illesztőprogram hozzáfér az I/O-verem helyéhez az IRP-ben annak meghatározásához, hogy milyen műveletet kell végrehajtania, ellenőrzi a paramétereket, megállapítja, hogy a kért fájl a gyorsítótárban van-e, és ha nem, beállítja a következő alsóbb szintű illesztőprogram I/O veremhelyét az IRP-ben.

  6. Mindkét illesztőprogram feldolgozzák az IRP-t, és végrehajtják a kért I/O-műveletet, meghívják az I/O-kezelő és más rendszerösszetevők által biztosított kernel módú támogatási rutinokat (az előző ábrán nem látható).

  7. Az illesztőprogramok visszaadják az IRP-t az I/O-kezelőnek az I/O állapotblokk beállításával az IRP-ben, hogy jelezzék, hogy a kért művelet sikeres volt-e, vagy hogy miért nem sikerült.

  8. Az I/O-kezelő lekéri az I/O-állapotot az IRP-ből, így a védett alrendszeren keresztül vissza tudja adni az állapotadatokat az eredeti hívónak.

  9. Az I/O-kezelő felszabadítja a befejezett IRP-t.

  10. Az I/O-kezelő a fájlobjektum leíróját adja vissza az alrendszernek, ha a nyitott művelet sikeres volt. Ha hiba történt, az megfelelő állapotot ad vissza az alrendszernek.

Miután egy alrendszer sikeresen megnyitja az adatfájlt, eszközt vagy kötetet képviselő fájlobjektumot, az alrendszer a visszaadott leíróval azonosítja a fájlobjektumot az eszköz I/O-műveleteinek későbbi kéréseiben (általában olvasási, írási vagy eszköz I/O-vezérlési kérések). Egy ilyen kérés teljesítéséhez az alrendszer meghívja az I/O rendszerszolgáltatásokat. Az I/O-kezelő ezeket a kéréseket IRP-ként eljuttatja a megfelelő illesztőprogramokhoz.