FOGALMA

Egyrészt erőforrás kezelő rendszer, tehát operációs rendszer az a szoftver, ami kezeli a legfontosabb hardveres és szoftveres erőforrásokat (memória, processzor, I/O, háttértárak, fájlrendszerek, folyamatok, programok, a grafikus felület elemei, stb.). A komponensek az operációs rendszer szolgáltatásain keresztül érhetők el, és több felhasználó illetve folyamat esetén az operációs rendszer végzi az ütemezést és a hozzáférési jogosultságok kiosztását/ellenőrzését.

Másrészt virtuális gép, mert egy egységes környezetet biztosít a számítógépen futtatandó alkalmazásoknak. Ezért nem kell a programozónak a hardverrel foglalkoznia (kivétel a minimális erőforrások).

Feladatai: ütemezés, megszakításkezelés, folyamatvezérlés, tárkezelés, memóriakezelés, naplózás, perifériakezelés

Csoportosítása:

  • egy felhasználós, egyfeladatos: DOS (karakteres felület, zárt forráskód)
  • egy felhasználós, többfeladatos: Windows (grafikus felület, zárt forráskód)
  • több felhasználós, többfeladatos: Unix, Linux (grafikus/karakteres felület, nyílt forráskód)

Az operációs rendszer működési struktúrája

(rendszermag, indítófájl, külső és belső parancsok rendszere, opcionális kiegészítések)

 

Rendszermag (angolul kernel): az operációs rendszer alapja, egy háttérben futó, alapvető feladatokat ellátó program, amely felelős a hardver erőforrásainak kezeléséért (beleértve a memóriát és a processzort is).

multiplexálás: azon módszer a többfeladatos rendszerekben, ahol a kernel szabja meg, hogy melyik program és menynyi ideig használhatja a hardver egy adott részét.

Egy számítógép működéséhez nem feltétlenül szükséges operációs rendszer és annak magja: az egyes programok közvetlenül betölthetőek és használhatóak a „csupasz vason”, feltéve, hogy a programozó vállalja azt, hogy mindent 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 program elindításához a gépet újra kellett indítani. Az idő előrehaladtával apró segédprogramok, rutinok állandósulni kezdtek, azokat több programhoz is haszná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) programok vagy hibakeresők. Ezekből alakultak ki a kezdeti operációs rendszerek.

A kernelek négy fő kategóriája:

  • a monolitikus kernelek gazdag és hatékony absztrakciókat biztosítanak az alattuk található hardware elemekhez;
  • a mikrokernelek egy kisméretű alapkészletet biztosítanak a hardware kezeléséhez, és számos alkalmazással – amiket „szervereknek” nevezünk – biztosítják a további, részletesebb funkcionalitást;
  • a hibrid vagy módosított mikrokernelek hasonlóak a mikrokernelekhez de több, részletesebb kódot tartalmaznak a kernelmagban, hogy nagyobb sebességet érjenek el;
  • az exokernelek (vagy rendszer rutinkönyvtárak) nem biztosítanak absztrakciókat vagy állandó rendszermagot, hanem egy programokban használható rutinkönyvtárból állnak, ami a hardver közvetlen vagy közvetett eléré- sét biztosítja.

 

 

A kernel feladatai:

  • perifériák kezelése (billentyűzet, képernyő )
  • memória-hozzáférés biztosítása
  • processzor idejének elosztása
  • háttértárolók kezelése
  • fájlrendszerek kezelése

 

A Unix alapú operációs rendszerekben különféle parancssori értelmezők működnek, melyeket rendszerhéjnak vagy angolul shell-nek (konzol) nevezünk. Ez a rendszerhéj az összekötő kapocs a rendszer magját képező kernel és a fel- használó között. A shell-ből vezérelt gépek (szoktuk még karakteres felületnek is hívni) előnye, hogy jóval kisebb erő- forrás-igényűek a grafikus felületűeknél (GUI), ennek következtében stabilabbak, és gyorsabbak, így teherbírásuk miatt napjainkban főleg Unix alapú szervereken működnek.

