Operációs Rendszerek - 1 rész

 Általános bevetés

  • Az operációs rendszer fogalma
    • A legtöbb felhasználó használja az operációs rendszert, azok szolgáltatásait anélkül, hogy meg tudná fogalmazni mi is az operációs rendszer
    • Azt tudja, hogy a rendszer egy szoftver ami
      • Kezeli a gépet
      • Parancsokat tud fogadni
      • Tartoznak hozzá eszközök, állományok
  • Két véglet
    • A számítógépen közvetlenül futó program
      • Operációs rendszer magja
      • Minden más felhasználói program
      • Linux, Unix
    • Minden, ami a gép általános használatához szükséges
      • Minden ami "operációs rendszer"-ként érkezik
      • Szövegszerkesztő, dokumentumkezelő, ablakozó rendszer
  • Wikipedia
    • Operációs rendszernek (röviden OS az angol operating system alapján) nevezzük a számítástechnikában a számítógépeknek azt az alapprogramját, mely közvetlenül kezeli a hardvert, és egy egységes környezetet biztosít a számítógépen futtatandó alkalmazásoknak (például szövegszerkesztők, játékok stb.)
    • A kezelt hardvererőforrásoknak része többek között memória, a processzor, a merevlemez és a perifériális eszközök használata
  • Iso
    • Az operációs rendszer olyan programrendszer, amely a számítógépes rendszerben a programok végrehajtását vezérli
      • Ütemezi a programok végrehajtását
      • Elosztja az erőforrásokat
      • Bizstosítja a felhasználó és a számítógépes rendszer közötti kommunikációt 
        • Minnél kényelmesebb és jobb kommunikációt
  • Az operációs rendszer célja
    • A felhasználó kényelme
      • A számítógép egyszerű és kényelmes használata
      • Elsősorban kis gépeknél szempont
      • Egyre nagyobb fontosság
    • Hatékony gépkihasználás 
      • Az erőforrások minnél jobb kihasználtsága
        • Adott idő alatt a lehető legtöbb program végrehajtása
      • Nagyobb gépeknél
      • Fontossága csökken
  • Számítógép feelépítésa
    • Felhasználó -> Alkalmazói programok -> Operációs rendszer -> Számítógép
  • Az operációs rendszer mint virtuális gép
    • Fentről lefelé megközelítés
    • Az operációs rendszer magas szintű absztrakciót biztosítja a felhasználóknak
      • Eszközök, állományokhivatkozása szimbolikus neveken, használatuk magas szintű müveletekkel (megnyitás, olvasás, másolás)
      • Elrejti a részleteket a felhasználó elől
      • Perifériafüggetlenség a hasonló, de részleteiben különböző eszközökhöz (HHD-CD)
    • Az Operációs rendszer kényelmessé teszi a hardvare használatot és a programozást
  • Az operációs rendszer mint erőforrás kezelő
    • Lentről felfelé megközelítés
    • Az operációs rendszer feladata, hogy elossza az erőforrásokat a gépen futó, az erőforrásokért versengő programok között
      • Hardvare erőforrások (processzor, központi tár, háttér, perifériák)
      • Szoftver erőforrások (alkalmazások, adatbázisok)
      • Emberi erőforrás (felhasználók, operátorok)
    • Ide tartoznak még az erőforrások
      • védelme
      • konfliktusok feloldása
      • használat számbavétele
    • Az operációs rendszer hatékonnyá teszi a hardvare használatát
