Vhodno - izhodni sistem


Uvod

Arhitektura podpore tiskalnikom v Windows 2000



Podpora multifunkcijskim napravam v Windows 2000

"It prints, it scans, it faxes, it makes coffee…"

Računalnik se mora pogovarjati z večkratnimi logičnimi napravami preko enotne povezave. Ta je lahko paralelna ali USB. Potrebni bi bili večkratni gonilniki, katerih vgradnja pa je lahko problematična. Pojavi se potreba po kanalizacijskem protokolu (MS Dot4 in INF chaining)


Nekaj o MS Dot4

Vsako transakcijo začne ukaz in zaključi odgovor. Struktura paketa MS Dot4 je naslednja:

Zaglavje ima 6 bajtov. Prvi in drug zlog določata povezavo. Dolžina podatkov je variabilna do 64kB.

Primer pogovora po tem protokolu: Zaključi skeniranje in pošlji računalniku:


 
 
 


Komponente vhodno izhodnega sistema


Upravnik vhodno izhodnega podsistema (IO manager) povezuje aplikacije in sistemske komponente  na virtulne, logične in fizične naprave in določa infrastrukturo, ki podpira gonilnike naprav.

Gonilnik naprave predstavlja vmesnik do določene naprave.  Lahko pa posredujejo preko upravnika (IO) ukaze drugim gonilnikom naprav.
 
PnP upravnik (Plug and Play) sodeluje z upravnikom IO in posebnim gonilnikom "bus driver" za nadzor aparaturne opreme in odkrivanje ter odzivanje na dodajanje in odklapljanje naprav.  PnP upravnik in gonilniki vodila skrbe za nalaganje gonilnikov takih naprav.

 "power manager" sodeluje tako z upravnikom IO kot s posameznimi gonilniki naprav pri vklopu in izklopu napajanja.

Rutine  WMI (Windows Management Instrumentation)  s pomočjo WDM (Windows Driver Model)   omogočajo gonilnikom komunikacijo s servisom WMI  v uporabniškem režimu

"Registry"  je nekakšna podatkovna baza z opisom osnovnih naprav, ki so priključene na sistem in služi za nastavitve ter za pravilno iniciacijo gonilnikov.

Datoteke INF  so instalacijske datoteke gonilnikov.
 


Pregled

Spomnimo se zgradbe operacijskega sistema in se posvetimo upravniku vhoda oziroma izhoda! Ta sam po sebi ne opravlja nobenih vhodno-izhodnih operacij. Njegova naloga je, da za vsak vhodno-izhodni zahtevek sestavi podatkovni paket IRP (I/O request packet) in ga posreduje ustreznemu gonilniku. Ko le-ta opravi svoje delo, prejme od njega podoben paket in ga posreduje naprej ali pa razpakira in vrne  rezultat aplikaciji.



Potek vhodno izhodnih operacij

Aplikacije (Win32, POSIX ali OS2) kličejo  dogovorjene funkcije sistema, te pa upravnik IO. 
Vse podatke beremo ali pišemo kot preproste tokove bajtov. 

Programi izvajajo vhodno izhodne operacije na virtualnih datotekah.  Šele upravnik IO kliče ustrezen gonilnik naprave. S tem dosežemo abstrakcijo in tudi fleksibilnost. 

Upravnik IO formira za vsako zahtevano operacijo paket IRP (I/O request packet) in ga posreduje ustreznemu gonilniku.
 
 
 
 
 
 
 
 

 


Vrste gonilnikov

Imamo gonilnike na nivoju jedra in gonilnike na uporabniškem nivoju. Kernel-mode gonilniki, so edini,ki direktno dostopajo do naprav
 

Gonilniki na nivoju jedra

Imamo več tipov gonilnikov kernel-mode:
    Nizkonivojski gonilniki aparaturne opreme

    Gonilniki dane vrste naprav (Class drivers)

    Gonilniki, specifični glede na vrsto vrat in adapterjev (Port drivers, Miniport drivers)

    Gonilniki datotečnih sistemov (File system drivers)

    Gonilniki za dodatno predelavo vhoda/izhoda (File system filter drivers)

Gonilniki datotečnega sistema (File system drivers)  sprejemajo zahtevke za datoteke in sami naprej posredujejo zahtevke gonilnikom pomnilnih periferij in omrežnim gonilnikom.

Gonilniki  Windows 2000  so gonilniki, ki se po potrebi lahko povežejo  z upravnikoma PnP in  "power manager". Vključujejo tudi gonilnike za pomnilno periferijo in omrežne adapterje.

"Legacy drivers" so gonilniki, pisani za Windows NT, ki nespremenjeni tečejo tudi na  Windows 2000. V razliko od gonilnikov Windows 2000 ne podpirajo krmiljenja napajanja in dela z upravnikom PnP.

"Win32 subsystem display drivers" pretvarjajo aparaturno neodvisne grafične zahtevke  v aparaturno odvisne. Za popolno grafično podporo potrebujejo še ustrezne gonilnike  v jedru (kernel-mode video miniport driver).  Ti gonilniki (v jedru) skrbe na primer za resolucijo zaslona, osveževalno frekvenco, značko (cursor) na zaslonu ipd.

Gonilniki WDM spoštujejo takoimenovani "Windows Driver Model" (WDM), ki je implementiran na sistemih  Windows 2000, Windows 98 in Windows Millennium Edition. Taki gonilniki imajo kompatibilno izvorno kodo, pogosto pa so tudi binarno kompatibilni.

V skupino gonilnikov WDM sodijo gonilniki vodil ( bus drivers)  (primeri takih vodil so: PCMCIA, PCI, USB, IEEE 1394, ISA), funkcijski gonilniki in filterski gonilniki)
 

Gonilniki v uporabniškem režimu

Poleg navedenih podpira sistem Windows 2000 še več gonilnikov v uporabniškem režimu:

Tiskalniški gonilniki Win32 preslikajo aparaturno neodvisne grafične zahtevke v ukaze tiskalniku in jih posredujejo ustreznemu gonilniku v jedru.
 

Gonilniki virtualnih naprav (Virtual device drivers ,VDD)  služijo za emulacijo 16 bitnih aplikacij  MS-DOS. Prestrezajo naslavljanja vrat in jih preslikajo v klice funkcij Win32, te pa šele kličejo ustrezni gonilnik naprave.