kategória | ||||||||||
|
||||||||||
|
||
Az operációs rendszer feladata a be és kiviteli eszközök kezelése (processzusokat ad számukra, kezeli a megszakításokat és a hibákat)
Biztosítja az eszközök és a rendszer többi része közötti kapcsolatot.
Blokkos eszközök:
Az információkat adott méretű blokkokb 131d31b an tárolja, mindegyiknek van saját címe. Az egyes blokkok írhatóak, olvashatóak az összes többitől függetlenül.
Pl.: lemez
Karakteres eszközök:
Karaktereket fogad, vagy bocsát ki, bármiféle blokkszerkezettől függetlenül. Ilyen eszköz nem címezhető, és keresési műveletet sem tud végrehajtani.
Pl.: nyomtató, egér (általában ami nem lemez jellegű)
Nem igazán jó ez a csoportosítás, hiszen vannak olyan eszközök, melyek nem sorolhatók be sehová. Pl.: órák (megszakításkérők). Azonban ezek mégis elég jók ahhoz, hogy az operációs rendszerek eszközfüggetlen programozásukat megvalósíthassa. Ez az eszközmeghajtók segítségével érhető el. Ezek eszközfüggő, alacsonyabb szintű szoftverek.
A B/K eszközök mechanikus és elektromos összetevőkből épülnek fel. Az elektromos komponenst eszközvezérlőnek (adapternek) nevezik. (Ez rendszerint egy nyomtatott áramkör)
A mechanikus komponens maga az eszköz.
Sok vezérlő képes több eszközt irányítani.
Ha a vezérlő és az eszköz között szabványos kapcsolódási felület van, (ISO, ANSI, IEEE), akkor a gyártó cégek a kapcsolódási felülethez illeszkedő eszközt képesek készíteni.
Pl.: lemezmeghajtó egységek az IDE (Integrated Drive Electronics), vagy az SCSI (Small Computer System Interface) lemezvezérlő kapcsolódási felülethez illeszthető.
Az operációs rendszer majdnem mindig a vezérlőkkel foglalkozik és nem az eszközzel!
Lemezek esetében a vezérlő feladata, hogy a bitsorozatból, bájtokból álló blokkokat szervezzen és a szükséges hibajavításokat is elvégezzen.
Memóriába leképezett B/K:
Egyes vezérlők saját regiszterrel rendelkeznek a CPU-val való kommunikációhoz. Ezeket a *** a memóriába képezik.
Az operációs rendszer a B/K parancsokat a vezérlő regiszterekbe írja. Ezután a vezérlő feladata ezen parancsok végrehajtása. A végrehajtás után a vezérlő megszakítást hoz létre, hogy az operációs rendszer a CPU-val leellenőriztesse a művelet eredményét.
A CPU kiolvassa az eredményt a regiszterekből.
DMA nélkül a lemezes olvasások a következőképpen mehetnek végbe:
A vezérlő folyamatosan olvas az eszközről egy blokkot a perifériába, míg egy teljes blokk kialakul. Hibajavító kódot számol és ellenőrzi. Ezután megszakítást idéz elő. A pufferből az adatokat bájtonként szedi ki, és a memóriába pakolja (ezt az op. rendszer teszi meg). Ezzel sok CPU idő vész kárba, ezért hozták létre a DMA-t.
DMA: A CPU két részből álló információt ad a vezérlőnek:
egy memóriacímet
beolvasandó bájtok számát
Miután a vezérlő egy teljes blokkot bemásolt a pufferbe, ellenőrzi a hibát, majd bemásolja az első bájtot a főtárba arra a címre, amit a DMA memóriacíme kijelöl. Ezután a DMA címet növeli, és a DMA számláló értékét csökkenti a mozgatott bájtok számával. Miután a DMA számláló 0 lesz, megszakítást kér a vezérlő.
Az op. rendszer már a memóriából szedi ki a kívánt bájtokat.
Miért van szükség pufferre?
A meghajtóegység egy blokk tartalmát egyszerre képes szolgáltatni, függetlenül attól, hogy a vezérlő készen áll e a fogadásra vagy sem, a sínrendszer pedig erőforrás.
A winchester lemezeinek a forgása során két blokk, amelyek egymás mellett vannak 2 fordulat alatt olvasható ki. Elsőt kiolvassa, majd továbbítja a memória felé, azután a másikat olvassa és küldi tovább.
A közéillesztésnél 2 egymás melletti blokkot elválasztanak egy harmadikkal. Ez időt szolgáltat a két blokk egy fordulatú ***.
A közéillesztést vagy az op. rendszer, vagy ami jobb megoldás, a vezérlő végzi.
Találat: 1756