Unix-típusú rendszerek alatt a felhasználó több rendszerhéj között is választhat, melyek mindegyike rendelkezik egyedi tulajdonságokkal, melyek segítségével bizonyos feladatok könnyebben elvégezhetőek, mint más rendszerhéjakkal. A számítógépbe történő bejelentkezés után a rendszerhéj indítja el az operációs rendszernek nélkülözhetetlen folyama- tokat és automatikusan induló programokat.

A shell programozható az úgynevezett shellscriptek segítségével. Ez egy speciális parancsnyelv, mely az operációs rend- szer által értelmezhető utasításokat tartalmaz, így a klasszikus értelemben vett programozási nyelvektől eltérően nincs szükség a kód lefordítására és linkelésére.

A shell feladatai

  • Kapcsolattartás a felhasználóval (felhasználói felület)
  • Alkalmazások futásának kezelése (indítás, futási feltételek biztosítása, leállítás)

 

Unix shell képességei (persze, a Windows alapját képező DOS-ban is megvannak ezen parancsok megfelelői):

  • saját parancsok kivitelezése

·         szkript-ek futtatása

  • feltételes kifejezések (if, case) és ciklusok (while, for) alkalmazása
  • belső parancsok használata (ld. lent)
  • pszeudo-parancsok létrehozása (alias)
  • belső változók használata
  • a környezet manipulálása új folyamatok indítása előtt
  • bemenet és kimenet átirányítása
  • több folyamat indítása, ezek adatcseréje csöveken (pipe) keresztül
  • folyamatok indítása a háttérben
  • a jelentkezési karakter definiálása (prompt)
  • külső parancsok keresési sorrendjének megadása
  • parancssorszerkesztés (command line editing) és kiegészítés (completion)
  • korábbi parancsok visszakeresése és szerkesztése (command history)

·         folyamatok (futó parancsok) megállítása (Ctrl+C) és újraindítása (Job Control)

  • számítási feladatok elvégzése (expr)
  • állománytulajdonságok tesztelése (test)
  • jelzések (signal) küldése (kill) és fogadása (trap)
  • más folyamat bevárása (wait), vagy pusztán várakozás (sleep)

Belső parancsok (a parancssoron belül működnek, nem rendelkeznek külső végrehajtó állománnyal):

  • fájl- és mappaműveletek (copy, del, ren, md)
  • navigálás a könyvtárrendszerben (cd, dir)
  • dátum és idő (time, date)
  • a parancssorra vonatkozó utasítások (cls, color)

Külső parancsok (egy külső futtatható állomány tartalmazza őket, amit a parancssor indít el):

  • háttértárak kezelése (format, scandisk, diskcopy, chkdsk)
  • memóriainformációk (mem)
  • súgó (help)
  • szövegszerkesztés (edit nano)
  • hálózati eszközök kezelése (ifconfig)

Az operációs rendszer feladatából következő jellemző működési területek

(memóriakezelés, folyamatvezérlés, megszakításkezelés, kommunikáció a perifériákkal)

 

M E M Ó R I A K E Z E L É S

A memória az egyik legfontosabb (és gyakran a legszűkösebb) erőforrás, amivel egy operációs rendszernek gazdálkodnia kell; főleg a többfelhasználós rendszerekben, ahol gyakran olyan sok és nagy folyamat fut, hogy együtt nem férnek be egyszerre a memóriába. A többfeladatos feldolgozás megjelenésével azonban szükségessé vált a memóriának a futó folyamatok közötti valamilyen „igazságos” elosztására. A megoldást a virtuálismemória kezelés jelentette. Ilyen- kor az operációs rendszer ad a központi memóriából egy akkora részt, amelyben a folyamat a legfontosabb részeit el tudja tárolni. A többit kirakja a háttértárra (az ún. lapozófájlba, Unix-ban ezt swap-nek hívják). Ez a megoldás azért működik, mert a programok legtöbbször egy eljáráson belül ciklusban dolgoznak, nem csinálnak gyakran nagy ugrásokat a program egyik végéről a másikra (ez a lokalitás elve). A központi egység fel van szerelve egy úgynevezett memóriakezelő egységgel (MMU), amely figyeli, hogy olyan kódrészre kerül-e a vezérlés, amely nincs benn a központi memóriában (mert például a háttértárra van kirakva). Memóriahasználat szerint a programokat 2 részre oszthatjuk:

  • rezidens (állandóan a memóriában van, gyorsabb, tűzfal, vírusirtó)
  • tranziens (csak meghíváskor töltődik be, helytakarékosabb)