Az operációs rendszerek története
  • Korai rendszerek
    • Ugyanazok az emberek terveték, készítették és használták a számítógépeket
    • Nincs operációs rendszer
      • A hardver nagy és drága
      • Papír alapú perifériák
      • Programozás gépi nyelven
      • A programozó végzi a kezelési feladatokat is
    • Hátrány
      • A hibakezelés ideje kiszámítathatatlan
      • A gép kihasználatlan
    • Megjelennek a mágnesszalagok
    • Fejlődnek a programozási nyelvek
      • Megjelennek az első fordító programok
      • Programkönyvtárak
        • Például I/O müveletek elvégzése
      • Egyszerűsödik a programozás, de a futtatás előkészítésének az ideje még mindig nagy
    • Megkülönböztetünk
      • Tervezőket
      • Építőket
      • Operátorokat
      • Programozókat
      • Karbantartókat
    • Kötegelt feldolgozás
      • Szakképzett operátor -> gyorsabb gépkezelés
      • Nincs közvetlen hibakeresés
      • A programozó futtatáshoz szükséges adatokat, utasításokat rendel a programhoz
      • Az operátor csoportosítja a munkát illetve azok egyes fázisait (például fordítások egyszerre és csak utána futtatás)
        • ezt nevezzük kötegelt futtatásnak
    • Hátránya
      • A program befejeződésének vagy hiba miatt leállásának vizsgálata az operátor feladata -> lassú reakcióidő
    • Egyszerű monitor
      • Az operátor csak a perifériákat kezeli
      • A gép vezérlését egy állandóan a memóriában lévő program (monitor) végzi
      • A mellékelt információkat a monitor értelmezi és hajtja végre
      • Program leállása után a monitor kapja meg a vezérlést (nem kell az operátorra várni)
  • A perifériás müveletek gyorsítása
    • Miért van rá szükség
      • A periféria nagyságrendekkel lassabb, mint a processzor 
      • Nagy I/O igényű programoknál a processzor kihasználtsága kicsi
    • Megoldások
      • Off-line I/O müveletek
      • Pufferelés
      • Spooling (Simultaneous Peripheral Operations On-Line)
  • Off-line I/O müveletek
    • A bemeneti és kimeneti perifériás műveleteket külön számítógépek végzik
    • Három számítógép müködik párhuzamosan
      • A bemeneti oldalon egy számítógép átmásolja a kártyákat mágnesszallagra
      • A kimeneti oldalon egy másik számítógép másolja át az adatokat kártyákra
      • A középső (feldolgozást végző) számítógép periféria-függetlenné válik
    • Hátránya
      • Több processzor (drága)
      • A szallagok cseréje nehézkes
  • Pufferelés
    • A központi egység és a perifériák párhuzamosan működnek
    • A beolvasás egy gyors pufferbe történik
    • Ha a pufferből a CPU elvette az adatokat, akkor kezdődhet a következő adatok beolvasása
    • Az adat feldolgozása és a következő beolvasása egy időben történik (átlapolt feldolgozás)
    • A hardver fejlődésével nagyobbak a pufferek
    • Valamelyest kiegyenlítődik a periféria és a CPU közötti sebbeség különbséget
    • Hátrány
      • Csak akkor hatékony, ha a program perifériás műveleteknek az ideje közel megegyezik a CPU működésének idejével
  • Spooling
    • Megjelennek a gyors véletlen hozzáférésű mágneslemezek
    • Puffer helyet a mágneslemezeket alkalmazunk a perifériák adatainak a tárolására
    • A különböző feladatok perifériás és feldolgozási műveletei lehetnek egy időben -> nagyobb az esély a kiegyenlítődésre
    • A véletlenszerű elérés miatt a munkák futási sorrendje változhat -> kisebb teljesítmény ingadozás
  • Multiprogramozás
    • A CPU egyre gyorsabb, a lemezről történő olvasás ideje még mindig nem összemérhető vele
    • Érdemes kihasználni a várakozási időt egy műsik program futtatásával
    • Látszólag egyszerre több program fut
    • Első megoldások
      • Memóriát partíciókra osztották
      • Amikor a processzor végzrt nem kellett megvárnia, hogy az eredmény perifériába kerüljön, rögtön kezdhette a következő feladatot
      • Hardveres védelem az átcímzés ellen
  • Időosztásos multiprogramozás
    • A multiprogramozás lépései
      • A rendszer tárolja és nyílvántartja a az elvégezendő munkákat
      • Egy munka addig fut, amíg várakozni nem kényszerül (általában perifériás műveletek)
      • A várakozás okénak feljegyzése
      • Másik (futni képes) munka elindítása
      • Ha a várakozási idő megszűnik, a várakozó munka elindulhat, ha szabad a CPU
    • Megoldandó feladatok
      • Több program van egyszerre a központi tárba (memóriában) -> tárgazdálkodás
      • Egyszerre több program is lehet futásra kész -> CPU ütemezés
      • Több program is ugyanazt az erőforrást akarja használni ->az erőforrások használatának koordinálása: erőforrás alllokáció, holtpont kezelés
      • A programok egymást és az operációs rendszer működését nem zavahatják -> védelmi mechanizmusok
  • Napjaink rendszerei 
    • Korszerű kötegelt rendszerek
    • Időosztásos rendszerek (timesharing)
    • Elosztott operációs rendszerek
    • Valósidejű rendszerek (real-time system)
    • Beágyazott operációs rendszerek
  • Korszerű kötegelt rendszerek
    • Csak a neve maradt meg, az eredeti elv megszünt
    • A programok futtatásába nem lehet interaktívan beavatkozni
    • Tipikusan nagygépes rendszerek
    • Hátrányok
      • Az átfutási idő hosszú (amig eredményt kapunk)
      • Hibakezelés nehezen megvalósítható
        • Eredmények alapján
        • Program elszállása esetén memóriakép, regiszterek
  • Időosztásos rendszerek
    • Több felhasználó interaktív kezelése
    • A felhasználók adatainak kezelésére állományok (file) használat
      • Állomámyrendszerek, könyvtárak
    • A felhasználó nagyon lassú a géphez képest -> egyéb feladatok elvégzése
    • A rendszer válaszideje kicsi kell, hogy legyen -> gyakran kell a programok között váltani, gyakrabban, mint egyébként szükséges lenne
    • Speciális védelmi mechanizmusok a több felhasználó miatt
  • Elosztott operációs rendszerek
    • A számításokat több CPU között osztják meg
    • Szorosan csatolt rendszerek
      • Közös tárterület
      • Homogén (azonos típusú CPU-k) vagy inhomogén
      • Szimmetrikus (egygenrangú CPU-k) vagy assszimetrikus
    • Lazán csatolt rendszerek
      • Kommunikációs csatornák
  • Elosztott operációs rendszrek előnyei:
    • Erőforrás megosztás
      • Más gépekhez kapcsolódó erőforrások használata
    • Terhelés megosztás
      • Párhuzamos végrehajtási programrészek megosztása
    • Megbízhatóság
      • Meghibásodás esetén más gép átveheti a kiesett rész helyét
      • Redudancia szükséges
    • Kommunikáció
      • Programok között
      • Felhasználók között
  • Valósidejű rendszerek
    • A külső hatásokra azonnal reagálni kell
    • Folyamatirányításnál van nagy szerepük
    • Általában célhardveren, ROM-ba égetve futnak
    • Kemény valós idejű rendszerek (hard real-time)
      • Szigorúan definiált és betartott válaszidők
      • Kritikus rendszerek (például atomreaktor, járművek)
      • Adattárolás (RAM,ROM)
        • Másodlagos adattárolást (diszk) nem támogatják
      • Általános célú operációs rendszerek nem támogatják
    • Puha valós idejű rendszerek (soft real-time)
      • A válaszidők betartására törekednek, csúszás megengedett
      • Nem kritikus folyamatirámyítási feladatok
      • Multimédia rendszerek, virtuális valóság
  • Beágyazott operációs rendszerek
    • Háztartási berendezések, mobiltelefonok, járművek, játékok
    • Nem általános célú, nem független az alkalmazástól 
    • Korlátos erőforrások, korlátos szolgáltatások
  • Hardver fejlődés következményei
    • Olcsön nagy mennyiségnem lehet számítógépet előállítani
      • Személyi számítógépek
      • Munkahelyen mindenki számára külön számítógép
    • Következmény
      • Visszaesés a védelemben (mindenki csak a saját rendszeréért felelős)
      • Interaktivitás
      • Felhasználóbarát kapcsolattartók
      • Játékra is jó -> mindenki használja, mindenki "szakértő"
Operációs rendszerek osztályozása
  • Osztályozási szempontok
    • Hardver mérete
    • Kapcsolattartás típusa
    • Cél
    • Folyamat kezelés, felhasználók száma
    • CPU időkiosztás
    • Memóriakezelés
    • I/O koncepciók, állományrendszerek
  • Hardver mérete szerinti osztályozás
    • Mikroszámítógépek operációs rendszerei
    • Kisszámítógépek operációs rendszerei
    • Negygépek operációs rendszerei
  • Kapcsolattartás típusa szerinti osztályozás
    • Kötegelt feldolgozású operációs rendszerek
    • Interaktív operációs rendszerek
  • Cél szerinti osztályozás
    • Általános célú operációs rendszerek
      • Egyidejúleg használjuk őket
        • Programfejlesztésre
        • Alaklmazások futtatására
        • Adatbázisok lekérdezésére
        • Kommunikációra
    • Speciális típúsu operációs rendszerek
      • Egyetklen célt szolgálnak
        • Folyamatvezérlést
        • Tranzakció feldolgozás
  • Folyamat kezelés, felhasználók száma szerinti osztályozás
    • Egyprocesszoros gépek rendszere lehet
      • Single tasking (egy időben egy folyamat lehet)
      • Multi tasking (egy időben több folyamat lehet)
    • Felhasználók száma szerint lehet
      • Egy felhasználós (Single user)
        • Lehet single, de lehet multi tasking rendszer
      • Több felhasználós (multi user)
        • Multi tasking rendszer kell, hogy legyen
  • Időkiosztás szerinti osztályozás
    • Szekvenciális
      • Egy folyamat feldolgozása után kapcsol át a másikra
    • Event pooling
      • Az a folyamat lesz aktív, amelyik eseményt kap (billentyű lenyomása, ablakba lépés)
      • Addig aktív egy folyamat, amíg egy másik folyamat aktívvá nem válik
      • Kooperatív rendszerekben egy folyamat saját elhatározásából is lemondhat a processzorról
    • Megszakítás vezérelt
      • Minden I/O megszakításnál a folyamatok prioritása újraértékelésre kerül
      • Ha nincs I/O megszakítás, akkor a folyamat nem mond le önként a processzorról
    • Beavatkozó rendszerű
      • Nem csak I/O megszakításoknál, hanem bizonyos óramegszakításoknál is újraértékelődik a priorítás
      • Elveszi a processzórt a folyamattól, ha van magasabb priorítású folyamat
        • Klasszikus időosztásos rendszerek
        • Valós idejű rendszerek
  • Memória kezelés szerinti osztályozás
    • Valós címzésű rendszerek
      • Fix partíciókra bontás
      • Változó partíciók
    • Virtuális címzésű rendszerek
      • Ki/be söprő (swapping in/out) rendszerek
      • Igény szerint ki/be lapozó (demand paging ) rendszerek
      • Ki/be söprő és lapozó (swapping and paging) rendszerek
