Operációs rendszerek 1 jegyzet - Fazekas Gábor
Országok listája
Hungary
Debreceni Egyetem
Informatikai Kar
Programtervező informatikus
Operációs Rendszerek 1.
Jegyzetek
Operációs rendszerek 1 jegyzet - Fazekas Gábor
2009.02.22 12:44:16
Az alábbi szöveg egy formázás és képek nélküli előnézete a dokumentumnak. A tökéletes megjelenítéshez jelentkezz be, majd töltsd le a dokumentumot.
Debreceni Egyetem
Informatikai kar
Operációs rendszerek I.-II.
(Eladásvázlat)
Szerkesztette: Csige Lóránt Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Számítógépes rendszerek: szerkezeti jellemzk
1. F szerkezeti elemek 2. A processzor regiszterei 3. Utasításvégrehajtás 4. Megszakítások 5. Tárrendszerhierarchia 6. Gyorsítótár (cache) 7. I/O kommunikációs technikák
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
F szerkezeti elemek
· Processzor · F memória: memóriának, illetve operatív tárnak, ftárnak is nevezik · I/O egységek
másodlagos memória eszközök, másodlagos tárak, háttértárak kommunikációs eszközök terminálok
· Rendszerbusz
kommunikáció a processzor(ok), a memória és az I/O egységek között
Operációs rendszer: · Egy vagy több processzor hardver errforrásainak kihasználását optimalizálja · A rendszer használóinak egy sor szolgáltatást biztosít · Kezeli a másodlagos memóriát és az I/O eszközöket
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
F szerkezeti elemek
CPU regiszterei: · MAR - Memory Address Register a következ írás/olvasás memóriacíme MBR - Memory Buffer Register memóriába küldend adatok tárolása memóriából olvasott adatok tárolása I/OAR - I/O Address Register kijelöl egy bizonyos I/O eszközt I/OBR - I/O Buffer Register a processzor és a I/O eszközök közötti kommunikáció adattárolására Programszámláló- és utasításregiszter
Dr. Fazekas Gábor
·
·
PC = programszámláló IR = utasításregiszter
·
1. ábra Számítógép összetevi (komponensek) Operációs rendszerek
·
Debreceni Egyetem
Informatikai kar
A processzor regiszterei
· Regiszterek: az operatív tárnál gyorsabb és kisebb memória, mely a feldolgozás alatti ideiglenes adattárolásért felels: · Felhasználó által látható regiszterek
lehetvé teszi a programozó számára, hogy csökkentse az operatív tárra való hivatkozások számát
· Vezérl- és állapotregiszterek
a processzor használja önmaga vezérléshez az operációs rendszer egyes rutinjai használják a programok futásának vezérléséhez
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Programozó számára látható regiszterek
· Gépi kóddal elérhet, általános használatú: felhasználói- és rendszerprogramok is használhatják · Regisztertípusok: adat, cím, állapotkód · Adatregiszter: programozó által kiosztható, módosítható · Címregiszter: adatok memóriacímeit és utasításokat tartalmaz
· Index: egy báziscím hozzáadásával kapjuk meg a címet · Szegmensmutató: a memória szegmensekre osztása esetén, egy offset és a szegmensmutató együttese határozza meg a címet · Veremmutató: a verem legfels elemét jelöli ki
· Állapotkód regiszterek: mveletek végrehajtásának eredményeként a processzor ír bele, programok által elérhet, de közvetlenül meg nem változtatható (Pl.: egy aritmetikai eredmény pozitív, negatív, nulla, vagy túlcsordult-e)
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Vezérl- és állapotregiszterek
· Programszámláló (Program Counter PC / Instruction Pointer - IP)
a következ végrehajtandó utasítás címét tartalmazza
· Utasításregiszter (Instruction Register - IR)
a végrehajtandó utasítást (ennek bináris kódját) tárolja utasítástípusok:
· · · · Processzor-memória: adattovábbítás a memória és a processzor között Processzor-I/O: ,,adattovábbítás" a perifériák (I/O adapter) és a processzor között Adatfeldolgozó: aritmetikai, vagy logikai mvelet végzése adatokon Vezérl: az utasításvégrehajtás sorrendjének megváltoztatását okozza
· Programállapotszó (Program Status Word - PSW)
a processzor állapotát írja le
· állapotkódok · megszakítás engedélyezése/letiltása · rendszergazdai/felhasználói (kernel/user) mód
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Utasításvégrehajtás
Betöltési ciklus Végrehajtási ciklus
START
következ utasítás betöltése
utasítás végrehajtása
STOP
2. ábra Egyszer utasításciklus
·
a programszámláló tartalmazza a következ betöltend utasítás címét
· a processzor betölti az utasítást a memóriából · a programszámláló értéke minden betöltés után ,,eggyel n"
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Egy program végrehajtása
3. ábra Példa egy program végrehajtására Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Megszakítás
· A normális utasításvégrehajtási sorrend megszakítása:
Egy küls esemény hatására létrejöv folyamatfelfüggesztés olyan módon, hogy a felfüggesztett folyamathoz való visszatérés lehetséges A végrehajtás alatt álló utasítássorozat feldolgozása valamelyik utasítás végrehajtása után ,,megszakad", új sorozat ,,kezddik"
· A feldolgozás hatásfokát növeli:
Pl.: processzor más utasításokat hajthat végre amíg egy I/O mvelet folyamatban van
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Megszakítás példa
a) Nincs megszakítás
b) Megszakítás, rövid I/O
c) Megszakítás, hosszú I/O
4. ábra Programok végrehajtásának folyamata megszakítással és anélkül Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Megszakításkezel
· Program, amely meghatározza a megszakítás okát és végrehajtja azokat az eljárásokat, amelyek ebben az esetben szükségesek (a vezérlést megszakításkor kapja meg) · A megszakítás (interrupt) átadja a vezérlést a megszakítás-feldolgozó rutinnak. Ez általában a megszakítási vektor segítségével történik, amelynek megfelel elemei tartalmazzák a megszakítási osztályokhoz tartozó feldolgozó rutin els végrehajtandó utasításának címét. · A megszakítási rendszernek tárolnia kell a megszakított utasítás címét. · A megszakítási jel forrását tekintve egy megszakítás lehet küls (pl. I/O, Timer, Hardver), vagy bels (szoftveres megszakítás) · A megszakítás feldolgozó rutin (op. rendszer része!) közvetlen feladatai:
,,maszkolás,, a CPU állapotának megrzése a megszakítás okának, körülményeinek részletesebb elemzése a megszakított programhoz történ visszatérés megszervezése
Dr. Fazekas Gábor
Operációs rendszerek
Debreceni Egyetem
Informatikai kar
A megszakítások osztályai
· Program
aritmetikai túlcsordulás nullával való osztás nem létez mvelet végrehajtásának megkísérlése felhasználói memóriaterületen kívülre való hivatkozás (szegmentáció) ,,rendszerhívás" (szoftver által direkt módon kiváltott megszakítás)
· Idzít, idadó (timer) · I/O · Hardverhiba
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Megszakítás-ciklus
· · · a processzor ,,megvizsgálja van-e megszakítás" ha nincs, lehívja a program szerint soron következ utasítást a memóriából ha egy megszakítás függben van, felfüggeszti a program végrehajtását, és elindítja a megfelel megszakításkezelt.
Betöltési ciklus Végrehajtási ciklus
Megszakítás kikapcsolva
Megszakítási ciklus
START
következ utasítás betöltése
Utasítás Végrehajtása
Megszakítás bekapcsolva
Megszakítás ellenrzés
STOP
5. ábra Utasításciklus megszakítással Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Többszörös megszakítás
· Újabb megszakítások letilthatók, amíg egy megszakításkérlem feldolgozás alatt áll, hogy el ne vesszenek (lost interrupt), ilyenkor a processzor figyelmen kívül hagy minden újabb megszakításkérést
6. ábra Többszörös megszakítás Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Megszakításkezelés
Sorrend és prioritás: · A megszakítások letilthatók (maszkolás), amíg a processzor befejez egy feladatot, és függben marad addig, amíg a processzor újból engedélyezi a megszakítást · A megszakításkezel rutin feladatának elvégzése után a processzor további megszakítások fogadására kész · A magas prioritású megszakítások várakozásra késztetik az alacsonyabb prioritású megszakításokat · Alacsonyabb prioritású megszakításkezel megszakítható · Példa: egy kommunikációs csatornán való bevitelt gyorsan fogadni kell, hogy hely legyen a következ bevitelnek
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Multiprogramozás
· Moore törvényének egy megfogalmazása : ,,az integrált áramkörökben lév tranzisztorok száma minden 18. hónapban megduplázódik" A háttértárak sebessége azonban messze nem n ilyen ütemben! Megoldás: multiprogramozás
·
7. ábra Moore törvénye
Multiprogramozás kivitelezése: · a processzornak egynél több programot kell végrehajtania · a programok végrehajtásának sorrendje függ azok relatív prioritásától illetve attól, hogy várnak-e valamilyen I/O mveletre · a megszakításkezel rutin befezetével a vezérlés nem feltétlenül kerül vissza ahhoz a programhoz, amelyik futása közben a megszakításkérés történt
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Tárrendszer-hierarchia
· · · ·
Csökken bitköltség Növekv kapacitás Növekv hozzáférési id Csökken memória-processzor kommunikációs frekvencia
8. ábra Tárrendszer hierarchia Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Cache memória (gyorsítótár)
Szó átvitel Blokk átvitel
CPU
Cache
Fmemória
· az operációs rendszer számára láthatatlan · növeli a memória sebességét · a processzor sebessége gyorsabb a memóriánál
9. ábra A cache és a f memória
· a fmemória része · a processzor elször a cache-t ellenrzi (cache ,,hit" és ,,miss") · ha nincs a cache-ben, a szükséges információ a fmemóriából a cache-be kerül
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Cache/fmemória szerkezet
a) cache
10. ábra A cache és a fmemória szerkezete Operációs rendszerek
a) fmemória
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Programozott I/O
· · · · az I/O modul végzi el a mvelet, nem a processzor az I/O állapotregiszter bit értékeinek beállítása is megtörténik megszakítás nem lehetséges! a processzor ellenrzi a mvelet állapotát, amíg az be nem fejezdik
Hibafeltétel CPUI/O I/O egység I/O egység számára olvasási számára olvasási parancs kiadása parancs kiadása I/OCPU I/O egység I/O egység olvasási olvasási állapotban állapotban Kész állapot állapot ellenrzés ellenrzés I/OCPU olvasás az olvasás az I/O I/O egységbl egységbl CPUmemória írás a a írás memóriába memóriába Következ utasítás Igen
Kész?? Kész??
Nincs kész
Nem
11. ábra Programozott I/O Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Megszakításvezérelt I/O
· ha egy I/O egység kész adatok cseréjére, a processzornak megszakítást küld · a processzor más munkákkal foglalkozhat, így nincs haszontalan várakozás · még így is sok processzoridt fogyaszt, mert minden olvasás és írás a processzoron keresztül történik
Más feladat végzése Megszakítás CPUI/O I/O egység I/O egység számára olvasási számára olvasási parancs kiadása parancs kiadása I/OCPU I/O egység I/O egység olvasási olvasási állapotban állapotban Kész állapot állapot ellenrzés ellenrzés Hibafeltétel I/OCPU olvasás az olvasás az I/O I/O egységbl egységbl CPUmemória írás a a írás memóriába memóriába Következ utasítás Igen
Kész?? Kész??
Nem
12. ábra Megszakításvezérelt I/O
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Közvetlen memóriahozzáférés (DMA)
· A processzor engedélyezi az I/O számára a közvetlen memóriahozzáférést · Adategységek (block) forgalma közvetlenül a memóriába (-ból) · Megszakítás küldése, amikor a feladat befejezdött (megszakítás blokkonként, nem bájtonként!) · A processzor csak az adattranszfer elején és végén van bevonva a folyamatba, így mentesíti a processzor az adatcsere felügyelete alól, a processzor foglalkozhat más feladatok elvégzésével
CPUDMA
más feladat végzése
I/O egység I/O egység számára blokk számára blokk olvasási parancs olvasási parancs kiadása kiadása
DMA egység DMA egység olvasási olvasási állapotban állapotban
megszakítás
DMACPU
Következ utasítás 13. ábra Közvetlen memóriahozzáférés
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Operációs redszerek: Áttekintés
1. 2. Az operációs rendszer (szolgáltatásai) Az operációs rendszerek fejldése 3. Fbb elemek 4. Modern rendszerek jellemzi 5. A Windows 2000 és a Unix
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Számítógépes rendszer rétegei
Végfelhasználó Végfelhasználó Programozó Programozó
Alkalmazói programok Alkalmazói programok Segédprogramok, kezelprogramok Segédprogramok, kezelprogramok Operációs rendszer Operációs rendszer Számítógép hardver Számítógép hardver
Op. rendszer Op. rendszer programozó programozó
1. ábra A számítógépes rendszer rétegei
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Operációs rendszerek
Olyan program, mely vezérli a felhasználói programok és alkalamzások futását, interfész a felhasználó és a hardver között. Célok: · Komfort: a számítógép használatát kényelmesebbé teszi · Hatásosság: a számítógépes rendszer erforrásainak optimális kihasználását teszi lehetvé · Testreszabás lehetsége: lehetséget teremt a fejlesztésre, tesztelésre és új rendszerfüggvények bevezetésére anélkül, hogy összeakadnánk egyéb szolgáltatásokkal
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Az op. rendszer szolgáltatásai
· · · · · · · Programok fejlesztése, készítése: szerkesztés és hibakeresés Programvégrehajtás (Processzuskezelés process management) I/O rendszer kezelése File-okhoz való hozzáférés vezérlése (file management) Másodlagos tár kezelése Rendszerhozzáférés Hibaészlelés és válasz
bels és küls hardverhibák: memóriahiba, eszközhiba szoftver hibák: számolási túlcsordulás, tiltott memóriaterületekhez való hozzáférés
· Könyvelés (accounting)
statisztika gyjtése a rendszerrl teljesítmény monitorozása felhasználók kezelése
· Védelem
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Erforráskezelés
2. ábra Az operációs rendszer, mint erforráskezel Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Az operációs rendszerek fejldése
· A programok feldolgozásának lépései (fordítás, szerkesztés, futtatás) · Soros feldolgozás
nincs operációs rendszer; a felhasználó közvetlenül a hardvert éri el, a programozó egyben operátor is, egyfelhasználós rendszer problémák: drága erforrások alacsony hatásfokú kihasználása (hosszú beállítási id, gyenge CPU kihasználtság)
· Kötegelt feldolgozás (Simple Batch)
Monitorok
· · · · a futó programok vezérlésére használtos szoftver feladatok egymáshoz kapcsolása a program visszaadja a vezérlést a monitornak amikor befejezdik a felügyelprogram mindig a memóriában van és futásra kész
· Idosztásos rendszerek (Time Sharing)
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A kötegelt feldolgozás (Simple Batch)
· Rezidens monitor
a munkák (job) vezérlésére használatos program, mely állandóan a memóriában van és futásra kész a felhasználó nem operátor, a beállítási id csökkentésének érdekében a munkákat egymáshoz kapcsolva, egymás után végezzük el minden program végrehajtása végeztével visszaadja a vezérlést a monitornak, mely ezután automatikusan betölti (loader) a következ munkát
· Job Control Language (JCL)
speciális programozási nyelv, mely a monitor számára biztosít utasításokat (Pl.: mely adatokon milyen fordítót használjon)
· szükséges hardverjellemzk:
memóriavédelem: a monitort tartalmazó memóriaszegmens megváltoztatásának letiltása idzítés: jobok meggátolása abban, hogy kisajátítsák a rendszert lefoglalt utasítások: csak a monitor által használható utasítások megszakítások: rugalmasságot biztosít a felhasználói szoftverek vezérléséhez
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A kötegelt feldolgozás (I.)
· Egyfeladatos feldolgozás:
a processzornak várnia kell egy I/O utasítás befejezdésére mieltt továbblép, az I/O és a CPU mveletek nem fedhetik át egymást probléma: I/O lassú a processzorhoz képest (pl. kártyaolvasó lassú), CPU nem megfelelen kihasznált
3. ábra Uniprogramozás
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A kötegelt feldolgozás (II.)
· Többfeladatos feldolgozás (multitaszking):
Egy idben több program is található a fmemóriában: ha egy programnak I/O mveletre kell várnia, a processzor átvált egy másik program végrehajtására (nem párhuzamos futás!) A CPU id kiosztása valamilyen stratégia szerint történik bizonyos hardverelemek szükségesek (I/O megszakítás támogatása)
4. ábra Multiprogramozás
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A kötegelt feldolgozás (III.)
· Uniprocesszálás és multiprocesszálás összehasonlítása: MUNKA1 Munka típusa Idtartam Kell lemez? Kell terminál? Kell nyomtató? Számítás 5 perc Nem Nem Nem MUNKA2 I/O 15 perc 100 K Nem Igen Nem I/O 10 perc 80 K Igen Nem Igen MUNKA3
Szükséges mem. 50K
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A multiprogramozás által az operációs rendszerekkel szemben támasztott követelmények
·Az I/O-nak az operációs rendszer részérl történ teljes kör felügyelete. (adatvédelem!) Az I/O-t az operációs rendszer nem egyszeren támogatja, hanem végrehajtásához elkerülhetetlen. Hardver feltételek! (kernel/supervisor mode, privileged operations) ·Memória gazdálkodás a rendszernek fel kell osztania a memóriát a futó jobok között. Hardver feltételek! (kernel/supervisor mode, privileged operations, segmentation) ·CPU ütemezés a rendszernek választani kell tudni a futásra kész jobok között. ·Készülékhozzárendelés Nem "jut" minden jobnak, printer, lemez, stb.
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A kötegelt feldolgozás (IV.)
a) Uniprocesszálás b) Multiprocesszálás 4. ábra Kihasználtság uniprocesszálás és multiprocesszálás esetén Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A kötegelt feldolgozás (V.)
Uniprocesszálás Processzorhasználat 22% Memóriahasználat Lemezhasználat Nyomtatóhasznákat Eltelt id Frekvencia Átlagos válaszid 30% 33% 33% 30 min. 6 jobs/hr 18 min. Multiprocesszálás 43% 67% 67% 67% 15 min. 12 jobs/hr 10 min.
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Idosztásos rendszerek
· A kötegelt rendszerek hátránya: nincs interaktivitás! · a CPU váltakozva áll olyan joboknak a rendelkezésére, melyek a memóriában, vagy a lemezen találhatók. (a CPU-t csak olyan job kaphatja meg, amely éppen a memóriában van.) · Egy job a lemezrl a memóriába, ill. a memóriából a lemezre betölthet/ kimenthet az ütemezési stratégiának (idosztás!) megfelelen. (Process!) · A rendszer és a felhasználó között online kommunikációt tételezünk fel; ha az operációs rendszer befejezi egy parancs végrehajtását, a következ ,,vezérl utasítás"-t nem a kártyaolvasóról, hanem a felhasználó klaviatúrájáról várja. · A processzorid több felhasználó között van megosztva · Több felhasználó együttesen éri el a rendszert terminálok használatával (interaktivitás) · Egy adatokat és utasításkódokat tároló online fájlrendszer áll a felhasználók rendelkezésére.
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Folyamatok (Processzusok - Process)
· Processzus: végrehajtás alatt álló program. A processzusnak bizonyos erforrásokra (pl. CPU id, memória, állományok, I/O berendezések) van szüksége, hogy a feladatát megoldhassa. · Egy végrehajtható programból, a hozzákapcsolódó adatokból és a végrehajtási környezetbl tevdik össze (az összes információ, ami ahhoz szükséges, hogy az op. rendszer kezelni tudja a processzust) · Az operációs rendszer az alábbi tevékenységekért felel a processzusok felügyeletével kapcsolatban:
processzus létrehozása és törlése processzus felfüggesztése és újraindítása eszközök biztosítása a processzusok szinkronizációjához és kommunikációjához
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusok
5. ábra Egy processzus tipikus végrehajtása Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Memóriakezelés
· Az operatív memóriát bájtokból (szavakból) álló (absztrakt) tömbnek fogjuk tekinteni, amelyet a CPU és az I/O vezérl megosztva (közösen) használ. · Processzusok elszigetelése
egymástól független processzusok ne legyenek egymásra hatással
· Automatikus kiosztás és kezelés
a memória kiosztása a programozó számára átlátható legyen
· Moduláris programozás támogatása · Védelem és hozzáférésvezérlés
a memória felosztása lehetvé teszi, hogy egy program megcímezzen egy másik programhoz tartózó memóriateret (veszélyeztetheti egyes programok integritását)
· Az operációs rendszer a következkért felels a memóriakezelést illeten:
nyilvántartja, hogy az operatív memória melyik részét ki (mi) használja eldönti, melyik processzust kell betölteni, ha a memória felszabadul szükség szerint memóriaterületeket foglal le és szabadít fel a szükségleteknek megfelelen
Dr. Fazekas Gábor
Operációs rendszerek
Debreceni Egyetem
Informatikai kar
Másodlagos tár kezelés
· Mivel az operatív tár (elsdleges tár) törldik (és egyébként sem alkalmas arra, hogy minden programot/adatot tároljon), másodlagos tárra van szükség · A merevlemezes tár a másodlagos tár legelterjedtebb megjelenése · Az op. rendszer a következkért felels a másodlagos tár kezelését illeten:
Szabadhely kezelés Tárhozzárendelés Lemezelosztás, ütemezés (scheduling)
Fájlrendszer kezelés: · Az információ névvel rendelkez objektumokban, a fájlokban tárolódik. · Egy fájl kapcsolódó információ (adatok) együttese, amelyet a létrehozója definiál. · Az operációs rendszer a következkért felels a fájlkezelést illeten:
Fájl, könyvtár létrehozása és törlése Fájlokkal és könyvtárakkal történ alap-manipulációhoz nyújtott támogatás Fájlok ,,leképezése" a másodlagos tárba, fájlok mentése stabil adathordozóra.
Dr. Fazekas Gábor
Operációs rendszerek
Debreceni Egyetem
Informatikai kar
Virtuális memória
· Logikai szempontok szerinti memóriacímzést biztosít a programok számára
nem kell tekintettel lenni arra, hogy mennyi fizikailag elérhet fmemória áll rendelkezésre
· Egy program úgyis ,,futhat", hogy a program és a hozzákapcsolódó adatok egy része a lemezen tárolódik
a program mérete nagyobb lehet, mint az egész fmemória mérete
· Lapozó rendszer (paging system)
a programok (logikai címtartománya) fix méret blokkokra vannak osztva (szeletelve!), ezek a lapok (page) a virtuális cím egy lap sorszámból és a lapon belüli eltolásból (offset) áll az egyes lapok bárhol elhelyezhetk a fmemóriában (keret, frame)
· a lapozó rendszer dinamikus hozzárendelést szolgáltat a virtuális és a fizikai cím között
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Virtuális memóriacímzés
Valós cím
processzor memóriakezel egység
Virtuális cím
fmemória
Lemez cím
másodlagos memória
7. ábra A virtuális memória címzése
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Az operációs rendszer egyéb feladatai
· Információvédelem és biztonság
hozzáférés vezérlése (access control): a felhasználó rendszerhez való hozzáférésének szabályozása információáramlás vezérlése: a rendszeren belüli adatáramlás vezérlése és az adatok felhasználóhoz történ szállításának végzése igazolása annak, hogy a hozzáférés és az adatáramlás vezérlése az elírásoknak megfelelen mködik
· Ütemezés és erforráskezelés elvei
méltányosság: az összes processzus számára egyenl és korrekt hozzáférést biztosítani különböz érzékenység: a különböz típusú munkák között különbséget lehet és kell tenni hatásosság: cél a teljesítmény maximalizálása, a válaszid minimalizálása, és a lehet legtöbb felhasználó kiszolgálása
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Modern rendszerek jellemzi
· Mikrokernel architektúra
a kernel csak néhány alapvet szolgáltatást nyújt
· alapvet ütemezési feladatok · processzusok közötti kommunikáció (interprocess communication - IPC)
· Multithreading
a processzusok szálakra osztása, mely szálak szimultán képesek futni
· Objektum-orientált kivitelezés
a kis kernelhez való moduláris kiterjesztések hozzáadásának lehetsége a programozó testre szabhatja az operációs rendszert anélkül, hogy a rendszerintegritást veszélyeztetné
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Modern rendszerek jellemzi
· Párhuzamos rendszerek
szimmetrikus multiprocesszálás
· több processzor, melyek ugyanazon fmemórián és I/O rendszeren osztoznak · minden processzor az op. rendszer azonos változatát (másolatát) futtatja, melyek egymással szükség szerint kommunikálnak · több processzus futhat egyszerre teljesítménycsökkenés nélkül I/O és ütemezési problémák léphetnek fel
asszimetrikus multiprocesszálás
· minden processzor a hozzárendelt specifikus feladatot (task) oldja meg. A taskok egymással kommunikálhatnak.
· Elosztott rendszerek: a számításokat több processzor között osztják meg
lazán kapcsolt/csatolt rendszerek a processzorok saját lokális memóriát és rendszer órát használnak. A kommunikáció nagy kapacitású adatvonalak, vagy telefonvonalak segítségével történik. elosztott rendszerek elnyei: erforrás megosztás, számítási teljesítmény növelés, túlterhelés védelem, növekv megbízhatóság, kommunikáció
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Modern rendszerek jellemzi
8. ábra Szimmetrikus multiprocesszálás Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Modern rendszerek jellemzi
· Valós idej rendszerek (real-time)
gyakori megjelenési formája valamilyen dedikált alkalmazás (pl. tudományos kísérlet támogatása, orvosi képfeldolgozás, ipari kontroll, kijelz rendszerek) irányító-felügyel rendszere a ,,kiszolgálás" azonnal megkezddik! Jól definiált, rögzített idej korlátozások. ,,hard" (,,merev" valós idej) rendszerek.
· a másodlagos tár korlátozott, vagy teljesen hiányzik; az adatokat az operatív memóriában (RAM), vagy akár ROM-ban tárolják. · konfliktus az idosztásos rendszerekkel
,,szoft" (,,puha" valós idej) rendszerek.
· korlátozott szolgáltató programok az ipari kontroll, a robotika területén. · a fejlett operációs rendszer szolgáltatásokat igényl alkalmazásoknál (Multimédia, VR) igen hasznosak.
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A Windows 2000 (áttekintés)
· a 32 bites mikroprocesszorok teljesítményének kiaknázására fejlesztették · teljes többfeladatos feldolgozást biztosít egyfelhasználós környezetben · kliens/szerver modell megvalósíthatóság Windows 2000 architektúra: · moduláris szerkezet a rugalmasság érdekében · sokféle hardverplatformon képes futni · más operációs rendszerekre írt alkalmazások b választékát támogatja · módosított mikrokernel architektúra nem teljesen szabályos mikrokernel arcutektúra módosítás: több, mikrokernelen kívüli rendszerfüggvény is kernel módban fut · bármelyik modul kivehet, frissíthet, vagy helyettesíthetó a rendszer újraírása nélkül
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A Windows 2000 (áttekintés)
Réteges szerkezet: · Hardver absztrakciós réteg (Hardware abstraction layer - HAL)
elkülöníti az op. rendszert a platformfügg hardverkülönbségektl
· Mikrokernel
az op. rendszer legtöbbet használt illetve legalapvetbb komponensei
· Eszközkezelk (device driver)
a felhasználói I/O függvényhívásokat fordítja le specifikus I/O hardvereszközök felé irányuló kérelmekké
Adminisztratív modulok: · I/O kezel, objektumkezel, biztonsági monitor, processzus/szál menedzser, helyi eljáráshívó (local procedure call - LPC) szolgáltatás, virtuális memóriakezel, gyorsítótár kezel, grafikai modulok Felhasználói processzusok típusai: · 1. rendszert támogató processzusok (bejelentkezés, session manager) · 2. szerver processzusok, 3. környezeti alrendszerek processzusai, 4. felhasználó alkalmazások
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A Windows 2000 (áttekintés)
9. ábra Windows 2000 architektúra Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A Unix (áttekintés)
· az operációs rendszer lefedi a teljes hardvert · az operációs rendszert gyakran csak kernelnek (mag) hívják · sok felhasználói szolgáltatás és interfész
héj (shell) C fordító
UNIX parancsok és könyvtárak Rendszerhívás interfész Kernel
Hardver
Felhasználói alkalmazások
10. ábra Unix architektúra
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusleírás és -vezérlés
1. 4. Processzusállapotok 2. Processzusleírás 3. Processzusvezérlés A UNIX processzuskezelése
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Két állapotú processzus modell
· Folyamat (processzus): végrehajtás alatt álló program
Ütemez
Belépés
Nem futó
Futó
Kilépés
· A processzus két állapotban lehet: Futó, Nem futó · Nem futó processzus várakozása:
Várakozási sor Belépés
Megállítás
1. ábra A két állapotú processzus modell
Ütemez
CPU
Kilépés
Megszakítás
2. ábra A várakozási sor (queue) Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusütemezés és létrehozás
· Ütemez (dispatcher):
program, mely a processzor processzusokkal való ellátását végzi megszakítás vagy processzusfelfüggesztés esetén a várakozási sorból választ ki végrehajtásra egy másik processzust megóvja a rendszert attól, hogy egy processzus kisajátítsa a processzoridt
· Processzus létrehozása:
Az op. rendszer létrehozza a processzus kezeléséhez szükséges adatszerkezetet és a fmemóriából címteret foglal le a processzus számára. Okai:
· új kötegelt munka (batch job) benyújtása · új felhasználó terminálról való bejelentkezése · az op. rendszer által létrehozott processzusok valamilyen szogáltatásnyújtás érdekében (pl. nyomtatásvezérlés) · egy már létez processzus is létrehozhat processzust (egymással kapcsolatban álló processzusok kommunikációját meg kell oldani!)
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusmegszakítás
· · · · · · · · · · · · Kötegelt munka kiadja a Halt utasítást Egy felhasználó kijelentkezik Alkalmazásból való kilépés Bizonyos hibafeltételek teljesülése Okai: Normális processzusbefejezés · Érvénytelen utasítás: adat ,,végrehajtása" Idhatár túllépése · Privilegizált utasítás: az utasítás az op. Memória nem áll rendelkezésre rendszer által lefoglalt Határok megsértése (Bounds · Használhatatlan adatsor violation) · Operációs rendszer közbeavatkozása Védelmi hiba: például írás csak · Szül processzus és így az utód olvasható fájlba processzus is megszakad Számolási hiba · Szül processzus által történ megszakítás Idtúllépés I/O hiba
Dr. Fazekas Gábor
Operációs rendszerek
Debreceni Egyetem
Informatikai kar
Öt állapotú modell
· A két állapotú modell elégtelensége:
néhány nem-futó állapotban lev processzus készen áll a végrehajtásra, míg mások blokkolva vannak (I/O várakozás) az ütemez nem választhat csak úgy processzust a lista legvégérl az ütemeznek végig kellene szkennelnie a listát a nem blokkolt legrégebbi processzus után keresve Nem futó processzusok kettéválasztásának szükségessége:
· Futásra kész (Ready) állapot és blokkolt (Blocked) állapot
A processzusok öt állapota: · Futó (Running) · Futásra kész (Ready) · Blokkolt vagy várakozó (Blocked) · Új (New): újonnan létrehozott processzus, mely nincs még a fmemóriában · Befejezett (Exit): processzus, melyet az op. rendszer kivon a végrehajtandó processzusok közül
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Öt állapotú modell
Elfogadás Új Futásra kész Idtúlfutás Ütemezés Futó Befejezett
Esemény bekövetkezik
Eseményre való várakozás
Várakozó
3. ábra Az öt állapotú folyamat modell
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Várakozási sor használata
Futásra készek sora Ütemez CPU
Elfogadás
Idtúlfutás Várakozók sora Esemény bekövetkezése Eseményre várakozás
4. ábra Egyszeres várakozási sor
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Várakozási sor használata
Futásra készek sora Elfogadás Ütemez CPU
Idtúlfutás Esemény 1.-re várakozás Esemény 2.-re várakozás
Esemény 1. Sor Esemény 1. bekövetkezése Esemény 2. Sor Esemény 2. bekövetkezése
Esemény 3. Sor Esemény n. bekövetkezése
Esemény n.-re várakozás
5. ábra Többszörös várakozási sor Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusfelfüggesztés
· A processzor sokkal gyorsabb, mint az I/O rendszer, így elfordulhat, hogy az összes processzus I/O-ra vár (a processzor üresjáratban van....) · Ezen processzusok memóriából lemezre történ mozgatásával memória szabadítható fel új processzusok számára (swap in, swap out) - SWAPPING · A processzus lemezre történ áthelyezésével a processzus blokkolt állapotból felfüggesztett állapotba kerül · Felfüggesztett lista (suspended queue): felfüggesztett processzusok listája
Elfogadás Új Futásra kész Idtúlfutás Esemény bekövetkezik Felfüggesztés Felfüggesztett Blokkolt Ütemezés Futó Befejezett
Eseményre való várakozás
6. ábra Egy felfüggesztett állapot Dr. Fazekas Gábor
Operációs rendszerek
Debreceni Egyetem
Informatikai kar
Két felfüggesztett állapot
· Probléma: egy felfüggesztett processzus idközben futásra késszé válhat
Új
dás oga Elf
Elf oga dá s
· Két új állapot szükséges:
Felfü ggesz t
Blokkolt, felfüggesztett Futásra kész, felfüggesztett
és
Aktiválás Blokkolt felfügg. Felfüggesztés Esemény beköv. Esemény beköv. Futásra kész
Ütemezés Futó Idtúlfutás
Es vá emé ra ny ko re zá s
Befejezett
Aktiválás Fut. kész felfügg. Felfüggesztés Blokkolt
7. ábra Több felfüggesztett állapot Dr. Fazekas Gábor
Operációs rendszerek
Debreceni Egyetem
Informatikai kar
Processzusfelfüggesztés okai
· Swapping:
az operációs rendszernek fmemóriát kell felszabadítani, hogy egy készen álló processzust be tudjon tölteni
· Egyéb operációs rendszerhez köthet okokból:
pl. az operációs rendszer felfüggeszthet olyan processzust, amely egy hiba okozásával gyanúsítható
· Interaktív felhasználói kérelem:
egy felhasználó a program végrehajtásának felfüggesztését kérheti (pl. erforráshasználati okok miatt)
· Idzítés:
olyan processzus ideiglenes felfüggesztése, mely periodikusan hajtódik végre (naplózó illetve rendszermonitorozó processzusok)
· Szül processzus általi kérelem:
szül processzus felfüggesztheti az utód processzust annak vizsgálata illetve megváltoztatása céljából
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusleírás
· Az operációs rendszernek információra van szüksége a processzusok és erforrások pillanantnyi állapotáról · Az op. rendszer az által felügyelt egységekhez táblázatokat rendel · Négy ilyen táblázat (op. rendszer függ): Memória tábla, I/O tábla, fájl tábla, processszustábla
· · · · fmemória kiosztása a · processzusok számára másodlagos memóriakiosztás · a processzusok számára védelmi jellemzk az osztott · memóriához való hozzáféréshez a virtuális memória kezeléséhez szükséges egyéb információ I/O eszköz elérhet vagy foglalt az I/O mvelet pillanatnyi állása az I/O forrásaként illetve céljaként használt fmemória terület · · · · · fájlok létezése másodlagos memórián elfoglalt területük jelenlegi állapot egyéb jellemzk (attribútumok) gyakran ezeket az információkat a fájlkezel rendszer kezeli és használja
Dr. Fazekas Gábor
Operációs rendszerek
Debreceni Egyetem
Informatikai kar
A processzustábla
· Hol található meg a processzus? · Jellemzk, melyek szükségesek a kezelésükhöz:
processzus azonosító (ID) processzus állapot elfoglalt memóriaterület
Processzuskép (Process Image): · Felhasználói adat
lokális és globális változók illetve definiált konstansok számára fenntartott adat területek
· Felhasználói program
a processzus során végrehajtandó program(ok)
· Rendszer verem (System stack)
rendszerhívások paramétereinek tárolása
· Processzusvezérl blokk (Process Control Block - PCB)
az op. rendszer számára a processzus vezérléséhez szükséges adatok
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A processzustábla
8. ábra Operációs rendszert vezérl táblák Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A processzusvezérl blokk elemei
· Processzusazonosítás
processzusazonosító: egyedi numerikus azonosító
· az elsdleges processzustábla egy indexe is lehet
szülprocesszus azonosítója felhasználóazonosító
· Processzor Állapot Információ (Processor State Information)
Felhasználó által látható regiszterek állapota Vezérl- és státuszregiszterek állapota: processzorregiszterek, melyek a processzor mködését vezérlik
· Programszámláló: a következ meghívandó utasítás címét tartalmazza · Állapotkód: a legutolsó aritmetikus vagy logikai mvelet eredményét tartalmazza (eljel, nulla, átvitel, egyenl, túlcsordulás) · Státuszinformáció: megszakítás bekapcsolva/kikapcsolva, végrehajtó mód
Veremmutatók (Stack Pointer) állapota
· minden processzushoz társítva van egy vagy több last-in-first-out (LIFO) rendszerverem. Ez a verem a rendszerhívások és eljárások számára paraméterek és címek tárolására szolgál. A veremmutató ezen verem tetejére mutat. Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A processzusvezérl blokk elemei
· Processzusvezérl Információ (Process Control Information)
Ütemezési és állapot információ: ez az információ szükséges az op. rendszernek, hogy az ütemezési feladatát elvégezze
· Processzusállapot: a végrehajtásra kijelölt processzus készenléti fokát határozza meg (futó, futásra kész, várakozó, leállított). · Prioritás: egy vagy több mez írja le a processzus ütemezésének prioritását. (alapértelmezett, azonnali, megengedhet legmagasabb) · Ütemezéssel kapcsolatos információ: a használt ütemezési algoritmustól függ. Pl: a processzus várakozással telt idejének mértéke, ill. a legutolsó végrehajtás során eltelt id · Esemény: milyen eseményre várakozik a processzus, hogy az végrehajtható legyen?
Adatrendszerezés
· Egy processzus más processzushoz csatolódhat valamilyen rendszer szerint. Például szül-gyerek viszonyban lehet más processzus(okk)al. A PCB ilyen szerkezetek, viszonyok kialakítását támogatja, más processzusra mutató pointerek alkalmazásával
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A processzusvezérl blokk elemei
· Processzusvezérl Információ
processzusok közötti kommunikáció
· Több jelz illetve üzenet is rendelhet két független processzus kommunikációjához. Ezen információk egy része vagy egésze a processzusvezérl blokkban tarthatók fent.
processzus privilégiumok
· a processzusoknak privilégiumok adhatók; a számára elérhet memóriát és a végrehajtható utasítások típusait határozza meg
memóriakezelés
· ez a rész laptábla mutatókat tartalmazhat mely a processzushoz rendelt virtuális memóriát írja le
erforrás felhasználás
· a processzus által vezérelt erforrásokat (pl. megnyitott fájlok) jelezheti. A processzor illetve más erforrás felhasználásának történetét is tartalmazhatja; ez az információ az ütemezrendszer számára lehet fontos.
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A processzusvezérl blokk elemei
9. ábra Operációs rendszert vezérl táblák Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusvezérlés
· Végrehajtás módjai:
Felhasználói mód
· csökkentett privilégiumokkal járó mód · felhasználói programok tipikusan ebben a módban kerülnek végrehajtásra
Kernel mód
· több privilégiummal rendelkez mód · teljes felügyelet a processzor (és összes utasítása), a regiszterek és a memória felett.
· Processzuslétrehozás lépései:
Egyedi processzusazonosító hozzárendelése Tárfoglalás a processzus számára Processzusvezérl blokk inicializálása Megfelel kapcsolatok beállítása
· ütemezési sorhoz szükséges listához történ kapcsolódás
Egyéb adatrendszerek létrehozása
· könyvelési fájl fenttartása
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusvezérlés (processzusváltás)
Processzusváltás okai: · Megszakítás
Óramegszakítás
· a processzus a maximális idszeleten túlfut
I/O megszakítás Memóriahiba
· a memóriacím a virtuális memóriában lév szóra mutat amit elször a fmemóriába kell áthozni, csak ezután futhat tovább a processzus
· Csapda
hibaesemény a processzus ,,Kilépés" állapotba történ mozgatását jelentheti
· Rendszergazda hívás
op. rendszer függvényének hívása
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A UNIX processzusállapotai
10. ábra A UNIX processzusállapotai és átmenetei Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Szálak, mikrokernelek
Processzusok és szálak 2. Mikrokernelek 3. A UNIX processzuskezelése Windows 2000 és Linux processzusai, száljai 1.
4.
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusok és szálak (Thread)
· A processzusokkal kapcsolatban két jellemzt lehet megemlíteni:
erforráskiosztás: a processzus számára virtuális címtartomány van lefoglalva a processzus kép (process image) tárolásához ütemezés/végrehajtás: a processzus végrehajtása egy programvégrehajtási útvonalat követ, mely keresztezdhet más processzusok végrehajtásával
· Ezen jellemzk egymástól függetlenek, az op. rendszer egymástól függetlenül kezelheti ket:
Processzus
· erforráskiosztás alapegysége · virtuális címtartomány, fmemória, I/O eszközök és fájlok
Szál (vagy könnysúlyú processzus)
· processzor kiszolgálás, ütemezés alapegysége · ütemezés és kiszolgálás op. rendszer vezérlése szerint · a szálak olyan mechanizmust szolgáltatnak, amely lehetvé teszi a szekvenciális processzusoknak a rendszerhívások blokkolását, s közben a ,,párhuzamosság elérését"
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Többszörös szálak (Multithreading)
· Az op. rendszer támogathat egy processzuson belül több vezérlési szál végrehajtását MS-DOS csak egyszeres szálakat támogat UNIX támogat párhuzamos felhasználói processzusokat, de egy processzuson belül csak egy szálat Windows 2000, Solaris, Linux, Mach, és OS/2 támogatja a többszörös szálakat
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Többszörös szálak (Multithreading)
1. ábra Szálak és processzusok Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Szálak
· Egy processzuson belül egy vagy több szál lehetséges a következ jellemzkkel végrehajtás állapota (futó, készen álló, stb.) tárolt ,,szálkörnyezet"
· program címszámláló, verem tartalma, regiszterkészlet, gyerekszálak, lokális változók számára memória
a processzushoz lefoglalt memóriához és erforrásokhoz való hozzáférés
· ugyanazon processzushoz tartozó szálak (task) közösen használják
Események, melyek egy processzus összes száljára hatással van egy processzus megszakítása az összes szál megszakításával jár Szálak használatának elnyei: · Egy szál létrehozásához kevesebb id kell, mint egy processzus létrehozásához · Kevesebb id egy szál megszakítása, mint egy processzusé · Ugyanazon processzuson belüli szálak közötti átváltás kevesebb idvel jár, mint processzusok között · Mivel az egy processzuson belüli szálak a memórián és a fájlokon osztoznak, a kernel segítségül hívása nélkül tudnak kommunikálni
Operációs rendszerek Dr. Fazekas Gábor
·
Debreceni Egyetem
Informatikai kar
Szálak
2. ábra Egyszeres és többszörös szálak Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Szálak
· Mveletek melyek egy szál állapotát megváltoztatják
Származtatás: másik, új szálat származtatni Blokkolás, Unblokkolás Befejezés: erforrások felszabadítása (regiszterek, vermek)
3. ábra Multithreading egy processzoron Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Szálak megvalósítása
· Felhasználói-szint szálak (User Level Thread - ULT)
a szálak kezelését az alkalmazások végzik a kernel nem tud a szálak létezérérl
· Kernel-szint szálak (Kernel Level Thread - KLT)
a kernel tartja fent a processzusok és szálak környezetét szál alapú ütemezés Pl: Windows XP, Linux, OS/2
· Vegyes megközelítés
szál létrehozása a felhasználói térben
· az ütemezés és szinkronizáció nagy része is
egy alkalmazáshoz tartozó több ULT leképzése ugyanannyi vagy kevesebb KLT-re Pl.: Solaris
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Szálak megvalósítása
4. ábra Felhasználó-szint és kernel-szint szálak Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Mikrokernel
· Kis operációs rendszermag · Csak az alapvet operációs rendszerfüggvényeket, szolgáltatásokat tartalmazza:
alacsony szint memóriakezelés
· hozzárendelni minden virtuális oldalt egy fizikai oldalhoz
processzusok közötti kommunikáció
· üzenet (message) az alapvet forma · processzusok közötti üzenetváltás memória-memória másolást von maga után
I/O és megszakításkezelés
· Hagyományosan operációs rendszer részeként mköd szolgáltatások küls alrendszerekké válnak
eszközmeghajtók fájlrendszerek virtuális memória kezel ablakkezel rendszer biztonsági rendszerek
Dr. Fazekas Gábor
Operációs rendszerek
Debreceni Egyetem
Informatikai kar
Mikrokernel
a) Hagyományos kernel 5. ábra Kernel architektúra Operációs rendszerek
b) Mikrokernel
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A mikrokernel elnyei
· Egységes felületet biztosít a processzusok számára
a processzusoknak nem kell különbséget tenniük kernel-szint és felhasználószint szolgáltatások között
· Kiterjeszthet
új szolgáltatások könnyen hozzáadhatók
· Rugalmas
új szolgáltatások hozzáadhatók, létez szolgáltatások kivehetk, testreszabható
· Hordozható
a rendszer új processzorra való átvitele esetén csak a mikrokernelben szükséges változtatni, az egyéb szolgáltatásokon nem
· Megbízható
moduláris felépítés, egy kis mikrokernel könnyebben és szigorúbban tesztelhet
· Támogatja az osztott rendszerket
az üzenetek küldése anélkül történhet, hogy információnk lenne a célgéprl
· Objektum orientáltság
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A Windows 2000 objektumai
Objektum típusa
Processzus
Processzus ID Biztonsági leíró Prioritás Kvótahatárok I/O számlálók Kivételkezel portok Virtuális memória mv. számlálók Kilépési állapot Processzus létrehozás Processzus megnyitás Processzus megszakítás Processzus információ beállítás Processzus információ lekérdezés
Szál
Szál ID Szál context Dinamikus prioritás Alap prioritás Végrehajtási id Készültségi állapot Felfüggesztés számláló Megszakítás port Kilépési állapot Szál létrehozás Szál megnyitás Szál információ lekérdezés Szál információ beállítás Szál megszakítás Context beállítás Context lekérdezés Felfüggesztés Folytatás (újraindítás) Megszakítási port nyilvántartás
Objektum attribútumai
Szolgáltatások
6. ábra A Windows 2000 objektumai Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A Windows 2000 objektumai
készenléti
futásra kész
futó
átmeneti
várakozó
megszakított
7. ábra A Windows 2000 szálállapotai és azok átmenetei Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Linux processzusok, szálak
Állapotok: · Futó · Megszakítható
blokkolt állapot
· Nem megszakítható
blokkolt állapot, de nem fogad semmilyen jelet
· Leállított
felfüggesztett processzus, csak egy másik processzus pozitív eredmény eseményére indulhat újra
· Zombi
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Linux processzusok, szálak
leállított
szignál
szignál Futó állapot
létrehozás
megszakítás
futásra kész
ütemezés
futó
zombi
szignál/ esemény
esemény nem megszakítható
megszakítható
6. ábra A Linux processzus/szál modell Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Folyamatszinkronizáció
3. 1. Konkurencia (versenyhelyzetek) 2. Kölcsönös kizárás (megvalósítás és hardvertámogatás) Szemaforok (termel-fogyasztó, alvó borbély, vacsorázó filozófusok problémája ) 4. Monitorok 5. Processzusok közötti kommunikáció (írók-olvasók problémája)
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Versenyhelyzetek
Versenyhelyzetek és az ezzel kapcsolatos problémák:
· Globális erforrások (változók) megosztása processzusok között:
ha két processzus megosztott változót használ, a végeredmény a hozzáférés sorrendjétl függvé válik
· ·
Erforráslefoglalás (I/O csatornák lefoglalása) processzusok által:
holtponthoz, éhezéshez vezethet
A konkurenciahelyzetbl származó programozási hibákat nehéz lokalizálni! Egy processzor:
Process P1 void echo() { chin = getchar(); chout = chin; putchar(chout); } . in = getchar(); . chout = chin; putchar(chout); .
Több processzor:
Process P2 . . in = getchar(); chout = chin; . putchar(chout);
Tanulság: a megosztott globális változókat védeni kell!
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Versenyhelyzetek
Az operációs rendszer feladatai: · Aktív processzusok nyomonkövetése · Erforrások lefoglalása és felszabadítása
Processzorid Memória Fájlok I/O eszközök
· Adatok és erforrások védelme · A processzus eredménye független kell legyen más, konkurens processzusok végrehajtásának sebességétl
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Versenyhelyzetek
· Megoldás: kölcsönös kizárás szükséges
kritikus szakasz bevezetése (a program azon része, amelyik nem megosztható erforrást illetve globális változót használ)
· Egyszerre csak egy processzus léphet be a kritikus szakaszába · Példa: egy adott idben csak egy processzus számára engedélyezett, hogy a nyomtatónak utasításokat küldjön
· Kölcsönös kizárás miatt elfordulható problémák:
Holtpont (deadlock): processzusok egymásra befejezdésére várnak, hogy a várt erforrás felszabaduljon Éhezés (starvation): egy processzusnak határozatlan ideig várnia kell egy erforrás használatára
Kölcsönös kizárás megvalósítása: · Dekker algoritmusa: kölcsönös kizárás két processzusra
aktív várakozás (busy waiting) problémájának megoldása:
· a processzus folyamatosan ellenrzi, hogy beléphet-e a kritikus szekciójába (aktív) · ugyanakkor ezen kívül semmi produktívat nem csinál (várakozás) Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Kölcsönös kizárás megvalósítása
A Dekker-algoritmus Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Kölcsönös kizárás megvalósítása
A Peterson-algoritmus Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Kölcsönös kizárás: hardver
· Megszakítás kikapcsolása
a processzus addig fut, míg egy operációs rendszer szolgáltatást meghív, vagy megszakítása történik a megszakítás kikapcsolásával szavatolni lehet a kölcsönös kizárást több processzor esetében (multiprocesszing)
· a megszakítás kikapcsolása nem garantálja a kölcsönös kizárást!
· Spec. gépi utasítások (szinkronizációs hardver)
a test-and-set (TS) gépi utasítás (bizonyos) architektúrákban egy atomi mveletként képes egy memória szó tartalmát lekérdezni és a szóba egy új értéket beírni (a kett között megszakítás nem lehetséges) felhasználása: a közös adat elérésének ténye más processzusok számára érzékelhetvé tehet!
A TS gépi utasítás Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Kölcsönös kizárás: gépi utasítások
· Elnyök
akármennyi processzusra alkalmazható egy processzoros, de több processzoros esetre is egyszer ezért könny az ellenrzés több kritikus szakasz használatát is támogatja
· Hátrányok
az ,,aktív várakozás" jelentsen fogyasztja a processzoridt Éhezés (Starving) lehetséges, mikor egy processzus elhagyja a kritikus szakaszt és több, mint egy processzus várakozik Holtpont (Deadlock)
· ha egy kis prioritású processzus a kritikus szakaszban van és egy nagyobb prioritású processzus szeretne belépni a kritikus szakaszba, a nagyobb prioritású processzus megkapja a processzort a kritikus szakaszra való várakozáshoz
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Szemaforok
· A szemaforok (S) speciális, egész típusú (integer) változók, melyeket processzusok megjelölésére használnak
nemnegatív kezdértéket kaphat ,,Wait" mvelet csökkenti a szemaforok értékét WAIT(S): S:=S-1; if S<0 then BLOCK(S); ,,Signal" mvelet növeli a szemaforok értékét SIGNAL(S): S:=S+1; if S0 then WAKEUP(S);
· Egy processzus felfüggesztésre kerül, amíg meg nem kapja a jelölést · A ,,wait" és ,,signal" mveletek nem megszakíthatók · A block(S) felfüggeszti a hívó processzus végrehajtását, és a szemaforon várakozó processzusok sorához adja
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Termelk/fogyasztók problémája
· · · Egy vagy több termel adatot generál melyet egy bufferbe tesz Egy egyszer fogyasztó ezeket az adatokat egyenként veszi ki a tárból Egyszerre egy termel vagy fogyasztó érheti el a tárat
producer: while (true) { while ((in + 1) % n == out) b[in] = v; in = (in + 1) % n; } consumer: while (true) { while (in == out) w = b[out]; out = (out + 1) % n; }
producer: while (true) { b[in] = v; in++; } consumer: while (true) { while (in <= out) w = b[out]; out++; }
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Termelk/fogyasztók problémája
1. ábra A termelk/fogyasztók probléma egy megoldása szemaforokkal
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Alvó borbély probléma
A probléma:
3 szék, 3 borbély, és egy várakozó rész a tzjelz beállítása maximum 20 vendéget engedélyez az üzletben a borbélyüzlet esetenként 50 vendéget tud kiszolgálni vendég nem léphet be az üzletbe, ha az elérte a max. kapacitását ha bejutott, a vendég leülhet a kanapéra vagy ha az teli van, akkor áll mikor egy borbély szabaddá válik, a kanapén legrégebb óta ul vendég kerül kiszolgálásra és egyúttal ha van álló vendég, a legrégebben álló vendég foglalhat helyet a kanapén amikor egy vendég hajvágása befejezdött, a díjat bármelyik borbélynak kifizetheti, de mivel csak egy pénztárgép van, egyszerre csak egy vásárló tud fizetni
Feladat: a borbélyok és vendégek beprogramozása versenyhelyzetek kialakítása nélkül!
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Alvó borbély probléma
2. ábra Az alvó borbély probléma Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Alvó borbély probléma
3. ábra Az alvó borbély probléma egy megoldása Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A vacsorázó filozófusok probléma
· · · · Egy köralakú asztal mellett öt filozófus ül, mindegyik eltt van egy tányér rizs és a szomszédos tányérok között egy-egy evpálcika. Evéshez a filozófus a saját tányérja melletti két eveszközt használhatja úgy, hogy ezeket egymás után kézbe veszi. Ha befejezte az étkezést, visszateszi az eszközöket, és gondolkodni kezd. Majd újra megéhezik, stb.
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Monitorok
· a monitorok olyan magas szint szinkronizációs eszközök, melyek lehetvé teszik egy absztrakt adattípus biztonságos megosztását konkurens processzusok között (a monitor eljárások, változók és adatszerkezetek együttese) ...(objektum! Hoare, 1971) · Fbb jellemzk:
a processzusok hívhatják a monitorban lev eljárásokat, de annak bels adatszerkezetét nem érhetik el minden idpillanatban csak egy processzus lehet aktív a monitorban megvalósítása például szemaforokkal lehetséges a kölcsönös kizárás megvalósítását a fordítóprogram/operációs rendszer végzi, így a hibázás miatti holtpontok elkerülhetk! a blokkoláshoz és ébresztéshez állapotváltozókat (condition típus) használ két rajtuk elvégezhet mvelettel (WAIT, SIGNAL). Ezek az állapotváltozók nem számlálók, mint a szemaforok!
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Monitorok
4. ábra Egy monitor szerkezete Operációs rendszerek
5. ábra A vacsorázó filozófusok probléma megoldása monitorral Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusok közötti kommunikáció (IPC)
Az IPC olyan mechanizmust jelent, amely lehetvé teszi, hogy processzusok egymással kommunikáljanak, akcióikat összehangolják ill. szinkronizálják. · Az IPC két mvelete:
send(message) és receive(message) Ha a P és Q processzusok kommunikálni szeretnének, akkor szükségük van egy kommunikációs vonalra (communication link)
·
Direkt kommunikáció:
send(P, message): küldj egy üzenetet P-nek (utasítás Q-ban) receive(Q, message): fogadj egy üzenetet Q-tól (utasítás P-ben) a kommunikációs vonal ebben az esetben automatikusan épül fel a két processzus között (PID azonosító ismerete szükséges!) a vonal pontosan két processzus között létezik
·
Indirekt kommunikáció:
send(A, message): küldj egy üzenetet az ,,A" Mail-boxba (Mail-box: egy közösen használt, megosztott adatszerkezet)(utasítás Q-ban) receive(A, message): olvass ki egy üzenetet az A Mail-boxból (utasítás P-ben) a kommunikációs vonal abben az esetben épül fel a két processzus között, ha közösen használhatják az A Mail-boxot (PID ismerete nem szükséges!)
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Processzusok közötti kommunikáció (IPC)
6. ábra Processzusok közvetett kommunikációja Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Az ,,olvasók-írók" probléma
· Egy adatot, állományt több processzus megosztva, párhuzamosan használ, egyesek csak olvassák, mások csak írják. Hogyan biztosítható az adatok konzisztenciája? · Egy stratégia (olvasók prioritása):
párhuzamosan akárhány olvasó olvashatja a fájlt egyszerre egy író írhat a fájlba ha egy író éppen fájlba ír, olvasó nem férhet hozzá a fájlhoz
· Egy másik stratégia (írók prioritása):
olvasó nem férhet hozzá a fájlhoz, amint egy író írási szándékot jelez · Mindkett éhezéshez (starvation) vezethet!
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Az ,,olvasók-írók" probléma
7. ábra Az írók-olvasók probléma egy megoldása (prioritás az olvasóknál)
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Holtpont és éhezés
5. 1. A holtpont fogalma 2. Holtpont megelzés 3. Holtpont elkerülés 4. Holtpont detektálás A UNIX konkurenciakezelése
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A holtpont
· holtpont fogalma: a rendszererforrásokért verseng vagy egymással kommunikáló processzusok állandósult blokkoltsága · Nincs általános megoldás!! · Két vagy több processzus erforrásszükségletek miatt állnak egymással konfliktusban
a) Holtpont lehetséges a) Holtpont 1. ábra Holtpont (illusztráció) Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A holtpont
· Példa: két processzus (P, Q), két erforrás (A, B), mindkét processzus igényt tart mindkét erforrásra. A 2. ábra a hat lehetséges végrehajtási útvonalat mutatja (egyprocesszoros rendszerben egyszerre egy processzus végrehajtása lehetséges!) · a 3. és 4. útvonalnál a holtpont elkerülhetetlen!
2. ábra Példa holtpontra Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A holtpont kialakulásának négy feltétele
·Kölcsönös kizárás: legalább egy többek által igényelt erforrás nem megosztható, azaz egyszerre csak egy processzus használhatja ·Tartani és várni (hold & wait): Valamelyik processzus már lefoglalt egy erforrást, és arra vár, hogy továbbiakat lefoglaljon ·Nincs preempció: az erforrást a foglalótól nem lehet kívülrl operációs rendszer beavatkozással elvenni ·Körkörös várakozás (circular wait): a körben állók mindegyike a következ által foglalt erforrásra vár Megjegyzés: a négy feltételnek egyszerre kell teljesülnie (de nem függetlenek)
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A holtpont
· Példa: két processzus (P, Q), két erforrás (A, B), csak az egyik processzus (Q) tart igényt egyszerre mindkét erforrásra. A P processzus az erforrásokat egymás után használja.
3. ábra Példa holtpont elkerülésére Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A holtpont
Újrahasználható erforrások: · egyszerre egy processzus használja de a használat során nem ,,merül" ki · processzusok elnyerik az erforrást, melyet késbb felszabadítanak, hogy egy másik processzus használni tudja · pl: processzorok, I/O csatornák, f és másodlagos memóriák, fájlok, adatbázisok és szemaforok · holtpont következik be, ha mindkét processzus fenntart egy-egy erforrást és a másikért folyamodik (4. ábra a végrehajtási sorrend: 4. ábra Két processzus újrahasználható p0p1q0q1p2q2...... holtpont)
erforrásokért versenyez
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A holtpont
Fel/el-használható erforrások: · processzus által létrehozott és megsemmisített erforrások · pl: megszakítások, szignálok, üzenetek és I/O pufferekben lév információk · két processzus (P1, P2) egymástól vár üzenetet, majd annak megkapása után üzenetet küld a másiknak. Így holtpont állhat el, hiszen a Receive blokkolttá válik (5. ábra)
5. ábra Két processzus felhasználható erforrások által okozott holtponthelyzete Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A holtpont
Holtpont kialakulásához vezet (de egyébként szükséges) stratégiák: · Kölcsönös kizárás: egyszerre csak egy processzus használhat egy erforrást · Tartani és várni (Hold-and-wait)
egy processzus lefoglalva tart erforrásokat, míg más erforrások megszerzésére vár
· Nincs beavatkozás:
erforrást nem lehet erszakosan elvenni egy processzustól, mely éppen használja
· Körkörös várakozás
processzusok zárt lánca keletkezik, ahol minden processzus lefoglalva tart egy erforrást, melyre a következ processzusnak szüksége van (3.ábra)
Operációs rendszerek
5. ábra Körkörös várakozás
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Holtpont megelzés
Stratégiák szerinti prevenció: · Kölcsönös kizárás: nincs lehetség megelzésre · Hold and wait:
blokkolni a processzust, amíg az összes számára szükséges erforrás fel nem szabadul egy processzushoz rendelt erforrás sokáig üresjáratban lehet; ezalatt kiosztható más processzus számára
· Nincs beavatkozás:
ha egy processzus számára nem lehetséges további igényelt erforrás elnyerése, akkor a korábban lefoglalt erforrásokat fel kell szabadítania az operációs rendszer beavatkozhat és felszabadíthat egy erforrást
· Körkörös várakozás:
erforrások lineáris elrendezése amíg egy erforrás elfoglalt, addig csak a listán magasabban lev erforrás elérhet
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Holtpont elkerülése
Holtpont elkerülésének két megközelítése: · ne indítsunk el egy processzust, ha igényei holtponthoz vezetnek! · ne elégítsünk ki erforráskérelmet, ha az allokáció holtponthoz vezethet! Processzus indításának megtagadása: · n processzus, m erforrás esetén bevezetésre kerül: erforrás (Resource) vektor (R1,...,Rm), rendelkezésre álló erforrások (Available) vektora (V1,...,Vm), allokációs (Allocation) mátrix (A11,....Anm), illetve az összes processzus összes erforrásra vonatkozó igényeinek (Claim) mátrixa (C11,...,Cnm) · Így: egy új processzus akkor indíható el, ha RiC(n+1)i+nk=1Cki az összes i-re · ez nem optimális stratégia, ugyanis a legrosszabbat feltételezi: az összes processzus egyszerre akarja megszerezni az összes, számára szükséges erforrást
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Holtpont elkerülése
Erforrás lefoglalásának megtagadása: · úgy is nevezik, hogy bankár algoritmus · a rendszer állapota: az erforrások aktuális kiosztása processzusokhoz · biztonságos állapot az, amibl legalább egy végrehajtási sorrend lehetséges, mely nem holtponttal végzdik (nem biztonságos állapot az, amire ez nem igaz) · nincs visszaszorítás és beavatkozás! · bankár algoritmusra vonatkozó korlátok:
a maximum erforrás-szükségletet elre meg kell állapítani fix számú erforrás foglalható csak le processzus nem léphet ki, amíg erforrást foglal éppen le
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Holtpont észlelése
Holtpont detektálási algoritmus: · allokációs mátrix (A), erforrás vektor, elérhetségi vektor · kérelem mátrix Q bevezetése, ahol qIj jelenti az I processzus által igényelt j típusú erforrások mennyiségét · kezdetben minden processzus jelöletlen · Az algoritmus:
1. jelöljünk meg minden processzust, melynek allokációs mátrixbeli sora csupa 0 2. legyen W egy vektor, mely megegyezik az elérhetségi vektorral 3. keressünk olyan processzust (i), mely jelöletlen, és QikWk, ahol 1km. Ha ilyen nincs, szakítsuk meg az algoritmust! 4. ha van, jelöljük meg a processzust és állítsuk be az új W-t: Wk=Wk+Aik, ahol 1km, majd lépjünk vissza a 3. lépésre
Request matrix
Allocation matrix
Resource vektor
· holtpont létezik, ha az algoritmus végén jelöletlen processzusok maradnak
Operációs rendszerek
Available vektor
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Holtpont észlelése
Helyreállítási stratégia: · az összes holtpontot okozó processzus felfüggesztése (ez a leggyakoribb) · az összes holtpontban lev processzus visszaállítása egy elzetesen definiált ellenrzési pontra és az összes processzus újraindítása
az eredeti holtpont újból bekövetkezhet....
· a processzusok egymás után való leállítása, amíg a holtpont megsznik, minden egyes processzus leállítása után a holtpontdetektáló algoritmus újraindítása szükséges · az erforrások egymás után való felszabadítása, amíg a holtpont szituáció meg nem sznik (detektáló algoritmus újraindítása minden erforrás felszabadítás után) · a processzusok kiválasztása bizonyos megfontolások alapján történik (leghosszabb hátralev futási id, legkevesebb lefoglalt erforrással rendelkez, kisebb prioritású processzusok, stb.)
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
A UNIX konkurenciakezelése
A konkurenciakezeléshez használatos objektumok: · Csatornák (Csövek, Pipes)
körkörös puffer, mely két processzus termel-fogyasztó modellen alapuló kommunikációját teszi lehetvé (first-in-first-out). Kölcsönös kizárás szükséges!
· Üzenetek (Messages) · Osztott memória (Shared memory)
leggyorsabb formája a processzusok közötti kommunikációnak
· Szemaforok
a következ elemekbl áll: 1. a szemafor aktuális értéke, 2. a legutóbb szemaforon mköd processzus azonosítója, 3. azon processzusok száma, mely arra vár, hogy a szemafor értéke nagyobb legyen, mint jelenlegi értéke, 4. azon processzusok száma, mely arra vár, hogy a szemafor értéke zérus legyen
· Szignálok
hasonlatosak a hardver megszakításhoz, de prioritás nélküliek
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Memóriagazdálkodás
1. Memóriakezelés 2. Memóriafelosztás 3. Relokáció 4. Lapozás és szegmentáció
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Memóriakezelés
· A számítógép kapacitásának jobb kihasználása megköveteli, hogy egyszerre több processzus osztozzon a memórián (shared memory) · Egy programot általában bináris formában tárolunk a háttértáron, végrehajtásához be kell tölteni a memóriába, ennek megszervezése a memóriamenedzsment feladata · Bemeneti sor (Input queue): a végrehajtásra kijelölt programok együttese
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Memóriakezelés
A memóriakezelésnek öt követelményt kell teljesítenie: · Relokáció (relocation)
a programozó nem tudja, hogy egy program végrehajtásakor a program a memórián belül hova kerül a végrehajtás alatt álló programot többször át lehet mozgatni a háttértárra (swap) és vissza, de a memóriába való visszamozgatása általában eltér helyre történik (relocation) a memória hivatkozásokat a kódba kell fordítani az aktuális fizikai memóriacímeknek megfelelen
· Védelem (protection)
a processzusok engedély nélkül nem használhatnak más processzusokhoz tartozó címtartományokat az abszolút memóriacímeket lehetetlen ellenrizni a fordítás során, hiszen a program relokációt szenvedhet, így ezt a végrehajtás alatt kell ellenrizni
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Memóriakezelés
· Megosztás (sharing)
több processzus számára engedélyezett ugyanazon memóriaszegmens elérése jobb, ha minden processzus (személy) egy program ugyanazon másolatát használja, mintha mindenkinek saját másolata lenne
· Logikai szervezés (Logical Organization)
a programokat modulokba érdemes szervezni a modulok egymástól függetlenül írhatók és fordíthatók különböz mérték a modulok védelme (read-only, execute-only) megosztott modulok
· Fizikai szervezés (Physical Organization)
a program és a hozzá kapcsolódó adatok számára az elérhet memóra kevés lehet
· ovarlaying: a teljes programnak csak az a része legyen bent az operatív tárban, amelyre ténylegesen szükség van, ezáltal lehetvé válik, hogy különböz modulok a memória azonos régióihoz legyenek rendelve
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Memóriafelosztás
Fix partícionálás: · A memória felosztás fix határokkal rendelkez régiókra · Egyenl méret partíciók kialakítása
bármelyik olyan processzus melynek mérete kisebb vagy egyenl a partíció méretével, betölthet egy elérhet partícióba ha az össze partíció tele van, az operációs rendszer kicserélheti egy partícióban lev másik processzussal Problémák:
· egy program nagyobb is lehet, mint a partíció, ekkor a programozónak az overlay technikát kell alkalmaznia · a fmemória kihasználása nem jó: minden program, méretétl függetlenül egy egész partíciót elfoglal (bels töredezettség - internal fragmentation)
Megoldás: nem egyenl méret partíciók
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Memóriafelosztás
Elhelyezési algoritmus: · Azonos méret partíciók
azonos méret miatt bárhova mehet
· Nem azonos méret partíciók
minden processzushoz a lehet legkisebb alkalmas partíciót választani (bels töredezettség minimalizálása) minden partícióhoz külön bemeneti sor (1/a. ábra) az összes partícióhoz csak egy bemeneti sor (1/b. ábra)
a)
1. ábra Fix partícionálás hozzárendelés Operációs rendszerek
b)
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Dinamikus particionálás
· Változtatható számú és nagyságú partíciók használata · A processzusok pontosan annyi memóriát foglalnak le, amennyire szükségük van · Végeredményben apró lyukak keletkeznek a memóriában (küls töredezettség external fragmentation) · Idnként tömörítés (processzusok egymás mellé tolása) szükséges, hogy az összes szabad memória egy blokkot alkosson. Ez igen sok processzoridt emészt fel....
Operációs rendszerek
2. ábra Dinamikus particionálás Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Dinamikus particionálás
· Az op. rendszernek kell eldönteni melyik szabad blokkba kerüljön a processzus, ehhez a következ algoritmusokat használhatja: · Legjobban illeszked (Best-fit)
a kérthez méretben legközelebb es blokk választása a legrosszabbul teljesít algoritmus: nagy küls töredezettség, gyakran kell tömörítést végrehajtani
· Els illeszked (First-fit)
a memória elejérl számítva az els jól illeszked blokk választása sok processzus felgylhet a memória elején, amit minden alkalommal végig kell keresni, mikor egy üres blokkot keresünk
· Következ illeszked (Next-fit)
a legutolsó lefoglalt blokktól kezdi a keresést a legjobban illeszked blokk után gyakran foglal le blokkot a memória végérl, ahol a legnagyobb blokk van, így az nagyon hamar kisebb blokkokra darabolódik tömörítésre van szükség, hogy a memória végén ismét nagy blokkunk legyen
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
,,Buddy" rendszer
· Problémák a fix és a dinamikus partíciókkal:
fix: ersen korlátozza az aktív processzusok számát, a rendelkezésre álló teret nem használja ki hatékonyan dinamikus: komplikált fenntartani, nagy a tömörítés költsége (processzorid)
· Megoldás: ,,buddy" rendszer, mint kompromisszum
az összes elérhet memória egy 2U méret egyszer blokk ha a processzus által kért méret 2U-1 < s 2U, akkor az egész blokk lefoglalásra kerül, máskülönben · ezt a blokkot két egyenl részre osztjuk (2db 2U-1 méret blokk)
· az eljárást addig folytatjuk, amíg a legkisebb olyan blokkot kapjuk, ami nagyobb vagy egyenl s-sel
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
,,Buddy" rendszer
3. ábra Példa ,,Buddy" rendszerre Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Relokáció
· Egy program memórába való betöltdése során az abszolút memóriacímek meghatározásra kerülnek · Egy processzus futás során különböz partíciókra kerülhet (swapping miatt) ami egyben különböz abszolút memóriacímet is jelent · A tömörítés szintén okozhatja processzusok más partícióba kerülését, ami szintén az abszolút memóriacímek megváltozását jelenti · Ezek miatt fontos a következ memóriacímeket bevezetni:
Logikai cím
· olyan memóriacím, mely független az aktuális memóriakiosztástól (CPU által generált cím virtuális cím) · a fizikai címre történ átfordítása szükséges
Relatív cím
· egy ismert ponthoz viszonyított pozíciót meghatározó cím
Fizikai cím (abszolút cím)
· fmemóriabeli abszolút cím (memóriakezel egység által generált) Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Relokáció
4. ábra Hardveres támogatás a relokációhoz Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Lapozás (Paging)
· A küls fragmentáció problémájának egy megoldását kapjuk, ha a memóriát és a processzusokat kis, egyenl méret egységekre osztjuk (processzusdarab: lap page ; memóriadarab: keret frame) · Az op. rendszer minden processzushoz egy ún. laptáblát (page table) tart fent
tartalmazza a processzus lapjaihoz tarozó keretek helyzetét (6.ábra) logikai cím: lap sorszáma + lapon belüli relatív cím fizikai cím: keret memóriabeli kezdcíme + kereten belüli kezdcím
5. ábra Keretek feltöltése lapokkal Operációs rendszerek
6. ábra Laptáblák az 5. ábrán lev processzusokhoz (A,B,C,D) Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Lapozás (Paging)
7. ábra Logikai cím fizikai címmé való fordítása (példa)
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Szegmentáció
· Felhasználói szemléletet tükröz memóriafelosztási séma · A programokat szegmensekre bontjuk, melyeknek nem kell azonos méretnek lenniük, de egy maximális szegmensméretnél kisebbnek · A program tehát szegmensek együttese, a szegmens egy logikai egység:
fprogram, eljárás, függvény, lokális változók, globális változók, közös változók, verem, tömbök
· A logikai cím két részbl áll: szegmens szám + offset · Minden processzushoz tartozik egy szegmenstábla:
két dimenziós, felhasználó által definiált címeket egy dimenziós fizikai címekké alakít; a táblában minden bejegyzés tartalmaz egy bázist (a szegmens fizikai kezdcímét adja meg), mérethatárt (amely a szegmens hosszát mondja meg) Szegmens táblázat bázis regiszter (STBR): a szegmens tábla memóriabeli helyére (kezdcím) mutat (pointer). Szegmens táblázat hossz regiszter (STLR): a szegmens tábla maximális bejegyzéseinek számát adja meg. az s szegmens szám akkor legális, ha s < [STLR]
Operációs rendszerek Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Szegmentáció
8. ábra Logikai cím fizikai címmé való fordítása (példa)
Operációs rendszerek
Dr. Fazekas Gábor
Debreceni Egyetem
Informatikai kar
Szegmentáció lapozással
· ötlet: a lapozás a küls fragmentációt, a szegmentálás a bels fragmentációt csökkentheti! · INTEL példa: · Egy processzus által használható szegmensek maximális száma: 16K (!) · Egy szegmens mérete: 4 GB, lapméret: 4K= 4096 bájt · A szegmensek egyik fele privát, ezek címét (adatait) az LDT (Local Descriptor Table) tartalmazza · A többi (az összes processzusok által) közösen használt szegmens, ezek címét a GDT (Global Descriptor Table) tartalmazza. · Mindkét táblában egy-egy bejegyzés 8 byte, az adott szegmens leírója (kezdcím és hossz). · Logikai cím: szelektor + offset, ahol az offset egy 32 bites érték, a szelektor
alakú, ahol s: szegmens szám, g: GDT, vagy LDT, p: protection (védelem) jelzése · A processzor 6 szegmens regisztere egy-egy szegmens egyidej gyors megcímzését teszi lehetvé.
Operációs rendszerek Dr. Fazekas Gábor
Hasonló témájú dokumentumok

