Az operációs rendszer szerkezete, szolgáltatásai Felhasználói programok Rendszerhívások
Válaszok Kernel
Eszközkezelők
Megszakításvezérlés
Perifériák
Az operációs rendszer szerkezete, szolgáltatásai Felhasználói programok Programkészítési támogatás Felhasználói folyamatok kiszolgálása
Rendszerhívások
Válaszok Kernel
Processzorkezelés, Memóriakezelés, Állománykezelés Eszközkezelők Megszakításvezérlés
Eszközvezérlők
Megszakításvezérlő
Perifériák
Az operációs rendszer szerkezete, szolgáltatásai
A réteges felépítés lényege, hogy az egyes rétegek meghatározott, jól definiált interfészeken keresztül kapcsolódnak egymáshoz, tehát egy réteg cseréje (például egy új periféria típus megjelenése) nem igényli az egész operációs rendszer átírását.
Kernel
Feladata: ● Az erőforrások elosztása és kezelése ● A felhasználói folyamatok igényeinek kielégítése, adminisztrálása.
Kernel
Önmagában is folyamatok sokasága. A rendszer felállásától a leállításig futnak. Létrehozza a felhasználói folyamatokat, a folyamatleíró blokkokat, memóriaterületet biztosít, gondoskodik a processzoridő elosztásáról, a folyamatok sorrendjének meghatározásáról.
Kernel
Védelmi funkciók: a felhasználói folyamatok elválasztása, védelme egymástól, illetve az illetéktelen beavatkozásoktól. Minden utasításnál ellenőrzési funkciók – ált. hardvertámogatást igényel.
Rendszerhívások, válaszok
Kommunikáció a felhasználói folyamatok és az operációs rendszer magja között. Leggyakoribb módja: a szoftvermegszakítás. A vezérlés a rendszerszoftver meghatározott helyére adja.
Rendszerhívások, válaszok A processzor üzemmódjai: Felhasználói üzemmód – a felhasználó folyamatai. Korlátozott utasításvégrehajtás. Kernel üzemmód: teljes utasításkészlet használható – csak az operációs rendszer használhatja. Ha a felhasználó programja számára tiltott utasítást használ (pl. erőforráskezelő utasítások), az „csapdába esik” (trap) és a vezérlés az operációs rendszerhez kerül.
Rendszerhívások kiszolgálása 1. A felhasználói folyamat legfontosabb paraméterei elmentődnek. 2. A kernel megfelelő folyamatára kerül a vezérlés. 3. A paraméterek átadásra kerülnek a vermen (stack), a regisztereken vagy valamely közösen használt memóriaterületen keresztül. 4. A processzor rendszermódba kapcsolódik át. (Ezt gyakran már a rendszerhívó utasítás maga megteszi). 5. Elindul a megfelelő rendszerfolyamat, végrehajtja a kívánt feladatot. 6. A válaszok vagy hibakódok valamely paraméterátadásra szolgáló területre kerülnek. 7. A processzor visszatér felhasználói módba. 8. A megszakított folyamat visszakapja a vezérlést.
Eszközkezelők, megszakításkezelés Az eszközkezelők létjogosultságának oka: ● A kernelnek nincs ideje a különböző eszközök specialitásaival törődni – egységes felületen keresztül kezeli őket. ● Az operációs rendszer és a perifériák nem együtt fejlődnek – a rendszer újabb, fejlettebb perifériákat kezel vagy ugyanazt a perifériát több rendszer is kezelheti. Az eszközkezelők készítése megoszlik a hardver és az operációs rendszer készítői közt.
Megszakítások
A perifériák megszakításkéréssel hívják fel magukra a figyelmet, pl. adatátvitel kezdésekor, befejezésekor, vagy hardverhiba esetén. A folyamat hasonló a rendszerhívásokhoz, a kiszolgáló rutin kiválasztása eltér.
Megszakítások A processzor egy megszakításvezetékkel rendelkezik – ezen jelez minden periféria. Forrás meghatározása: 1. polling: a perifériák végigkérdezése - lassú 2. Vektoros megszakításkezelés: hardveres támogatás. A megszakításvezérlő több bemenettel rendelkezik, mindegyikhez egy memóriaszó tartozik a megfelelő rutin címével.
A megszakítások fajtái 1)Megszakítás (Interrupt): Egy periféria, mely jelezheti így egy régen várt adat megérkezését, de megszakítást okoz a rendszer órája is. 2)Kivétel (Exception): A kivételeket maga a processzor generálja, ha valamilyen hibát, például nullával való osztást kellene végeznie, vagy a címszámításnál tapasztal valamilyen komoly hibát. 3)Nem maszkolható megszakítás (Non Maskable Interrupt): súlyos hardver hiba, például a memória hibája, vagy a tápfeszültség kimaradás esetén keletkezik. Nevéből is látszik, hogy ezzel a típussal komolyan kell foglalkozni. 4)Csapda (Trap): olyan szoftver eredetű megszakítás, amely akkor keletkezik, ha egy felhasználói folyamat közvetlenül az operációs rendszerhez fordul (rendszerhívás), vagy olyan utasítást próbál végrehajtani, amihez nem lenne joga (önálló hardver kezelés).
Megszakítások prioritása
A megszakításokhoz legtöbb esetben prioritási szintek rendelhetők. Magasabb prioritású kérések megszakíthatják az alacsonyabb szintű kérések kiszolgálását. A megszakítások általában letilthatók, de ezzel az operációs rendszerek csak indokolt esetben élnek, hiszen fontos adatokat veszthetnek el.
A megszakítások kiszolgálása 1.Megszakításkérés érkezik. 2.A processzor befejezi az éppen végzett műveletet, majd, ha éppen nincs 3.letiltva az adott szintű megszakítás, elfogadja a kérést, ellenkező esetben 4.várakoztatja. 5.A processzor elmenti a futó folyamat állapotvektorát. 6.A CPU privilegizált (kernel) üzemmódba kerül, és letiltódik az összes olyan megszakítás, melynek prioritása kisebb vagy egyenlő az érkezett megszakításéval. 7.A központi egység megállapítja a megszakításkérés helyét, és a megszakítási vektortáblából kikeresi a megfelelő kiszolgáló rutin címét. 8.A kiszolgáló rutin fut. 9.A CPU visszatér felhasználói (user) üzemmódba, és engedélyezi a letiltott 10.megszakítási szinteket. 11.A processzor visszaállítja a megszakított folyamat állapotvektorát, ezzel 12.visszaadva a vezérlést.
A megszakítások kiszolgálása
A megszakítást kiszolgáló rutin kernel módban fut, kénye-kedve szerint bármit megtehet!