Operációs rendszrek struktúrája
  • Bevezetés
    • Az operációs rendszer egy réteg, amely a felhasználót elválasztja a hardvertől
    • Az operációs rendszer rendszermagja (kernel) az elválasztó réteg
  • Lehetséges struktúrák
    • Egyszerű monolitikus szerkezet
    • Rétegszerkezet
    • Virtuális gépek
    • Kliens-szerver modell
    • Vegyes szerkezetek
  • Monolitikus szerkezet
    • Nincs struktúra
    • Az operációs rendszer szolgáltató eljárások (services routines) gyűjteménye
      • Felhasználói programból rendszerhívással 
        • A processzor felhasználói módbol kernel módba vált (trap)
      • Másik szolgáltatói rutinból hívással
        •  Nincs szükség módváltásra
  • Rétegszerkezet
    • Nagy program és komplex felépítés
    • Logikus részekre bontás
      • Legalább három réteg: hardver, operációs rendszer, felhasználói program
    • Egy réteg csak az alatta és a felette lévővel kommunikálhat
      • Csak tiszta rétegszerkezetnél
      • Nem mindig követhető
    • A rétegek tovább bonthatók modulokra
      • A modulok használhatják egymás szolgáltatásait
  • Példa rétegszerkezetre
    • Felhasználói programok
    • Periféria meghajtók
    • Virtuális tárkezelés
    • I/O csatornák
    • CPU ütemezés
    • Hardver
  • Virtuális gépek
    • Egy úgynevezett "Virtual Machine Monitor" fut a hardveren
    • Ez több virtuális gépet biztosít a felette lévő rétegek számára
    • Minden virtuális gép egyforma, bit szinten megegyezik a rendszerrrel
    • Szeparáltan valósítja meg a multiprogramozást
    • Valódi operációs rendszer is kell a virtuális gépre
  • Kliens-szerver modell
    • A kernek méretének csökkentése érdekében sk funkció magasabb rétegbe kerül
    • A folyamatok üzenetküldéssel igényelnek szlgáltatásokat a szolgáltató folyamatoktól
    • A szolgáltató folyamatok önállóan linkelhetők
    • Ebből az ötletből fejlődött ki az elosztott rendszerek elve
  • Unix kernel funkcionális felépítése