F O L Y A M A T V E Z É R L É S

A folyamatok az elindított futó programok (process-ek). A folyamatvezérlés biztosítja a folyamatok erőforrásokhoz való hozzáférését. Ennek megoldása gyakran lehetetlenség, mert nem ismert a folyamatok jövőbeli erőforrás-szükséglete. Vannak olyan „megoszthatatlan” erőforrások (mint például egy DVD lejátszó), amelyet egyszerre csak egy folya- mat használhat, és abból adódhatnak a gondok, ha mégis két folyamat próbálja egyszerre használni őket. Például épp másolás folyik a DVD-ről, és közben párhuzamosan ugyanarról a DVD-ről akarok egy filmet megnézni. Az ilyen helyzet a deadlock, azaz holtpont. Általában ilyenkor a DVD-olvasó „kattog” ugrál a másolandó fájl, és a film között.

M E G S Z A K Í T Á S K E Z E L É S

A megszakítás a számítási rendszernek küldött jelzés, mely valamilyen esemény felléptéről értesíti. A megszakítások- nak eredetük szerint több típusát különböztetjük meg:

  • Megszakítás (Interrupt):
  1. 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
  • Kivétel (Exception):

a processzor generálja, ha valamilyen hibát, pl. nullával való osztást kellene végeznie, vagy a címszámításnál tapasztal valamilyen komoly hibát

  • Nem maszkolható megszakítás (Non Maskable Interrupt):

súlyos hardver hiba, pl. a memória hibája, vagy a tápfeszültség kimaradás esetén keletkezik. Nevéből is lát- szik, hogy ezzel a típussal komolyan kell foglalkozni. Általában azonnali leállással, kékhalállal (Windows) zárul.

  • Csapda (Trap):

olyan szoftver eredetű megszakítás, amely akkor keletkezik, ha egy felhasználói folyamat közvetlenül az ope- rá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). A megszakításokhoz legtöbb esetben prioritási szintek rendelhetők. Magasabb prio- ritású kérések megszakíthatják az alacsonyabb szintű kérések kiszolgálását.

A megszakításkezelés forgatókönyve többnyire a következő:

  1. Megszakításkérés érkezik.
  2. A processzor befejezi az éppen végzett műveletet, majd, ha éppen nincs letiltva az adott szintű megszakítás, elfogadja a kérést, ellenkező esetben várakoztatja.
  3. A processzor elmenti a futó folyamat állapotvektorát.
  4. 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.
  5. 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 megfe- lelő kiszolgáló rutin címét.
  6. A kiszolgáló rutin
  7. A CPU visszatér felhasználói (user) üzemmódba, és engedélyezi a letiltott megszakítási
  8. A processzor visszaállítja a megszakított folyamat állapotvektorát, ezzel visszaadva a vezérlést.

 

K O M M U N I K Á C I Ó A P E R I F É R I Á K K A L

Az operációs rendszer feladatai közé tartozik a perifériákkal való kommunikáció is. A perifériák a felhasználó és a gép interakcióját teszik lehetővé, de ez a kapcsolat nem közvetlen. A hardverelemekkel és erőforrásokkal az operációs rendszer kommunikál, ennek a hasznos részét közvetíti a felhasználó felé.

Több feladat párhuzamos végzésének szervezése

