• Nem Talált Eredményt

Rendszermag (kernel)

In document Számítógépes architektúrák I. (Pldal 150-153)

10. Az operációs rendszerek szerkezete és szolgáltatásai

10.2. Rendszermag (kernel)

Rendszermag (angolul kernel): az operációs rendszer alapja (magja), amely felelős a hardver erőforrásainak kezeléséért, beleértve a memóriát és a pro-cesszort is.

A többfeladatos rendszerekben – ahol egyszerre több program is futhat – a kernel felelős azért, hogy megszabja, hogy melyik program és mennyi ideig használhatja a hardver egy adott részét (ezen módszer neve a multiplexálás). A hardver elemek használata gyakran bonyolult programrészeket igényel, ezért ezt a feladatot gyakran egységes, absztrakt hardverelérést biztosító részekkel támogatja. Ezek a részek elrejtik a bonyolult módszereket és egy tiszta, egysze-rű felületet biztosítanak, amivel megkönnyítik a hardverelemeket használó programozók munkáját.

hatóak a „csupasz vason”, feltéve, hogy a programozó vállalja azt, hogy min-dent közvetlenül, operációs rendszeri segítség nélkül fog kezelni. A kezdeti számítógépek esetén ez volt a normális működési mód: minden egyes új prog-ram elindításához a gépet újra kellett indítani. Az idő előrehaladtával apró se-gédprogramok, rutinok állandósulni kezdtek, azokat több programhoz is hasz-nálták, és kialakultak azok a szokásos programrészek, melyeket újraindítás után újra használni szerettek volna, mint például egyes betöltő (indító, boot) prog-ramok vagy hibakeresők. Ezekből alakultak ki a kezdeti operációs rendszerek.

A kerneleknek négy fő kategóriáját különböztethetjük meg (eltekintve azon programkörnyezetektől, melyek kernel nélkül futnak):

 a monolitikus kernelek gazdag és hatékony absztrakciókat biztosítanak az alattuk található hardverelemekhez;

 a mikrokernelek egy kisméretű alapkészletet biztosítanak a hardver ke-zeléséhez, és számos alkalmazással – amelyeket „szervereknek” neve-zünk – biztosítják a további, részletesebb funkcionalitást;

 a hibrid vagy módosított mikrokernelek hasonlóak a színtiszta mikrokernelekhez de több, részletesebb kódot tartalmaznak a kernel-magban, hogy nagyobb sebességet érjenek el;

 az exokernelek (vagy rendszer rutinkönyvtárak) nem biztosítanak abszt-rakciókat vagy állandó rendszermagot, hanem egy programokban hasz-nálható rutinkönyvtárból állnak, ami a hardver közvetlen vagy közvetett elérését biztosítja.

10.2.1. A rendszermag feladatai, rendszervezérlési feladatok

Adminisztráció

Az adminisztrációs feladatok részben a felhasználók számára lehetnek fon-tosak, másrészt az optimális működés beállítása és a hibajavítás segítése céljá-ból vannak beépítve.

Védelmi funkciók

A védelmi funkciók sokrétűek: védeni kell a rendszert a futó felhasználó programoktól, a felhasználói programokat egymástól, az adatokat a sérüléstől és az illetéktelen hozzáféréstől. Ez különösen fontos feladat egy hálózatos kör-nyezetben.

A CPU kezelése (processzorkezelés)

Az operációs rendszer felügyelete alatt a gépen futó programot folyamat-nak (process) nevezzük. A felhasználói folyamatokat feladatfolyamat-nak vagy taszkfolyamat-nak hívjuk, megkülönböztetve őket a rendszer folyamataitól. A processzor folyama-tokhoz rendelése, használatának üzemezése a rendszermag ütemezőnek (sheduler) nevezett komponensének a feladata, ami maga is egy rendszerfo-lyamat.

Sokszor növelni lehet a rendszer hatékonyságát úgy, hogy a folyamatokat is több, önállóan is végrehajtható szálra (thread) bontjuk. A többszálú (multithreading) operációs rendszer ütemezője a folyamatok helyett tehát fo-lyamatszálakat kezel. A többszálú folyamatok is egyetlen szállal indulnak a be-töltés után. Ezt elsődleges (primary) szálnak nevezzük. A szálak futás közben létrehozhatnak további szálakat is.

