Ugrás a tartalomhoz

Operációs rendszerek mérnöki megközelítésben

Benyó Balázs, Fék Márk, Kiss István, Kóczy Annamária, Kondorosi Károly, Mészáros Tamás, Román Gyula, Szeberényi Imre, Sziray József

Panem Kiadó

3. fejezet - 1. Bevezetés

3. fejezet - 1. Bevezetés

Az operációs rendszerek alapvető részét képezik bármelyik számítógépes rendszernek. Egy operációs rendszer olyan program, amely közvetítőként működik a felhasználó és a számítógép hardvere között. Elsődleges célja, hogy biztosítsa azt a környezetet, amelyben a felhasználó kényelmesen és hatékonyan végre tudja hajtatni a saját programját. A másodlagos cél a számítógép hardverjének minél hatékonyabb használata. Mindehhez az is szükséges, hogy az operációs rendszerek megfelelő szolgáltatásokat nyújtsanak a programoknak és a programok felhasználóinak azzal a céllal, hogy a programfejlesztési feladat könnyebbé váljék.

A számítógépes rendszerek lényegében három fő komponensre oszthatók: hardver, rendszerprogramok (melyek egészét vagy részét képezi az operációs rendszer), valamint alkalmazói programok.

A hardver – a központi feldolgozó egység (CPU: Central Processing Unit), a memória, valamint a bemeneti/kimeneti (I/O: Input/Output) egységek – szolgáltatják az alapvető számítási erőforrásokat. Az alkalmazói programok a felhasználók számára segítik elő saját feladataik megoldását. A rendszerprogramok leglényegesebb része az operációs rendszer, amely a számítógépes rendszer helyes működését biztosítja, vagyis vezérli és koordinálja a hardver felhasználását a különböző alkalmazói programok között. Az operációs rendszer pontos meghatározása nem egységes, a különböző iskolák más-más megközelítései révén eltérő nézetek terjedtek el.

A fejezet további részében először az operációs rendszer lehetséges értelmezéseit elemezzük. A következő alfejezetben az operációs rendszerek fejlő­déstörténetét vizsgáljuk részletesebben. Végül pedig az 1.3. alfejezetben a számítógép rendszerek modelljével és architekturális kérdéseivel foglalkozunk.

1.1. Mit nevezünk operációs rendszernek?

Van egy olyan mondás, miszerint „Szoftver nélkül a számítógép csak egy össze-vissza gubancolt ócskavas-halom”. Bárki, aki dolgozott már számítógéppel – bármilyen rövid ideig is – tisztában van ennek a mondásnak az igazságával. A legtöbb ember számára a „szoftver (SW: Software)” szó alkalmazói (application) vagy másszóval felhasználói (user) szoftver-t jelent, azaz olyan programokat, amelyek segítségével tervezhetünk egy űrhajót, kiszámíthatjuk az adónkat, mozijegyet vásárolhatunk vagy játszhatunk. Ez azonban az igazságnak csak egy része.

Képzeljük el, hogy odaültetnek bennünket egy olyan számítógép elé, amely tényleg csak a puszta hardverből (HW: Hardware) áll, semmilyen szoftver nem található rajta: Hogyan lennénk képesek az említett feladatokat megoldani? De még az olyan egyszerű dolgok is gondolkodást igényelnének, mint két szám összeadása, nem is beszélve a szorzásról, osztásról.

Szerencsére azonban a helyzet a valóságban – legalábbis a számítógép történetének nagyobbik felében – ennél sokkal jobb, mert a szoftvernek van egy általában nem mindig látott, de mindig használt rétege (layer), amely a felhasználó (itt ne csak emberi felhasználókra gondoljunk, a rendszer szempontjából felhasználó lehet valamilyen gép vagy akár egy másik számítógép is) és a hardver között helyezkedik el, olyan környezetet teremtve, amely lehetővé teszi az alkalmazó számára a számítógép kényelmes és hatékony használatát. Ezt hívják operációs rendszernek (operating system).

