kategória | ||||||||||
|
||||||||||
|
||
A szoftver olyan rétegek egymásra épülő sorozatából áll, amelyek alacsonyabb rétegei el vannak rejtve a magasabb rétegek elől, és a felhasználó felé egy kellemes kapcsolódási felületet nyújt. 646h78g
Kulcskérdés az eszközfüggetlenség, vagyis a programunk módosítása nélkül legyünk képesek írni és olvasni a merevlemezről, kislemezről vagy CD-ROM-ról.
A UNIX-ban az eszközök a fájlrendszerhez kapcsolódnak, így azonosításuk elérési úttal történhet. Minden eszköz azonos módon címezhető, az elérési úttal.
Hibakezelés:
A hibákat hardverközeli rétegekben kellene kezelni. Ha a vezérlő hibát észlel, megpróbálja javítani. Ha nem sikerül, az eszközkezelő kezeli a hibákat, esetleg újraolvastatja a blokkot. Magasabb rétegekbe akkor kell hibákat kezelni, ha alacsony rétegekben nem lehet megoldani. Sok esetben a hibák már alacsony rétegekben megoldódnak.
Átviteli módszerek szinkron (blokkolás) és aszinkron (megszakításvezérelt) volta
A B/K eszközök többsége aszinkron jellegű. A CPU beindítja az átvitelt és mást csinál a megszakítás érkezéséig.
A program B/K műveletnél blokkolódik, míg az adatok elérhetővé nem válnak. A blokkolt felhasználói program megszakításon keresztüli vezérlése az op. rendszer feladata.
Eszközök megosztott és monopol módú használata
A merevlemezeken több felhasználó megnyithat állományt egyidejűleg, míg monopol esetben, mint pl. a szalagmeghajtó egyszerre csak egy felhasználó férhet az eszközhöz.
Ezek a célok a B/K szoftverének négy rétegbe rendezésével megoldhatók:
megszakításkezelők
eszközmeghajtók
eszközfüggetlen op. rendszer szoftvere
felhasználói szintű szoftverek
A megszakításokat rejtetten kell kezelni, lehetőleg az op. rendszer mélyebb rétegeiben, úgy, hogy csak kevés része szerezzen tudomást róla.
Az elrejtésnek egyik módja, ha rendszerhíváson keresztül a B/K műveletet végző program megszakad, míg a B/K utáni megszakításnak a blokkoltságot fel kell oldania.
Minden eszközmeghajtó adott típusú eszközöket vagy közeli rokon eszközöket egyszerre kezel.
Az eszközmeghajtó az egyedüli olyan része az op. rendszernek, amely tud a vezérlő regisztereiről, a szektorokról, pályákról, cilinderekről, olvasófejekről.
Az eszközmeghajtó feladata az eszközfüggetlen szoftverekről érkező absztrakt kérések kiszolgálása.
A kérés érkezésekor vagy azonnal képes kiszolgálni a kérést, vagy berakja egy várakozólistára a kiszolgálásig.
A kérés végrehajtása az absztrakt kérés konkretizálásával kezdődik (a kért blokkok tényleges helye a lemezen, működik e a meghajtó motorja, az olvasófej a megfelelő pályán áll e..)
Elkezdi a vezérlőparancsok kiadását az előző pontban meghatározott sorrendben.
Ha az eszközmeghajtó várakozik a vezérlőre, akkor blokkolja magát a megszakítási kérés beérkezéséig. Ha a vezérlő szabad, az eszközkezelő elvégezte a következő utasítást.
Hibaellenőrzés, hibakezelés
Az adatok átadása az eszközfüggetlen szofvereknek.
Feladata azoknak a B/K tevékenységeknek a végrehajtása, amelyek minden eszköznél közösek, és egy szabványos kapcsolódási felület adása a felhasználói szintű szoftver részére.
Pl.: egy C programból B/K eljárás hívása.
Monopol B/K rendszereknél fontos fogalom a háttértárolás.
Pl. a nyomtató is háttértárolással működő eszköz.
Ha egy processzus magához veszi a nyomtatót, de órákig nem csinál semmit, a többi folyamat nem tudja használni addig.
Létrehoztak egy démonnak nevezett speciális processzust, és egy háttérkönyvtárat.
A processzus amely nyomtatni akar, először létrehozza a teljes nyomtatandó állományt, majd azt a háttérkönyvtárba helyezi. A démon dönti el, hogy mikor melyik processzus veheti igénybe a nyomtatót a háttérkönyvtárba rakott állomány nyomtatására.
A hálózati démon is hasonló dolgot végez.
B/K tevékenységek: B/K hívás, háttértárolás
Védelem, blokkolás, pufferezés, lefoglalás
Eszközregiszterek beállítása, állapot ellenőrzés
B/K befejeztével a meghajtó felébresztése
B/K művelet végrehajtása
A nyilak a vezérlés irányát mutatják.
Találat: 1673