Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
1 Tartalomjegyzék - Témakörök:
1.Alapfogalmak, definíciók, az operációs rendszer
2.A számítógéprendszer hierarchikus rétegződése 3.Az operációs rendszer alapvető funkciói 4.Az operációs rendszerek osztályzása
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
2 1. Az operációs rendszer definíciója Olyan program (programrendszer), amely a számítógépen futó összes folyamat végrehajtását vezérli (ISO szabvány szerinti megfogalmazás)! sokan azt hiszik ez maga a „GÉP” a hardver és a felhasználó között van nagyméretű és bonyolult program a legjobb hardver is csak „vas” operációs rendszer nélkül
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
3 1.1. A számítógépes rendszer hardver és szoftver rétegekből felépülő hierarchikusan strukturált rendszer Rétegek: hardver operációs rendszer fejlesztőeszközök (assembly, 3GL,4GL) alkalmazói programok Réteg: funkciók halmaza rétegszolgáltatások, interface-ek
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
4 Hierarchikusan rétegelt rendszer:
Alkalmazók
Alkalmazói prog.
Fejlesztőeszközök
Operációs rendszer
Hardver - maga a gép
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
5 A hardver réteg elemei: CPU: processzor(ok), memória vezérlők, csatornák, perifériák (a gép)
Az operációs rendszer réteg:
kiterjesztett rendszerarchitektúrát szolgáltat használhatóvá teszi a gépet a fejlesztőeszközök és az alkalmazói rendszerek számára
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
6 Az operációs rendszer főbb részei: a) gépkezelői beavatkozást megvalósító rész - rendszerkonfigurálás - működési statisztikák lekérdezése - programok indítása, kilövése, állapotuk lekérdezése b) I/O műveletek komplett felügyelete - I/O sor kezelése, műveletek indítása - külső egységekről érkező megszakítások kezelése
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
7 c) a multiprogramozás vezérlését megvalósító rész - szétosztja az erőforrásokat - értelmezi a munkavezérlő nyelvet - fogadja, értelmezi az operátori parancsokat - futásra ütemezi a várakozó processzeket - működteti az adott parancsértelmezőt (akár többet is - legyen az karakteres vagy grafikus)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
8 A fejlesztőeszköz réteg: minden, ami programfejlesztéshez szükséges fordítók, interpreterek, linkerek, 4GL eszközök, program generátorok (szintaktikai és szemantikai analízis, kódgenerálás és kódoptimalizálás,) fejlődése: gépi kód; assembly; 3GL: Fortran, ALGOL, COBOL, Pascal, C, stb.; 4GL eszközök, programgenerátorok, vizuális eszközök Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 9 Alkalmazói réteg: az alkalmazásfejlesztőket támogató alkalmazási szoftverekből áll össze, növeli a számítógép használati értékét alkalmazói programok belövését, tesztelését és indítását, futtatását segítő, támogató eszközök további programfejlesztést nem igénylő programok, amivel önálló alkalmazások hozhatók létre (beépített makró-futtató rendszerek)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
10 Alkalmazók (emberek): az egyes felhasználói csoportok, akik különböző módokon igénylik a számítógépet a mindennapi életben, akik a legtöbbet akarják kapni a géptől, de a legkevesebbet akarják tudni róla - ezek köre állandóan bővül
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
11 1.2. Az operációs rendszer fő feladatai: - taszkok ütemezése, összehangolása - erőforrások kezelése - I/O műveletek megszervezése - hibakezelés - a helyes és optimális működés biztosítása - program -és adatvédelem biztosítása - kapcsolattartás a felhasználókkal
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
12 - naplózás és számlázás - a hardver lehetőségeinek optimális és maximális kihasználása (a hardver pedig segíti a operációs rendszer működését) - megszakításkezelés - monitoring (felügyelő funkciók) - rendszeradminisztráció
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
13 Tipikus operációs rendszeri funkciók:
operátori (felhasználói) interface biztosítása
a gép és a külvilág kapcsolatát biztosító I/O műveletek támogatása multiprogramozást lehetővé tevő funkciók biztosítása Fontos: nem minden operációs rendszer valósít meg minden funkciót teljes körűen!
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
14 Az operációs rendszer, tehát egy olyan szoftver eszköz, amely - biztosítja a hardver kezelését, működtetését (rendszeroperátori tevékenységek) - elfedi a hardver speciális kötöttségeit - vezérli a programok működését, futását - szervezi a programok adatforgalmát - elosztja a közösen használt erőforrásokat
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
15 - optimálisan igyekszik kihasználni az erőforrásokat (multiprogramozás) - az egyes igényeket, kérelmeket fogadja és kiszolgálja - vezérli a hardver egységeket egy adott cél érdekében - naplózza, adminisztrálja a rendszer eseményeit
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
16 1.3. A multiprogramozás: Ha az operációs rendszer egyidőben - látszólag - több programot is vezérel Megvalósításának feltételei (amikor egy folyamat nem használja a processzort): - I/O művelet esetén - szoftver/hardver hiba - a processz befejeződik - a processz önként lemond a CPU-ról - az op. rendszer időként visszaveszi a vezérlést
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
17 Folyamatok versengése: A folyamatok (processzek vagy taszkok) versengenek az erőforrások használatáért. Az operációs rendszer ütemezi és adminisztrálja az egyes erőforrásokat és a versengő folyamatokat Teljes körű ellenőrzés a operációs rendszer kezében van: azt lehet, amit megenged (várakozás + sorba állás + adminisztrálás = ütemezés)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
18 Folyamatok (processzek) osztályzása időbeli lefutásuk szerint: soros - időben egymást követően párhuzamos - időben egymást átlapolva futnak szinkron - párhuzamosak, olyan kapcsolatban állnak egymással, hogy valamelyik kiváltja a másik működését pl. egy szinkronjel segítségével aszinkron - párhuzamos, de egymástól független folyamatok
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
19 izokron - egyidejűleg működő párhuzamos folyamatok ütemezett párhuzamos - szimultán konkurens folyamatok, párhuzamosak, de közülük csak egy- egy halad a többi vár - megfelelő ütemezési politika szerint haladnak (fontos: az operációs rendszer ütemező algoritmusa)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
20 2. A hierarchikus rétegek - az operációs rendszer szemszögéből 2.1. A hardver 2.1.1. A processzor Főbb jellemzői: utasítás rendszer, utasításkészlet címzési rendszer, módszer megszakítás rendszer védelmi rendszer
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
21 2.1.2 Utasítás rendszer Utasításkészlet: azon utasítások, melyeket a CPU végre tud hajtani 1,2,3 vagy esetleg 0 operandusú gépi utasítások, Felépítése: műveleti kód + operandusok (adatok, regiszterek, de el is maradhat)
CISC: komplex utasításkészletű processzor
RISC: szűkített utasításkészletű processzor
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
22 RISC: nagyságrenddel kevesebb utasítást tartalmaznak mint a CISC processzorok, viszont azokat sokkal gyorsabban sőt sok esetben párhuzamosan hajtják végre (superskalár processzorok). Speciális igényeknek jobban megfelel, hatékonyságuk nem minden területen megfelelő. Bővített utasításrendszer: meglévő utasítások felhasználásával mikroprogramokat lehet írni, s ezeket mint új utasításokat használhatjuk
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
23 2.1.3. Címzési módszerek: - közvetlen (direkt vagy egyenes) címzés: közvetlen az operatív tár bájtjára mutat - indirekt címzés: index regiszteres (indexregiszter tartalmazza a megfelelő címet), bázisregiszteres címzés (bázisregiszter tartalma egy alapcím, ehhez adódik hozza az ún. eltolás = így kapjuk meg a a végleges címet) - virtuális címzés: amikor a tényleges cím nem az operatív tárban van, hanem egy közvetlen elérésű gyors háttértárolón (pl. mágneslemez). Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 24 Virtuális címzéshez szükség, hogy a processzor nagyobb területet tudjon címezni, mint a tényleges operatív tár mérete Társzervezés: akkor van rá szükség, ha processzor nem tudja címezni a teljes operatív tárat. Ilyenkor szegmensekre osztják a fizikai memóriát, s a processzor egyszerre egy szegmenst tud belátni
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
25 2.1.4. Megszakítási rendszer A processzor valamilyen okból az éppen futó processz következő utasítása helyett egy teljesen más címen levő másik program utasításait hajtja végre Az operációs rendszer az előbb futó processzt valamilyen okból felfüggeszti egy megszakítással, majd később visszaadja a vezérlést, ha még az lehetséges Megszakítás: hardver vagy szoftver; külső vagy belső Adott esetben részleges vagy teljes tiltás is lehetséges Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 26 Miért kell a megszakítás? Bizonyos tevékenységeket csak az operációs rendszer végezhet el, alkalmazói program nem I/O művelet lebonyolítása hardver eszköz állapotváltozása hibák kiszűrése rendszeradminisztráció lebonyolítása ütemezése, szinkronizálások, rendszerhívás
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
27 Megszakítások okai: a) programhiba miatt - érvénytelen utasítás - címzési hiba - nullával való osztás - túlcsordulás, stb. b) géphiba miatt - hardver eszközök hibája
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
28 c) szoftverből generált megszakítás (SVC, INT) miatt d) külső megszakítás miatt - timer tick (időzítő) - interrupt billentyű - másik processzortól érkező kérelem e) I/O művelet miatt - I/O műveleti igény, kezdés vagy vég - esetleg I/O hiba
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
29 A megszakítás menete: - megszakítási kérelem érkezik a központi egységhez - az operációs rendszer átveszi a vezérlést - ha a megszakítás tiltott, akkor várakozni kell (ciklikusan vagy csak meghatározott ideig - time out) - amikor elfogadja, akkor kezdi a megszakítás-vezérlő a processz állapotvektorát (regiszterek) lementeni (operációs rendszer)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
30 - elmentés után a megfelelő megszakítási vektorból előveszi a CPU a megszakítási rutin induló állapotvektorát, és átadja a vezérlést az rutin első utasítására - fut a megszakításvezérlő, felderíti a megszakításkérelem okát, és annak megfelelően elvégzi a dolgokat. Normál esetben eközben már újra engedi a megszakításkérelmeket, de lehet hogy az adott megszakítás vagy akár mindegyik tiltva (!) van
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
31 - a komplett lefutás után visszaadja a vezérlést az operációs rendszerek, aki dönt a további programfuttatásról (ütemezés) - futtatás: állapotvektor visszatöltése, CPU-ra kapcsolás (az operációs rendszer visszaadja a vezérlést valamely programnak) Fontos: egyáltalán nem biztos, hogy az operációs rendszer ütemezője annak a processznek adja vissza a vezérlést, aki az adott megszakítást kérte; ekkor a megszakítás eredménye rendszerterületen tárolódik
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
32 Fontos továbbá még az is, hogy a rendszer minél rövidebb ideig legyen megszakítás fogadására alkalmatlan (védtelen) állapotban
CPU működési állapotok:
- normál üzemmód: az utasításkészlet csak egy rész érhető el - privilegizált üzemmód: minden utasítás elérhető és végrehajtható
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
33 Operációs rendszer: mindig privilegizált módban működik - ezt nevezzük Supervisor vagy Master módnak Felhasználói programok: mindig normál módban használja a CPU-t I/O műveletek csak privilegizált állapotban hajthatók végre
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
34 Megszakításkezelést elősegítő eszközök: - CPU működési állapotok - több regiszterkészlet bevezetése - megszakítási maszk bevezetése - megszakítási osztályok - párhuzamosítás - megszakítási precedenciák, prioritások, sorrendek - gyors utasítások az állapotvektor mentésre/töltésre
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
35 2.1.5. A védelmi rendszer Csak akkor lehet megvalósítani, ha van a CPU-nak normál és privilegizált üzemmódja is
Célja: megakadályozni az illetéktelen hozzáféréseket
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
36 Védeni kell: a CPU-t az operatív tárat (tárvédelmi regiszterek) az I/O műveleteket a megszakításokat CPU-t elrontani nem lehet, de kerülni kell a végtelen ciklust, mert akkor állandón foglalt a CPU - ezért van az, hogy időönként visszaveszi a operációs rendszer a vezérlést; így kilőhető a végtelen ciklusba esett program
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
37 Központi tár védelme:
- fontos, mert itt van az operációs rendszer is
- több program van betöltve (multiprogramozás) - el kell érni, hogy a programok csak a saját területükre írhassanak, ha mégis máshova akarna, akkor le kell állítania az operációs rendszernek - tárvédelmi kulcsok (tárvédelmi regiszterek) tartalmazzák a programokhoz tartozó memória kezdetét és végét - esetenként közös tárterületről lehet olvasni (de csak azt, és azt is az operációs rendszer felügyelete alatt!)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
38 I/O műveletek védelme:
- védeni kell a perifériális programhibát (pl. nem
figyeljük az EOF-et) - közösen használt perifériákat megfelelően ütemezni kell Megoldás: I/O műveletet csak privilegizált módban lehessen végrehajtani - csak az operációs rendszer teheti ezt meg - felhasználói program csak kérelmezheti az I/O lebonyolítását
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
39 2.2. Tárak
- operatív tár: maga a memória; lehet gyorstár vagy
normál tár; fajtái: RAM (EDORAM, DRAM, SDRAM, FlashRAM, ROM, PROM, EPROM, EEPROM Gyorstár: nagyságrenddel gyorsabb innen az adat és utasítás elérés, mint a normál tárból, drágább is, kevesebb van belőle mint a normál tárból
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
40 A gyorstárat nem mindenki használhatja egyformán: - egyes esetekben csak az operációs rendszer használhatja - más esetekben, a felhasználói programok is használhatja a gyorstár egy részét, míg az operációs rendszer az egészet Régen, amikor a regiszterek nem a processzorban voltak, akkor a gyorstárban foglaltak helyet a számukra (regiszterkészletek!)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
41 - háttértárak: adattárolásra: mágneses, optikai (CD, CD-RW, DVD), egyéb elektronikus háttértárak - virtuális tár: processzor által címezhető tár (mintha operatív tár lenne), amely közvetlen elérésű háttértáron helyezkedik el Virtuális tárkezelés esetén a valós operatív tárat meghaladó méretű programokat is lehet futtatni Programok, adatok az operatív tárban helyezkednek el, innen veszi elő a processzor őket végrehajtásra (lásd gépi kódú utasítás végrehajtási sémája)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
42 3. Az operációs rendszer alapvető funkciói: a) rendszeradminisztráció: minden ami a gép, a hardver és a futó folyamatok vezérlése megkíván, szükségessé tesz a normális működés érdekében b) programfejlesztési támogatás: amit a szoftverfejlesztés megkíván az adott operációs rendszer keretein belül c) alkalmazói támogatás: alkalmazói programok indításához, kezeléséhez, használatához nyújtott op. rendszerbeli segítség
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
43 3.1. Rendszeradminisztráció - processzor ütemezés - valós és virtuális tárkezelés - megszakításkezelés - folyamatvezérlés - szinkronizálás - hibakezelés - erőforrás-kezelés - adatállomány (file és katalógus) kezelés - perifériakezelés - naplózás, számlázás - operátori tevékenységek támogatása Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 44 3.2. Programfejlesztési támogatás:
- szövegszerkesztő (programers editor) biztosítása a
forrásprogramok, scriptek elkészítéséhez - esetleg fordítók (compilerek), értelmezők (interpreterek), linkage editorok (linkerek), egyéb CASE eszközök biztosítása (ma már ez nem divat), ritkán bináris LIB-ek mellékelése - az operációs rendszer rutinjainak elérése, meghívása valamely megszakításon keresztül (TRAP, SVC, INT)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
45 3.2.1. A fordító (compiler) - a forráskód szintaktikai és szemantikai ellenőrzése - kódgenerálás, kódoptimalizálás
Előnyei: bináris kódtárolást valósít meg
a kód gyors futású, újrahasznosítható bináris könyvtárazási lehetőségek könnyű modularizálási lehetőségek
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
46 Hátrányai: nehézkes hibakeresés, javítás nem sok esetben hordozható inkompatibilitási problémák
A fordító inputja: egy vagy több forrásállomány
outputja: egy tárgykódú (OBJ) file
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
47 3.2.2. A linker (linkage editor - programszerkesztő) A fordítás után létrejött tárgykód még nem betölthető és futtatható, ezért van szükség a linker-re A linker inputja és outputja inputja: egy vagy több tárgykódú file bináris könyvtár(ak) - LIB-ek output: a mindenkori operációs rendszer számára futtatható program, lehet több fajta is
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
48 3.2.3. Az értelmező (interpreter) Menet közben utasításonként vagy soronként értelmezi a forráskódot. Értelmezés: szintaktikai ellenőrzés, gépi kódúvá alakítás, azonnali végrehajtás Előnyei: gyors, azonnali hibakezelés, hibakeresés és javítás, egyszerű tárolás, könnyű módosíthatóság, hordozhatóság Hátrányai: nincs bináris tárolás (talán a p-code?), lassú, helyenként körülményes (lásd ciklusok), interpreter szükségessége
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
49 3.2.4. A betöltő (loader) A megszerkesztett programot betölti az operatív tárba, ha szükséges relokálja, bejegyzi az operációs rendszer processz-táblájába (PCB vagy TCB), előkészíti az állapotvektort, de sohasem futtat Vannak rendszerek ahol külön neve van a programnak, és külön kell aktiválni (meghívni), interaktív rendszerekben ez sokkal egyszerűbb dolog
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
50 3.2.5. Az operációs rendszer rutinjainak hívása - hardver eszköz állapotváltozása generálhatja (külső interrupt hívás) - a védelmi rendszer aktiválhatja (pl. nullával osztunk) - szoftverből generált megszakítás segítségével (pl. SVC, INT, DOSCALL utasítások vagy magasszintű nyelvekből megfelelő függvényekkel: Intr, MsDos, Int86, Intdos, stb.)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
51 Az operációs rendszer rutinjainak egy része rezidens vagy rezidensé tehető, a többi tranziens rutin A rezidens rutinok csak egy példányban vannak az operatív tárban, de mindig ott vannak Az operációs rendszer rutinjainak megvalósítása: - REENTERABLE - REUSABLE - REFRESHABLE
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
52 a) REENTERABLE (újra beléptethető) rutinok azok, melyek bármikor újra aktivizálhatók akár a befejeződésük előtt is (megszakítás útján, vagy multiprocesszoros környezetben normál módon) Feltételek: nem módosíthatja önmagát nem tartalmazhat módosítható adatokat a nem-konstans adatokat csak regiszteres címzéssel érheti el
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
53 b) REUSABLE (újra felhasználható) Ezek a rutinok azok, melyeket egy időben csak egy folyamat használhat, de a használat után újratöltés nélkül megkaphatja egy másik folyamat (processz) Feltételek: ha megváltoztatja magát vagy a benne levő adatokat, akkor kilépés előtt vissza kell mindent állítani még programhiba esetén sem fejeződhet be úgy, hogy a kiindulási állapot ne állna vissza Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 54 c) REFRESHABLE (frissíthető) Futásuk felfüggeszthető, a tárból kiírás nélkül kitörölhető, mert bármikor háttértárról újra betölthető Hasznosak lehetnek: - tárhiba esetén, virtuális tárkezelés esetén - tárhiány esetén, ha sürgősebb feladatot kell végrehajtani, s annak kell a hely, akkor őket fel lehet függeszteni, és helyük ideiglenesen felszabadítható
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
55 3.2.6. A programtesztelés támogatása Forrásprogram szintjén: - nyomkövető utasítások a programon belül - beépített belső debug lehetőségek
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
56 Operációs rendszer szintjén: - tárkivonat (core dump, főleg hexában) - interaktív debug programok (megszakítás: trace on/off, step) - szimbolikus dump (csak a változók nevét és tartalmát) - interaktív nyomkövető programok (AFD, TD, CodeView és egyéb rendszerutility-k
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
57 Nyomkövetés hardver támogatással: - speciális esetekben (pl. túlcsordulás, nullával osztás, privilegizált utasításhívás, stb.) a hardver megszakítja a programot és elérhetővé teszi a programállapot kiértékelését - bizonyos processzoroknak van „TEST” üzemmódja
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
58 3.3. Alkalmazói támogatás
- operátori parancsnyelvek az üzemeltetési
funkciókhoz - munkavezérlő nyelvek (JOB control language) - segédprogramok, amelyekkel rendszerszolgáltatások elérhetőek (utilities)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
59 - speciális programcsomagok egyedi felhasználási területekhez (grafikus interface-ek) - interaktivitás megvalósítás OS szinten - alkalmazói rendszerszolgáltatások - alkalmazói programkészlet (file-kezelők)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
60 4. Az operációs rendszerek osztályzása Szempontok: a) személyi számítógép, munkaállomás, minigép, mainframe gépek - PC-k személyi számítógép op. rendszere: egyszerű, olcsó, egyfelhasználós, egytaszkos, adatvédelem szinte semmi (MS-DOS) - Mini gépes és munkaállomások: többtaszkos, esetenként többfelhasználós, otthon is használható, megfelelő adat -és programvédelemmel Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 61 Megbízható hardvert és szoftvert kíván, folyamatvezérlésre is alkalmas, sokszor a feladatok is párhuzamosíthatók, többprocesszoros változatok is léteznek (UNIX, WinXX, NT, Netware) - Nagyszámítógépek (mainframe OS) Drága, nagy teljesítmény, rendszerek integrálására szolgálnak, többfelhasználós (ezres nagyságrend), többtaszkos, nagyméretű adatfeldolgozás, folyamatirányítás, csak hálózatos implementációk, üzemeltetésük igen nagy szakértelmet és megfelelő környezetet kíván, kritikus adat -és programvédelem Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 62 Sok rendszerfunkció, sok-sok párhuzamosan működő processzor, real-time lehetőségek, több operációs rendszer párhuzamos futtatása (IBM mainframe OS: OS/VS1, OS/VS2, VM) b) egy vagy többfelhasználós OS (multiuser) c) egy vagy többtaszkos OS (multiprogramozott) d) utasításpárhuzamosításra alkalmas OS (multithread) e) kötegelt (BATCH) vagy interaktív f) hálózatos és elosztott OS
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
63 4.1. Hagyományos felosztás: - egyfelhasználós (kötegelt vagy interaktív) - többfelhasználós (kötegelt vagy interaktív) - monoprogramozott vagy multiprogramozott, esetleg többszálú megvalósítást támogató - üzemmód: kötegelt, időosztásos, valós idejű, esetleg vegyíti ezeket - egy vagy többprocesszoros - elosztott és hálózati OS
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
64 4.2. Felhasználás jellege szerint: - adatfeldolgozó rendszerek - tranzakció-orientált rendszerek - folyamatvezérlő, folyamatirányító rendszerek - műszaki problémamegoldó rendszerek - személyi felhasználásra készült rendszerek (GSM) - fejlesztő rendszerek
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
65 4.3.1. Egyfelhasználós rendszerek
- kezdeti megoldás volt
- kötegelt eléréssel párosult - személyi számítógépeknél nem volt fontos a gép, a hardver kihasználtsága, így újra divatba jött
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
66 4.3.2. Multiprogramozott rendszerek A programvégrehajtás közben a CPU sokszor várni kényszerül (pl. I/O műveletek, operátori közbeavatkozás, stb.), Ekkor át lehet kapcsolni a CPU- t más programra, amely persze a tárban van, vagy oda be lehet hozni Interaktív rendszerekben egyre nagyobb a jelentősége (pl. ablakok, virtuális terminálok, grafikus munkaállomások…) Vannak egyfelhasználós multiprogramozott rendszerek. A multiuser rendszerek szükségszerűen multiprogramozott is Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 67 Multitaszking: egy adott felhasználó több programja fut látszólag egyidőben - fontos: az operációs rendszer ütemező algoritmusa
Multiprogramozást támogató eszközök:
a) SPOOL - Simultan Peripherial Operating On-Line (nyomtatók kezelésére, levelezésre, egyéb lassú perifériák számára - első megvalósítása: HASP)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
68 b) Swapping - program cserebere: Egy adott pillanatban az éppen futóprogram van a tárban, a többi mágneslemezen várakozik Csere: ha a futó programot az operációs rendszer felfüggeszti, akkor az kimegy lemezre, és a várakozók közül egy betöltődik Előny: maga a multiprogramozás Hátrány: lassúság a sok I/O művelet miatt
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
69 c) többpartíciós multiprogramozás: A memóriát különálló - egymástól független - partíciókra osztják, mindegyikben egy program lehet, s ezek közül egy fut a többi várakozik; később összeházasították ezt a a swapping-el d) lapozás - szegmentált lapozás A tárat és a programot is lapokra osztják (egy lap:0,5- 4K) - minden program annyi lapot kap amennyi neki kell, esetleg kevesebbet, a pedig többit virtuális tárra teszik
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
70 A multiprogramozás problémái:
a) nem megosztható perifériák egyidejű kezelése (pl.
printer, mágnesszalag, reusable rutinok)? - részben segít a SPOOLING technika, vagy a szemafor-technika (E.W. Dijkstra) b) a válaszidők csökkentése a hatásfok csökkenése nélkül? - időosztásos megoldások; interaktív programoknak nagyobb prioritást kell adni
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
71 c) hogyan védhetjük a programokat és az operációs rendszert egymástól? - a CPU privilegizált üzemmódja (csak ekkor lehet programot tölteni és memóriát foglalni), tárvédelmi kulcsokkal vagy regiszterekkel
d) hogyan osszuk szét az operatív tárat a betöltött
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
72 e) hogyan osszuk szét az erőforrásokat úgy, hogy ne alakuljon ki holtpont? - teljes körű erőforrás-kiosztás adminisztrálás, szinkronizálás, megfelelő erőforrás-ütemező algoritmusok, holtpont megelőzés vagy felismerés
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
73 4.3.3. Többprocesszoros rendszerek Olyan rendszerek, melyben több processzor dolgozik, főleg RISC processzorokkal alkalmazzák ezt - egy közös tárban több processzor dolgozik - számítógép-hálózatok a) van egy kitüntetett processzor, amely vezérli a többi processzort, és elvégzi az alapfunkciókat (tárkezelés, I/O szervezés, taszk-ütemezés); adott esetben egy - a fő - processzort csak az operációs rendszer használja, a többi osztják szét a felhasználói folyamatok között Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 74 b) back-end processzor kapcsolat: egy főprocesszor bírja munkára a társprocesszort vagy processzorokat, ez alárendeltségi viszonyt mutat (pl. grafikus vagy matematikai társ-processzori megvalósítások) c) a sok processzor teljesen egyenrangú, és az operációs rendszer osztja szét közöttük a feladatokat a megfelelő ütemező algoritmus segítségével (maga az operációs rendszer is az épp szabad processzort használja) Szorosan és lazán csatolt rendszereket különböztetünk meg a többprocesszoros rendszerekben Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 75 Bármelyik processzor indíthat I/O műveletet, amely megszakítást okoz azon a processzoron, amelyik fogadni tudja a megszakítást (ütemezés, szinkronizálás) Nem lehet tudni, hogy egy adott felhasználó programja melyik processzoron fut Az időszelet végén a program az új aktivizálódáskor bármelyik processzoron futhat tovább, és folytathatja a munkát
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
76 Egy processzorhiba esetén egyik program sem szakad meg, hanem a hibát okozó processzor leáll, és valamelyik másik átveszi a rajta futó program végrehajtását (mintha csak az időszelet járt volna le) Sajnos ezek a megoldások ma még túl drágák, jobbára a katonai rendszerekben, az űrkutatásban, s a folyamatvezérlésben használják (vegyi üzemek, atomreaktorok) Bár helyenként megfigyelhetők az közlekedéstechnikában is (autók, repüléstechnika, automata metró-irányítás) Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola 77 4.3.4. Valós idejű rendszerek Normál körülmények között a programok nem valósidőben futnak a sok felfüggesztés, ütemezés miatt bekövetkezett időveszteségek miatt Ipari környezetbe beépített számítógépes rendszerekben ez megengedhetetlen Folyamatvezérlést csak valós idejű rendszerekkel lehet megvalósítani
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
78 Az eseményvezérelt jelleg (event driven) csak távoli rokona a valós idejű (real-time) rendszereknek A valós idő nem azonnalit jelent, hanem előírt időkorlátokat, amelyeket viszont nem szabad áthágni, mert az rendszerhibát, rendszerleállást eredményez - jó esetben (vagy Csernobil) Az eseményvezérelt rendszerek az emberi reakcióidőhöz vannak optimalizálva (0.1-1.0 sec, bár belső a hardverhez igazodó események lehetnek gyorsabbak is), ez elektronikusan mérve igen lassú
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
79 Gyors folyamatoknál (pl. atomreaktor, vegyi kombinát, olajfinomítók) igen alacsony reakció idők vannak: kb. 1- ms Ilyenkor a kérelmek is megfelelően érzékeny mérő műszerekről érkeznek a számítógépes rendszerhez Az egész rendszer csúcsterhelésre kell méretezni, s arra kell optimalizálni, csúcsterhelésen kell tesztelni Programfejlesztésre ezek a rendszerek alkalmatlanok
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
80 Valós idejű rendszereket más operációs rendszer alatt fejlesztik ki, ahol szimulálják a vezérelt folyamatokat, majd kipróbálják a célhardveren is csúcs üzemmódban A fejlesztési és tesztelési idő nagyságrendekkel nagyobb, mint a beüzemelési szakasz Az esetek nagy részében az operátorok a valós idejű rendszereket csak elindítani és leállítani tudják, tehát az emberi beavatkozás minimális
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
81 Hibás működés esetén kell beavatkozni, illetve állásidőben lehetőség van bizonyos átkonfigurálásokra Ezeknél a programoknál fontos, hogy megváltoztathatatlanok legyenek - ezért a programokat ROM-ba égetve használják, így nem lehet elrontani őket, nem sérülnek
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
82 4.3.5. Eseményvezérelt rendszerek Legfőképpen a mai, modern interaktív, grafikus és menüvezérelt rendszerekben használják A válaszidők bizonyos esetekben az emberi reakció időkhöz és más esetekben a hardver sebességéhez vannak optimalizálva (bár vannak anomáliák, s emiatt inkompatibilitási problémák is adódnak)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
83 4.3.6. Tranzakció-orientált rendszerek Hasonlóak a valós idejű rendszerekhez és az eseményvezérelt rendszerekhez, de itt az esemény maga a kívülről jövő (felhasználó felöl jövő) tranzakció - belülről ilyet nem generál a rendszer Itt emberi reakció időkkel kell számolni, bár sok esetben itt is használnak másodpercekben mért válaszidő-korlátokat Egyidejűleg sok ügyfél kiszolgálása sem okozhat gondot (…)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
84 4.3.7. Kötegelt rendszerek (BATCH) Több összetartozó programot egy egységbe szerveznek - ez a JOB A JOB-okat egymás után adják fel a rendszerbe feldolgozásra, az főütemező kiválasztja a futásra alkalmas JOB-ot, és időben egymást követően végrehajtja a benne szereplő programokat Több JOB több programja is futhat konkurens módon - ennek ütemezése már az operációs rendszer diszpécserének feladata
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
85 A programozó, a felhasználó ilyenkor nincs kapcsolatban a programjával - a mai rendszerekben ezt a „háttérben való futtatás” valósítja meg Az operátor adott esetben leállíthatja, ideiglenesen felfüggesztheti a futó JOB-ot független attól, hogy az hol tart (nehézkes visszaállítási lehetőségek) Némely esetben a JOB-ok üzennek a terminálra, attól függően, hogy hol tartanak, mit csinálnak Futásuk szempontjából kritikus az erőforrás-kezelés
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
86 Talán a legjobb hardver és gépidő kihasználtságot biztosítják, de a JOB-ok fordulásának ideje - a benne szereplő programok betöltése, futása, leállása - igen nagy lehet, ezért interaktivitásra alkalmatlan
4.3.8. Interaktív rendszerek
Az operációs rendszer olyan operátori interface-t biztosít, amely által állandó kapcsolatban van a felhasználó a géppel Ez lehet karakter-orientált vagy grafikus
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
87 4.3.9. Időosztásos rendszerek (dr. John Kemény) Általában interaktív üzemmód, a CPU idő osztják a felhasználó, esetleg a processzek között szét (processzek sohasem kapnak fix időszeletet!) Az idő körben jár, s mindenki ugyanannyi időre kapja meg a CPU-t - minden felhasználó az adott időszeletnyit dolgozik Sokszor kombinálják BATCH (háttér) futtatással is - 1988-tól szinte már csak ez létezik
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
88 4.3.10. Többfelhasználós rendszerek Ezek gyakorlatilag a számítógép-hálózatok: az operációs rendszer legfontosabb feladata a hálózat életben tartása, azért hogy a felhasználók folyamatosan tudjanak kommunikálni Számítógép-hálózatok fajtái: - egy központi gép van összekötve „buta” terminálokkal (terminál=DTE, Data Termination Equipment)
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
89 - egy központi gép több „intelligens” terminállal, azaz munkaállomással van összekötve - több önálló „teljes értékű” gép van összekötve - bármelyik lehet szerver, ha a szükség úgy hozza Összekötés: vonalakkal, amely lehet közvetlen adatbusz, kábel, telefon-vonal, mikrohullám, infra, műholdas és egyéb rádiókapcsolat A hálózat célja: a központi hardver és szoftver erőforrás-kezelés, gyors adatátvitel és kommunikáció, szükség esetén a feladatok megosztása
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola
90 Az elosztott rendszerek: ezek is számítógép-hálózatok, de míg az „egyszerű hálózatoknál” pontosan tudjuk, hogy hol hajtódik végre az elindított folyamat, addig az elosztott rendszerekben nem - ahol van szabad erőforrás oda teszi át a folyamatot (járulékaival együtt) az elosztott rendszert működtető operációs rendszer Hálózati topológiák: - teljes vagy részlegesen kapcsolt - csillag, sín vagy busz, gyűrű
Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola