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

Slides:



Advertisements
Hasonló előadás
A számítógépes hálózatok és az Internet
Advertisements

Készítette: Kun Béla.  Operációs rendszernek 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,
1 Számítógépek felépítése 9. előadás I/O rendszerek.
Operációs rendszerek Bevezetés.
A számítógép felépítése
Hardver alapok I. 10. osztály.
Készítette: Bátori Béla 12.k
Számítógépes hálózatok Páll Boglárka. Meghatározás  A számítógépes hálózat, számítógépek és egyéb hardvereszközök egymással összekapcsolt együttese.
Hálózati alapfogalmak, topológiák
HÁLÓZATOK.
A számítógép felépítése
Hálózatok.
HÁLÓZATOK.
A mikroprocesszor 1. rész.
Operációs rendszerek. Szoftver: Számítógépeken futtatható programok és a hozzájuk tartozó leírások, dokumentumok. Program: A számítógép számára értelmezhető.
3. A programozás eszközei, programozás-technikai alapismeretek
Small Liga Mozgás vezérlő rendszere
Operációs rendszerek 1. Takács Béla
Utófeszített vasbeton lemez statikai számítása Részletes számítás
Ütemezési algoritmusok (FCFS, SJF, RR)
Fajfrik Dóra tanárjelölt munkája alapján
OPERÁCIÓS RENDSZER. Az operációs rendszer egy olyan programozási rendszer, amely a számítógépes rendszerben a programok végrehajtását vezérli, így pl.
A számítógép alapegységei
13.a CAD-CAM informatikus
A számítógép felépítése
A tételek eljuttatása az iskolákba
Szoftevrismeret Operációs rendszerek.
A számítógép felépítése
A szoftver.
Számítógép-hálózat • Önálló számítógépek összekapcsolt rendszere
A számítógéprendszer.
Alapfogalmak Adat: fogalmak, tények, jelenségek olyan formalizált ábrázolása, amely emberi vagy gépi értelmezésre, feldolgozásra, közlésre alkalmas. Információ:
Az operációs rendszerek
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
CISC - RISC processzor jellemzők
Számítógép memória jellemzői
A memóriák típusai, jellemzői
Sárgarépa piaca hasonlóságelemzéssel Gazdaság- és Társadalomtudományi kar Gazdasági és vidékfejlesztési agrármérnök I. évfolyam Fekete AlexanderKozma Richárd.
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
1 Operációs rendszerek Az ütemezés megvalósítása.
Programrendszer 2. Erőforrás – erőforrás elosztás 3. Indítja és ütemezi a programokat 4. kommunikáció 2 Takács Béla.
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
Számítógépes üzemmódok
szakmérnök hallgatók számára
Hálózati architektúrák
modul 3.0 tananyagegység Hálózatok
Operációs rendszer.
Logikai szita Izsó Tímea 9.B.
Szoftverek. szoftver (software): A számítógép hardver elemeinek mûködtetését végzõ programok, a gép használatához szükséges szellemi termékek összessége.
Az operációs rendszer Az operációs rendszer a számítógépet működtető szoftver, amely a számítógép indulásakor azonnal betöltődik a számítógép memóriájába:
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Programozási nyelvek.
Hálózati ismeretek ismétlés.
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
A számítógép elvi felépítése
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1. Melyik jármű haladhat tovább elsőként az ábrán látható forgalmi helyzetben? a) A "V" jelű villamos. b) Az "M" jelű munkagép. c) Az "R" jelű rendőrségi.
Óravázlat Készítette: Kucsera Mihály és Toldi Miklós
A központi egység Informatika alapjai Készítette: Senkeiné B. Judit.
Ismerkedjünk tovább a számítógéppel
Szoftver §60-as évek: nagygépes rendszerek §kevés hozzáértő szakember §lassú a fejlesztési folyamat §napjainkban felgyorsul l személyi szg-ek.
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
Számítógép hálózatok.
BIOLÓGUS INFORMATIKA 2008 – 2009 (1. évfolyam/1.félév) 3. Előadás.
2. Operációs rendszerek.
1 A számítógépek felépítése jellemzői, működése. 2 A számítógép feladata Az adatok Bevitele Tárolása Feldolgozása Kivitele (eredmény megjelenítése)
1 A számítógépek tárolói. 2 Memória Memóriaszó  A tárak olyan egységei, melyek egyetlen művelettel kezelhetők.  A legrövidebb memóriaszó a byte (bájt)
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
IT ALAPFOGALMAK OPERÁCIÓS RENDSZEREK.
Hálózati struktúrák, jogosultságok
Előadás másolata:

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

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

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

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

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

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

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

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)

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

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)

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

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

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

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!

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

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

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

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)

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

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)

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

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!

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

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

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

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

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

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

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

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

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

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)

- 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

- 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

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ó

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

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

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

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

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

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

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

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

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

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

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!

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

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

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)

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

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

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

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

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

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

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

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

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

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ó

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

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

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

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)

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

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

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?

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

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

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

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

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

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

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

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)

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

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

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

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)

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

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

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

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

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)

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

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ú

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

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

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

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)

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

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

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

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

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

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)

- 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

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ű

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

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

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

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!