A különböző folyamatok, alkalmazások a multitasking megjelenése óta nem csak egymás után, hanem egymással pár- huzamosan is futhatnak. Így munka közben tetszés szerint váltogathatunk közöttük. Például böngészés közben zenét hallgathatunk. A különálló folyamatok elválasztása és párhuzamos futtatásának irányítása az operációs rendszer fel- adata. A szálak lehetnek azonos vagy különböző alkalmazás szálai, és az operációs rendszer szintjén végrehajtandó szálak is. Az egyik megoldási technológia az időosztásos többszálúság (TSM – Time-Slice Multithreading), amikor is egy szálon dolgozik a CPU, majd fix idő múlva vagy eseményvezérelten vált egy másik szálra. Ez persze több kihasználatlan ciklust is eredményez a váltások közti „üresjáratokban”, azonban elég jól „újrahasznosíthatók” a RAM késleltetési idők (amikor egy szálnak várnia kell a memória hozzáférésre), mivel közben lehetőség nyílik más szálak végrehajtására. Természetesen ennél jobb a valódi többszálúság, azaz amikor egy végrehajtó egység megszakítás nélkül tud egy thread-del „foglalkozni”, és párhuzamosan különböző processzorokban (processzormagokban) futnak a szálak.

 

Az operációs rendszer telepítése

Az adott operációs rendszert egy adathordozón (DVD, pendrive, régen: floppy, CD) kapjuk meg. A legtöbb nyílt forrás- kódú rendszer esetén a legegyszerűbb, ha magunk letöltjük (a kiadó oldaláról, torrentszerveréről; ált .iso fájl), és kiírjuk egy lemezre, pendrive-ra. Ha a számítógépen még nincs operációs rendszer csak behelyezzük az adathordozót és elin- dul a telepítés. Ha van már valami telepítve, akkor először át kell állítani a BIOS-ban (bootloader) az ún. boot-sorren- det. Ha elindult a telepítés, először a partíciókat kell meghatároznunk (esetleg formázni, felosztani). Ezek után csak követni kell a telepítő által adott lépéseket, beállítani a WiFi kapcsolatot (ethernet esetén nem szükséges), a felhasználónevet, jelszót, számítógép nevét.

Amennyiben hálózati telepítést alkalmazunk, bizonyos beállítási lépéseket (esetleg az összeset) kihagyhatjuk. Például adathordozóra kiírás, felcsatolás, partícionálás, felhasználói beállítások.

 

 

Az operációs rendszer betöltődésének folyamata

Az operációs rendszer feladatai közé tartozik, hogy felkészítse a számítógépet az alkalmazások futtatására. Az indítási folyamat során pontosan ez történik. Miután a számítógép öntesztje lefutott, a BIOS keresni kezdi az operációs rend- szer indítófájlját a rendszerbetöltő szektorokban (ált. boot mappa), és az elsőt elindítja. Ezután az indított rendszer, (ha érzékel más rendszert is) felajánlja a választási lehetőséget (ezt hívják dual-boot-nak). Először a kernel töltődik be és indul el. Innentől rendszerfüggő a folytatás, de nagy vonalakban általánosítható.

  • eszközök inicializálása: A rendszer keresi az új hardvereszközöket, a meglévőkhöz pedig betölti és elindítja az illesztő (DOS-ban pl. config.sys)
  • szolgáltatások elindítása GUI (Graphical User Interface – grafikus kezelőfelület)
  • felhasználói interakció megkezdése
  • bejelentkeztetés: több felhasználós rendszerek esetén (opcionális)
  • automatikusan induló programok indítása – antivirus

A számítógép kikapcsolásának módjai, az operációs rendszer feladatai a kikapcsolás során

Amennyiben lehetséges, ajánlott kijelentkezni a rendszerből ha több felhasználó profilja is be van jelentkezve a gépen, illetve ha csak terminálként használjuk a gépet. Ezek után a leállításra kattintva a rendszer leállítja a futó programokat, szolgáltatásokat, folyamatokat, végül a vírusirtót, és a rendszerfolyamatokat. Ezek után megszünteti az áramellátást.

Az operációs rendszerek tipikus hibaüzenetei, hibajelenségei, ezek elhárítási módja

Elsősorban a híres nevezetes BSOD-ről (Blue Screen Of Death, magyarul kékhalál, vagy végzetes kivételhiba) emlékeznénk meg. Végzetes rendszerhibát jelent, amikor a számítógép nem tudja tovább működtetni még az alapvető rend- szerfolyamatokat sem. BSOD után reménykedhetünk, hogy újraindításkor nem történik semmi váratlan. A legrosszabb az információtartalom hiánya. Igazából nagyon sok (sémás) szöveg van ott (főleg régebbi Windows), de az információ- tartalma minimális. Például: STOP: 0xC0000218 UNKNOWN_HARD_ERROR

A valaha volt leghíresebb kékhalált maga Bill Gates (A Microsoft alapítója, vezérigazgatója) kapta a Windows 98 be- mutatóján.

Egyéb hibák:

  • védelmi hibák: illesztőprogram-hiba, sérült fájlok
  • érvénytelen laphibák: szabálytalan művelet
  • eszközkezelő hibák
  • hiányzó rendszerfájlok
  • rendszermag hibák (kernel)

Teendők: elolvasni a dokumentációt, esetleg rákeresni a hibakódra Google-ön. Fórumokon nagyon jó megoldásokat lehet találni. Általában egy kis registry edit, pár illesztőprogram újratelepítés, és kész is…

Hardver eszközök üzembe helyezése, beállítása (konfigurálása), eltávolítása

A hardver eszközök (billentyűzet, egér, nyomtató, scanner, pendrive stb.) csatlakoztatása a megfelelő portra a legelső lépés (USB, HDMI, VGA, PS/2, soros, PCI-E stb.). Amennyiben UPnP (Universal Plug and Play) eszközt csatlakoztatunk, az operációs rendszer felismeri (esetleg driver-t (illesztőprogramot) telepít), és már használhatjuk is. Lecsatlakoztatás- kor először ajánlott a szoftveres csatlakozást megszüntetni, és csak azután kihúzni az eszközt a csatlakozójából. Ez különösen fontos háttértáraknál, hogy elkerüljük az adatvesztést.

A szoftverek telepítése, beállítása, eltávolítása

A szoftvereket általában egy futtatható állomány (pl. .exe) segítségével telepíthetjük a gépünkre, amiben pusztán a telepítési varázsló lépéseit kell követnünk. Általában két lehetőség közül választhatunk, ha a gyors vagy express telepítést választjuk, a telepítő varázsló csak kevés kérdést tesz fel (azoknak előnyösebb, akik nem értenek annyira hozzá). Választhatjuk a custom telepítést is, ebben kiválaszthatjuk, hova szeretnénk telepíteni az adott szoftvert, esetleg hogy  telepítse-e az összes komponenst, vagy egyénileg választjuk ki, vagy hogy akarunk-e ikont az asztalon, tálcán stb. El kell olvasnunk, és el kell fogadnunk a licencszerződést hogy a program feltelepüljön (általában az elolvasását helytellenül kihagyjuk, ezt sok program ki is használja). A szoftverek eltávolítása Windowsban történhet a Vezérlőpulton keresztül, vagy közvetlenül az uninstaller (eltávolító) futtatásával. Mindemellett létezik sok program, ami érzékeli, ha a program hagyott maga után valami szemetet, vírust.

 

Mindemellett mostanság egyre több operációs rendszer (kezdve a mobil OS-ekkel) áll át a központi alkalmazásboltos (app store) megoldásra. (Android, iOS, OSX, Windows 8-tól, és számos Linux disztribúció, pl. Ubuntu)

Szoftverek futtatása és leállítása, memória felszabadításának kérdései

Beállíthatunk a számítógép indulásakor automatikusan induló szoftvereket, vagy manuálisan is futtathatjuk őket, ami- kor szükségünk van rá. Az automatikus induló programok hátrány, hogy rendszerindításkor elveszik az erőforrásokat a rendszertől, és a fontosabb programoktól, ezért tűnik lassúnak a gép bootoláskor. A futó programoknak nem feltétlen van látható ablakuk, vannak háttérben futó szolgáltatások is. A futó programokat a feladatkezelőben tudjuk megtekinteni, erőforrás-használatukat ellenőrizni, vagy leállítani. Linux parancssorban a ps -ef paranccsal tudjuk megtekinteni a futó folyamatokat és a kill paranccsal tudjuk leállítani őket. Az éppen nem használt programok leállításával erőforrást (pl. memória, processzor) szabadíthatunk fel a többi futó program javára.