Á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ő"
- 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
- 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