Az operációs rendszer feladata
  • Alapvető feladatok
    • Végrehajtói környezet biztosítása
    • Erőforrások kiosztása
    • Vezérlés
  • Végrehajtási környezet
    • Olyan környezet, ahol a felhasználók és a programjaik hasznos munkát végezhetnek
    • A számítógép hardverszolgáltatásainak a bővítése
    • Elrejti a "piszkos" részleteket, könnyű felhasználhatóságot biztosít
  • Erőforrás kiosztás
    • Kezeli a rendszer erőforrásait
      • CPU
      • Központi tár
      • Merevlemez
    • Tulajdonságai
      • Hatékony
      • Biztonságos
      • Igazságos felhasználás
  • Vezérlés
    • Vezérli a felhasználói programok müködését
    • A felhasználói programok helyett vezérli a perifériák müködését
  • Rendszerhívások
    • A felhasználói programok használni akarják a hardvert
    • Az operációs rendszer biztosítja a felületet
    • A kapcsolattartás a felületen keresztül rendszerhívásokkal történik
    • Általában speciális gépi utasítás segítségével történik
      • Közvetlen rendszerhívások assembly nyelvnél
      • Programkönyvtárak magasabb szintű nyelveknél
  • Rendszerhívások lépései
    • Paraméterátadás
    • Mülödési mód váltása
      • Felhasználói program futásakor az operációs rendszer felhasználói módban van, ekkor bizonyos utasítások nem végrehajthatók
      • Rendszermódban az oprációs rendszer utasítással hajtódnak végre, közvetlen harveres elérés
    • Paraméterek másolása
      • Saját területre történő másolása (ha szükséges)
    • Az igényelt szolgáltatás végrehajtása
    • Visszaadott paraméterek másolása
    • Visszatérés a hívó programhoz (mód váltás)
  • Fontosabb modulok
    • Folyamatatok kezelése
    • Központi tár kezelés
    • Perifériakezelés 
    • Állományok kezelése
    • Védelmi mechanizmusok
    • Hálózati kezelés
    • Kezelői felület
  • Folyamatok kezelése
    • A folyamat végrehajtás alatt lévő program
      • Dinamikusan változhat a statikus programmal szemben
    • A rendszer és a felhasználói folyamatok új folyamatokat hozhatnak létre
    • A folyamatoknak erőforrásokra van szükségük
    • CPU ütemezése a folyamatok között
    • Szinkronizációs mechanizmusok
    • Folyamatok közötti kommunikáció
  • Központi tár kezelés
    • Egy folyamat elindulásakor memóriára van szükség
    • Futás közben további tárterület lefoglalása és felszabadítása
    • Virtuális tárkezelés
      • Nincs folyamat teljes tárterülete a memóriában, a nem szükségesek a háttértárra kerülhetnek
      • Több fizikai memória marad a többi folyamattal szemben
      • Memóriahasználat nyílvántartása
  • Perifériakezelés
    • A folyamatok perifériafüggetlenségének biztosítása
      • Szabványos felületű periféria-meghajtók (devices driver)
    • Az átviteli pufferelés a CPU és a periféria sebességkülönbségének kiegyensúlyozása
    • Mágneslemeznél szükséges lehet a kérések kiszolgálásának ütemezésére
  • Állományok kezelés
    • A háttértáron álományokban tároljuk az információt
    • Az állomány (file) elrejti az információtárolás részleteit a felhasználó elől
    • Az állományok csoportosítása hierarchikus könyvtárstruktúra
    • Állományok létrehozása, törlése, olvasása, írása, módosítása
    • Biztonsági mentés (backup) készítése
  • Védelmi mechanizmusok
    • Védekezni kell
      • Hardver- és Szoftverhiba
      • Illetéktelen beavatkozás
    • Hardver védelem
    • Operációs rendszer védelmi mechanizmusai
  • Hálózatok kezelése
    • Felhasználók kommonikációja
    • Felhasználók távoli géppel való kommunikációja
    • Távoli erőforrások használata
  • Kezelői felület
    • Kommunikáció a felhasználóval
      • Programok elindítása
      • Eredmények megjelenítése
      • Interakció
    • Parancsértelmező hajtja végre a felhasználói utasításokat
      • Karakteres (parancssoros)
      • Grafikus (ablakozó rendszer) GUI
      • Hangvezérelt
  • Rendszerhívásokkal elérhető szolgáltatások
    • Folyamatok vezérlése
      • Programok betöltése, végrehajtása
      • Folyamatok létrehozása, leállítása
      • Központi tár igénylése, felszabadítása
      • Folyamatok közötti kommunikáció és a folyamatok szinkronizálása
      • Nyomkövetés (debug) hibakereséshez
    • Állományok kezelése
      • Állományok létrehozása, törlése, attribútumainak módosítása
      • Könyvtárak létrehozása, törlése, módosítása
      • Állományok megnyitása, lezárása, írása, olvasása, módosítása (szekvenciális vagy véletlen elérés)
    • Rendszerinformációk kezelése
      • A rendszerkomponensek állapotának lekérdezése, módosítása
        • Folyamatok
        • Állományok
        • Perifériák
      • Rendszerstatisztikák, naplózás
    • Kommunikáció
      • KOmmunikációs csatornák
        • Létrehozása
        • Megszüntetése
      • Üzenetek
        • Küldése
        • Fogadása
      • Műveletek távoli erőforrásokon