Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Operációs rendszerek I. (elmélet, 17 óra)

Hasonló előadás


Az előadások a következő témára: "Operációs rendszerek I. (elmélet, 17 óra)"— Előadás másolata:

1 Operációs rendszerek I. (elmélet, 17 óra)

2 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

3 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

4 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

5 Hierarchikusan rétegelt rendszer:
Alkalmazók Alkalmazói interface Alkalmazói prog. Fejl.eszköz interface Fejlesztőeszközök Rendszerinterface Operációs rendszer Hardverinterface Hardver - maga a gép

6 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

7 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

8 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)

9 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

10 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)

11 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

12 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

13 - 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ó

14 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!

15 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

16 -. optimálisan igyekszik kihasználni az
- 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

17 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

18 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)

19 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

20 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)

21 Összefoglalás: az 1. Fejezet anyaga
1. zárthelyi dolgozat megírása 1. zárthelyi dolgozat kiosztása,megbeszélése

22 1. Zárthelyi dolgozat - minta
1. Definiálja az operációs rendszer fogalmát! 2. Ismertesse a számítógép rendszer rétegeit, régetinterface-eit! 3. Ismertesse az operációs rendszer fő feladatait! 4. Definiálja a tipikus operációs rendszeri feladatokat! 5. Ismertesse a multiprogramozás megvalósításának feltételeit! 6. Definiálja az ütemezett párhuzamos, az aszinkron és az izokron folyamat lefutást! 7. Jellemezze az alkalmazói réteget! 8. Jellemezze a fejlesztőeszközi réteget!

23 2. A hierarchikus rétegek - az operációs rendszer szemszögéből
2.1. A hardver 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

24 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

25 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

26 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).

27 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

28 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

29 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

30 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

31 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

32 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)

33 - 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

34 - 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

35 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ó

36 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

37 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

38 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 (utasítások, memória terültet kezelése) hibás programműködés kiszűrése (regiszterkezelés, megszakításkérelem,stb.)

39 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

40 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!)

41 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

42 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

43 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!)

44 - 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)

45 Összefoglalás: az 2. Fejezet anyaga
2. zárthelyi dolgozat megírása 2. zárthelyi dolgozat kiosztása,megbeszélése

46 2. Zárthelyi dolgozat - minta
1. Jellemezze a CISC és a RISC processzorokat! 2. Mi a társzervezés az operációs rendszer szintjén? 3. Jellemezze a megszakítás rendszert! 4. Ismertesse a megszakítás menetét! 5. Miért és mihez kell megszakítás? 6. Mi segíti a megszakítás-kezelő rendszert? 7. Jellemezze processzor védelmi rendszerét! 8. Jellemezze a normál tárat és a gyorstárat!

47 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

48 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

49 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)

50 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

51 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

52 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

53 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

54 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

55 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.)

56 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

57 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

58 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

59 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ó

60 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 Fordítás, Interpretálás, Linkelés szintjén: - fordítást, értelmezést vezérlő utasítások - linker vezérlő utasítások

61 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

62 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

63 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)

64 - 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)

65 Összefoglalás: az 3. Fejezet anyaga
3. zárthelyi dolgozat megírása 3. zárthelyi dolgozat kiosztása,megbeszélése

66 3. Zárthelyi dolgozat - minta
1. Ismertesse az operációs rendszer három alapvető funkcióját! 2. Mi a feladata rendszeradminisztrációnak? 3. Mi a feladata a fordítónak? 4. Mi a feladata az interpreternek? 5. Mi a feladata a linkernek? 6. Hogyan hívhatjuk meg az operációs rendszer rutinjait? 7. Jellemezze a reenterable, reusable, refreshable rutinokat! 8. Mi a feladata az operációs rendszer loader-jének?

67 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

68 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

69 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

70 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

71 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

72 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

73 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

74 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)

75 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

76 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

77 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

78 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 programok között? - partícionálás, swapping, lapozás, szegmentált lapozás (virtuális tárkezelés)

79 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

80 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

81 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

82 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

83 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)

84 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

85 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 ( sec, bár belső a hardverhez igazodó események lehetnek gyorsabbak is), ez elektronikusan mérve igen lassú

86 Gyors folyamatoknál (pl
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

87 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

88 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

89 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)

90 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 (…)

91 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

92 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

93 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 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

94 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 tól szinte már csak ez létezik

95 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)

96 - 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

97 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ű

98 - felnyitott gyűrű - többszörös gyűrű - fastruktúrás topológia Kiépítés mérete szerint a számítógép-hálózat lehet: LAN - Local Area Network (Netware, UNIX, NT) MAN - Metropolitan Area Network (~OTP ATM) WAN - Wide Area Network (Internet)

99 Protokoll, azaz adatkapcsolat, adatátvitel szerint:
- vonalkapcsolt - üzenetkapcsolt - csomagkapcsolt A hálózatok kialakítását befolyásoló tényezők: - biztonság, védelem, létesítési költségek, kommunikációs költségek, hardver -és szoftverintegritás

100 Összefoglalás: az 4. Fejezet anyaga
4. zárthelyi dolgozat megírása 4. zárthelyi dolgozat kiosztása,megbeszélése

101 4. Zárthelyi dolgozta - minta
1. Sorolja fel a operációs rendszer osztályzási szempontokat! 2. Adja meg a hagyományos operációs rendszeri osztályozási szempontokat! 3. Jellemezze a multiprogramozott rendszereket! 4. Jellemezze a többprocesszoros rendszereket! 5. Jellemezze a valósidejű rendszereket! 6. Jellemezze a tranzakció-orientált és az eseményvezérlet rendszereket! 7. Jellemezze a kötegelt és az időosztásos rendszereket! 8. Sorolja fel a multiprogramozás problémáit!


Letölteni ppt "Operációs rendszerek I. (elmélet, 17 óra)"

Hasonló előadás


Google Hirdetések