- 2009-10-28 10:37:14

- 2011-01-08 15:27:37
A mások által feltöltött dokumentumokat értékelheted. Ha úgy ítéled meg, hogy a vizsgára való felkészülés szempontjából hasznos volt egy dokumentum, akkor adj rá sokcsillagos értékelést.
Ha hibákat tartalmaz, vagy egyéb probléma van vele, akkor keveset.
A dokumentumok sorrendje az értékelések alapján adódik. Ami fentebb van a listában, azt hasznosabbnak ítélték társaid. Az új dokumentumok pedig (értékelések hiányában) szintén a lista tetején kezdenek.
Hozzászólások
Ha észrevételed van egy dokumentummal kapcsolatban (például hibát találtál benne), akkor a Hozzászólások részben jelezheted. Az olyan jellegű kérdéseket mint pl.: A 2. feladat 4. sorából milyen átalakítással jutottunk az 5. sorban szereplő képlethez? - szintén ide érdemes írni
Egy tipp az oldalhoz! - Add hozzá azokat a tantárgyakat a saját tárgyakhoz, melyeket aktuálisan hallgatsz a félév során. Így megkapod mások üzeneteit akik tantárggyal kapcsolatban írnak, illetve Te magad is írhatsz ezzel kapcsolatban. Írhatsz naptári bejegyzést, kitöltheted a tantárgyi adatlapját és egy tárgy lapján látod azokat a hallgatókat akik szintén felvették ebben a félévben a tárgyat.