Az operációs rendszer fogalmát nemigen tudjuk pontosan meghatározni, különböző irányzatok más-más „szigorúsággal” állnak a kérdéshez. Abban mindenki egyetért, hogy az operációs rendszer része a mag (kernel), vagyis az a program, amely feltétlenül szükséges a gép működéséhez és amely közvetlenül vezérli azt. Régebben ezt úgy is meg lehetett közelíteni, hogy a kernel az a program, amely állandóan fut. A dinamikus kernel megjelenése óta azonban ez utóbbi definíció már nem állja meg teljesen a helyét. A másik véglet szerint az operációs rendszerbe tartoznak azok a – tulajdonképpen felhasználói – rendszerprogramok (system program) is, amelyek a gép általános felhasználását segítik, például a fordítók, szövegszerkesztők, parancsértelmező.

E könyv a nézetek különbözőségét figyelembe véve megpróbál inkább az operációs rendszer két szintjéről beszélni. A belső, szűkebben értelmezett szint a kernelt takarja, míg egy tágabb szint alatt a köznapi értelemben vett operációs rendszert értjük – azaz mindazokat a programokat, amelyeket egy felhasználó a gép vásárlásakor megkap. Lényeges különbség a kettő között, hogy a kernel el van rejtve, „védve van (hardvervédelem) a felhasználó elől, azaz ehhez a felhasználó nem fér hozzá, nem tudja módosítani és – elrontani. Bizonyos rendszerprogramokat célszerű, ha elérhet a felhasználó, mert így azokat úgy tudja alakítani, hogy használatuk számára a legkényelmesebb legyen. A hardver- és szoftverrétegek egy lehetséges egymásra épülését az 1.1. ábra mutatja.

Az alkalmazói programok tehát a felhasználó problémáit oldják meg, míg a rendszerprogramok a számítógép saját tevékenységét irányítják. Ezen belül az operációs rendszer felügyeli az összes erőforrást (resource), továbbá biztosítja azt a környezetet, amelyben az alkalmazói programok futhatnak. Vezérli mind a programok, mind az erőforrások működését, valamint meggátolja a számítógép hibás felhasználását.

1.1. ábra. ábra - A számítógépes rendszer egymásra épülő rétegei

A számítógépes rendszer egymásra épülő rétegei


A hardver hatékony használatának biztosítása tekintetében az operációs rendszer feladatát – erőforrás kezelés – „alulról”, a hardver oldaláról fogalmaztuk meg (ezt hívják „bottom-up view”-nak). Erőforrás alatt mind hardver-, mind pedig szoftvererőforrásokat értünk (CPU-idő, memória, perifériák, állományok, adatok stb.), melyeket a felhasználók céljaik elérése érdekében használni szeretnének. A sok, sokszor ütköző vagy ellentmondó igény között az operációs rendszernek kell döntenie és az igényelt erőforrásokat felhasználóhoz rendelnie úgy, hogy hatékony, biztonságos és igazságos működést biztosítson.

A kényelmes használat biztosítása tekintetében – megkönnyíti a programozást – „felülről”, a felhasználó oldaláról (top-down view) közelítünk az operációs rendszerhez. Az operációs rendszer önmagában nem végez (kívülről nézve) hasznos tevékenységet, de olyan környezetet biztosít, amelyben a felhasználói programok képesek hasznos munka végzésére. Ezt úgy is tekinthetjük, hogy az operációs rendszer egy olyan réteget képez a hardver fölött, amely elrejti annak körülményességét és bonyolultságát a programozó elől, és kibővíti a számítógép hardver szolgáltatásait. Így a felhasználó egy sokkal kellemesebb tulajdonságokkal rendelkező virtuális gépet (virtual machine, extended machine) lát.

Manapság a felhasználóbarát (user friendly) virtuális gép, illetve környezet biztosítása egyre növekvő fontosságú alapkövetelmény minden operációs rendszerrel szemben. Hosszú időt igényelt azonban, amíg eljutottunk ide. A következő fejezetben ezt a történeti fejlődést tekintjük át röviden, hangsúlyozva azt, ahogyan a hardver- és szoftvertechnikai előrelépések kölcsönösen egymásra hatottak, kedvező lökést adva a továbbfejlődésnek.