Az operatív tár (operatív memória) kezelése

A rendszermag memóriakezelő részeinek a többfeladatos rendszerekben biztosítaniuk kell a folyamatok számára szükséges tárterületet, illetve meg kell oldaniuk az ilyenkor jelentkező védelmi problémákat. A tárkezelési filozófiák hosszabb fejlődés után mára szinte egységesen virtuális tárakat használnak. A virtuális memóriakezelés a futtatható programok méretét az operatív memóri-ánál nagyságrendekkel nagyobb, a merevlemezes háttértár kapacitásával ösz-szevethető méretűre terjeszti ki.

A legtöbb operációs rendszer esetén a rendelkezésre álló főtár (memória) nem elegendően nagy ahhoz, hogy az összes aktív folyamat egyidejűleg a me-móriában tartózkodjon. Ezért gondoskodni kell arról, hogy a megfelelő időben az inaktív folyamatokat a főtárból eltávolítsuk, és helyükbe újakat hozhassunk.

Az átmenetileg kipakolt folyamatokat háttértárolókon helyezzük el. Azt sem nehéz elképzelni, hogy egy nagyméretű program egyedül sem fér el a memóri-ában, és ezért kisebb részekre kell bontani. A rendszer feladata tehát, hogy megoldja a programrészek cseréjét a kellő pillanatban, illetve kezelje azt az esetet, amikor a mozgatni kívánt memóriaterület részben vagy egészben nem található a főtárban. Az áthelyezés automatikus, nincs szükség arra, hogy a program speciális parancsokat tartalmazzon a végrehajtásához.

A megszakítások feldolgozása

A megszakítások kiszolgálásakor a futó programok által használt eszközök igényeit kell kielégíteni. Megszakításra lehet szükség például egy, a billentyű zet-ről küldött karakter fogadásához, vagy a belső időzítő óra kérésére.

Az eszközkezelők (illesztő programok, driverek) egy részét az eszköz vagy a periféria gyártója szokta elkészíteni, és külön telepítést (installálást, setupot) igényelnek. A telepítés során egy feljegyzés készül róluk egy rendszerállomány-ba (a config.sys-be vagy a registry-be), amelynek segítségével rendszertöltéskor a kernelbe épülhetnek. Mivel ilyenkor a korábbi rendszermag megváltozhat, az operációs rendszert a telepítés után újra kell tölteni (a gépet újra kell indítani).

Ma már, a „csatlakoztasd és használd” (Plug and Play, rövidítve PnP), módszert alkalmazzák, ami automatikussá teszi az illesztett periféria felismerését és a megfelelő illesztőprogram kernelbe építését. A hibátlan működést ekkor az operációs rendszer gyártója garantálja. Az eszközkezelőkre további, a felhaszná-ló számára a periféria kezelését, tesztelési és beállítási lehetőségeket biztosító programok épülhetnek. Ezek már alkalmazásnak tekinthetőek.

Állománykezelés

Az operációs rendszer feladata az adatok gyors elérhetőségének biztosítá-sa, a megbízható adatmegőrzés, a tároló hellyel való takarékos gazdálkodás és a felhasználói igényekhez alkalmazkodó adatszerkezetek kialakítása. A fájlrend-szerek egy része az operációs rendszerre, más része az adathordozó típusára jellemző.

Hálózatkezelés

A hálózati kommunikáció az operációs rendszerektől független szabvá-nyokra épül. Az ISO OSI-albizottsága dolgozta ki azt a jól strukturált hétrétegű modellt, amit a létező protokollok többé-kevésbé követnek. A hálózati kapcso-latokat kezelő operációs rendszerek tervezésekor figyelembe kell venni az aláb-biakat: bizonyos funkciókat szét lehet osztani a hálózati erőforrások között, valamint a hálózatokkal együtt járó adatvédelmi, biztonsági követelmények egy része csak kernel szinten biztosítható megnyugtatóan.

In document Számítógépes architektúrák I. (Pldal 150-153)