Gábor Dénes Foiskola ELOADÁS VÁZLATOK OPERÁCIÓS RENDSZEREK 105 Vezetotanár: KNAPP GÁBOR 2001/2002 tavasz
1. Oldal Bevezetés A számítógépek felépítése (ismétlés) Múlt, jelen, jövo Alapfogalmak Folyamatok, Eroforrások Az operációs rendszerek felépítése, feladata
2. Oldal VEZÉRLO BUSZ MEMW MEMR IOW IOR IRQ ÓRA?P Memória I/O CÍMBUSZ ADATBUSZ
3. Oldal Neumann-ciklus, elvek Program betöltése, PC beállítása Utasítás lehívása PC növelése Tárolt program Kettes számrendszer Vezérloegység Aritmetikai-Logikai egység Perifériák Végrehajtás nem igen Vége? Vége!
4. Oldal?P Mikrokód, regiszter támogatás Memória Operációs rendszer SÚLYPONTJA I/O Eszköz vezérlo áramkörök CÍMBUSZ ADATBUSZ
A logikai modell 5. Oldal Alkalmazások (Word, Excel) Magas szintu nyelvek (Pascal, C) Alacsony szintu nyelvek (Assembly) Operációs rendszer Hardver (Memória, busz, perifériák) CPU (mikroprogram, regiszterek) Logikai áramkörök (kapuk, összeadó)
6. Oldal John Vincent Atanasoff (1903-1995)
7. Oldal Open shop input felhasználó Számítógép output
8. Oldal Closed shop in felhasználók operátor out Számítógép
9. Oldal Mágnesszalag alkalmazása Segédszámítógép in out Monitor Nagy számítógép felhasználó operátor
10. Oldal Parancsnyelv (pl. JCL) $ JOB OK # a munka neve $ FTN # a FORTRAN fordító indítása - - # FORTRAN programsorok - $ LOAD # a lefordított program betöltése $ RUN futtatás - - # a program bemeno adatai - $ END # a munka vége
Spooling rendszer 11. Oldal DMA futtatás DMA DMA DMA
12. Oldal Átlapoló rendszer (pipelined) JOB 4 IN EXEC JOB 3 JOB 2 JOB 1 IN EXEC OUT IN EXEC OUT IN EXEC OUT
Multiprogramozás 13. Oldal Eszköz kezelo Megszakítás kezelo Processzor kezelés Memória kezelés Állománykezelés Eroforrás kezelés Rendszerhívások, válaszok JOB 0 JOB 1 JOB 2 JOB x CPU MEM
14. Oldal Idoosztásos, interaktív rendszerek KERNEL (CORE) SHELL Eszköz kezelo Megszakítás kezelo Processzor kezelés Memória kezelés Állománykezelés Eroforrás kezelés Rendszerhívások, válaszok Felhasználói felület JOB 1 JOB 2 JOB x CPU MEM
15. Oldal Operációs rendszerek feladatai Eszközkezelés Megszakítás kezelés Rendszerhívások, kiszolgálása Eroforrás kezelés Memória kezelés Állomány- és lemezkezelés (Felhasználói felület biztosítása) (Program fejlesztési támogatás)
Az interaktív rendszerek új szempontjai 16. Oldal Emberi válaszido Idoosztás (time sharing) Felhasználói felület Kiegészített parancsnyelv Barátságos felület Felhasználói adminisztráció azonosítás, naplózás védelem
17. Oldal Személyi számítógépek Xerox - Alter 8800 1975 IBM - PC 1981 Program fejlesztési támogatás Apple - Macintosh 1982 Grafikus felhasználói felület Novell - NetWare 1984 Lokális hálózatok Legfontosabb a felhasználó!
18. Oldal Tendencia Hardver kezelés Kezeloi felület 1940 1980 2000
A Unix jelentosége 19. Oldal mainframe Multics Unix minicomputer Unix Unix micrcomputer Unix A közös os Alkalmazkodó Szabványteremto 1960 1970 1980
20. Oldal Többprocesszoros rendszerek Nagyobb átbocsátó képesség Eroforrás megtakarítás Megbízhatóság növekedése (Fault tolerant system) Szimmetrikus (SMP) Aszimmetrikus A hardver és szoftver együttmuködése szükséges!
Elosztott rendszerek (hálózatok) 21. Oldal Rugalmasság Eroforrásmegosztás Sebességnövekedés Megbízhatóság Kommunikáció DE! Biztonsági kérdések, hozzáférés szabályozása
Folyamatok (task, process) 22. Oldal 1. Életre kelt programok 2. Olyan programok, amelyeknek van folyamatleíró táblája
23. Oldal Folyamatleíró blokk (PCB, TSS) Folyamat azonosítója Programszámláló állása Folyamat állapota Regiszterek tartalma Memóriaterület adatai Perifériák, állományok állapota
24. Oldal Eroforrások Minden, ami egy folyamat végrehajtásához szükséges (memória, processzor,perifériák állományok stb.)
25. Oldal Eroforrások típusai Megszakítható (preemptív) A folyamatoktól az eroforrás a folyamat vagy eroforrás károsodása nélkül elveheto Nem megszakítható (non-preemptív) Az eroforrás használat félbeszakítása esetén a folyamat vagy eroforrás sérülhet!
26. Oldal Operációs rendszer (Eroforrás szemlélet) A folyamatok egy olyan csoportja, amely a felhasználói folyamatok között elosztja az eroforrásokat
27. Oldal Operációs rendszer (Felhasználói szemlélet) A folyamatok egy olyan csoportja, amely megkíméli a felhasználókat a hardver kezelés nehézségeitol, kellemesebb alkalmazói környezetet biztosít
28. Oldal Az operációs rendszer szerkezete Felhasználói programok Program készítési támogatás Felhasználói folyamatok kiszolgálása Rendszerhívások Rendszermag (KERNEL) Eszközmeghajtók Hardver Válaszok Processzorkezelés Memóriakezelés Állománykezelés Megszakítás kezelés
DOS OS/2 WIN 3.1 WIN 95 WIN NT AIX Folders Netware SMB Informatikai Rendszerek Application Development Application Development Env/Tools AS/400e server Function and Structure Client Access Express Systems Management Agent/Manager Tivoli TME Server Applications Lotus Notes DOMINO ---------------- Lotus Script Business Applications San Francisco ---------------------------- Common Business Object Framework ERP --------------------------- Enterprise Resource Planning ------------------------------------------------- SAP, JDE, SSA, PeopleSoft, etc. 29. Oldal Web Server -------------------------- Information Access and Transactions Server Application IOPs Server Support Simplification - Ops Navigator - Java Framework - Packaging - Information Access Service/ Install/ PTFs Benchmark Performance CPI-C RPC Msg-Q Sockets I/O Mgr Systems Mgmnt -Mgmnt Central - Problem - Inventory -Remote Operations Communications Runtime Libraries Posix Interfaces ----------- CPA Threads Security I/O Application Enablers Web Server Enablers - HTTP, CGI-BIN - Macro Processor - Server Functions CB Connector Class Libraries Native Threads JAVA Class Libraries - AWT - JDBC - EJB System Enablers Network Station Manager TIMI Program Models OPM/ILE, JAVA, PASE GBOF (Generic BusinessObject Framework) Performance Instrumentation Process Mgmnt Distributed Services Integrated File System WARP Server Exception / Event Processing SQL Data Base Data Base Storage Mgmnt NT Applications NT P6 Secure Network Gateway (Firewall) Notes Netware Scalability/ Limits Availability/ Recovery Networks Communications, Workstations, and DASD Client Access 5250 Emulation 5250 Terminal Network Station 3270 Emulation Browser Java VM X-Windows BSD - Unix - PPC DASD Compression Switchable ASPs 2000 arms Processors LPAR N-way SMP Multi-threaded Clustering Giga processing SCALEABILITY WARP Server OS/2 P5
Megszakítások fajtái 30. Oldal Megszakítás (Interrupt) A perifériák jelzése a processzor számára (pl adatátvitel vége) Kivételek (Exception) A processzormuveletek során keletkezo hibák esetén (pl rossz címszámítás, osztás 0-val) Nem maszkolható megszakítások (NMI) súlyos hardver (pl RAM, tápfeszültség) hiba Csapda (Szoftver megszakítás, Trap) a felhasználói folyamatoktól érkezo rendszerhívások
31. Oldal Megszakítás-kezelés lépései Eredeti folyamat Megszakításkérés Elfogadás Állapot elmentése Privilegizált mód Állapot visszállítása Felhasználói mód Kiszolgáló rutin címe A kérés kiszolgálása
32. Oldal Példa: DOS+Windows Felhasználói alkalmazás Windows DOS BIOS Hardver
33. Oldal Virtuális gépek: Az IBM VM I. Alkalmazás II. Alkalmazás III. Alkalmazás I. Operációs rendszer II. Operációs rendszer III. Operációs rendszer Virtualizáló kernel Hardver
Virtuális gépek: JAVA 34. Oldal Java Alkalmazás Java Virtuális gép Hardver
Összefoglalás 35. Oldal Folyamatok, PCB fogalma Eroforrás fogalma, alaptípusai Operációs rendszerek funkciói Kommunikáció: Megszakítások Rendszerhívások
A felhasználói felület 36. Oldal A felhasználó és a rendszermag A programozói felület Segédprogramok, alrendszerek Jellemzok
37. Oldal A felhasználói felület részei A programindítás eszközei A rendszermag szolgáltatásainak elérése A programozói felület Alapveto segédprogramok, alrendszerek
38. Oldal A perifériák beállítási lehetoségei Kézi beállítások Automatikus beállítások Félautomata beállítások Config.sys Plug and Play Scan for Devices
39. Oldal A memória beállítási lehetoségei Bufferek száma, mérete (hálózat, lemez) Leíró táblák száma (pl. FCB) Lemezgyorsító tár (cache) Felhasználási módok (EMS, HMA,XMS)
40. Oldal A programozói felület API (Application Programming Interface) SDK (Software Development Kit) Rendszerhívások = Függvények DOS - kb. 100 alapveto függvény Windows - kb. 1000 magasszintu fv.
41. Oldal Programkészítés Forráskód (algoritmus) Tárgykód (könyvtárak) Betöltheto kód (program)
Programok készítése C forrás 42. Oldal Assembly forrás Rendszer könyvtárak C fordító Tárgykód ASM fordító Tárgykód Szerkeszto Betöltheto program
43. Oldal Parancsértelmezo Elnevezések (A lényegesnek tartott funkció szerint) Shell (DOS-Shell, Bourne-shell) Command interpreter (command.com) Monitor (Novell) Manager (Program, Fájl, Nyomtató)
44. Oldal A parancsértelmezo feladatai Programindítás Fájlkezelés Programkörnyezet beállítása Folyamatok futásának ellenorzése Vezérlési szerkezetek
45. Oldal Programindítás Közvetlen indítás (név beírása, load, run) Közvetett elérés Keresési útvonalak Láncolt (kötegelt) futtatás (*.bat, *.ncf) Automatikus programbetöltés
46. Oldal A program környezete Paraméterek Kapcsolók Átirányítási adatok Környezeti változók
47. Oldal Alrendszerek Állománykezelo Programfejlesztoi Adatbázis kezelo Kommunikációs
48. Oldal Felhasználói felület jellemzoi Könnyu legyen megtanulni Méretezheto legyen Lehessen visszavonni Törölni lehessen a muveleteket Többszintu súgó rendszer Hasonlítson az élo nyelvhez Minden parancsra legyen válasz Hasonló funkciók hasonló módon
49. Oldal A Windows95 néhány ablaka
Ablakozó rendszerek 50. Oldal Követelmények A multitask környezet miatt megoldandó az események címzettjeinek felismerése (aktív ablak, fókusz) Eszközfüggetlen muködés biztosítandó Az adatforgalom a kliens és szerver között csökkentendo Megoldás Szerver-kliens architektúra X-szerver, X-kliens, X.11, X-window
51. Oldal X-window architektúra out in Munkaálomás Megjeleníto szerver Alkalmazás kliens Távoli gép Megjeleníto kliens Alkalmazás szerver 0-20000km
52. Oldal Üzenetvezérlés Felhasználói input Rendszer sor Program sora Üzenet kezelo Megjeleníto Ablak kezelo Felhasználói output (ablak) Grafikus interfész Alkalmazás
Eszközfüggetlen muködés 53. Oldal A megjeleníto szerver az alkalmazás szabványos, eszközfüggetlen üzenetei alapján állítja össze a megjelenítendo képet Az alkalmazásnak nem kell ismernie a munkaállomás perifériáit, a megjelenítésrol a helyi szerver gondoskodik (GUI) A GUI az alapveto objektumokat maga állítja elo az alkalmazástól kapott paraméterek alapján
Adatforgalom csökkentése 54. Oldal Nem mozognak az átviteli csatornán nagyméretu képernyotartalmak, csak az ezek összeállítására vonatkozó utasítások A GUI az alapveto objektumokat maga állítja elo az alkalmazástól kapott paraméterek alapján Az ideiglenesen nem használt felületek tartalma tárolódik az X-szerveren Lehetoség szerint csak a változásokra vonatkozó utasítások mozogjanak
A Norton Commander 55. Oldal
Összefoglalás 56. Oldal Felhasználói felületek célja beállítási lehetoségek programindítás Programkészítés lépései Grafikus, üzenetvezérelt felületek
Fájlok, katalógusok 57. Oldal Fájlnevek, jellemzok Közvetett hivatkozások Katalógus szerkezetek Hozzáférési jogok Fájlok elhelyezése Muveletek állományokkal, katalógusokkal
58. Oldal File = Állomány Adatok egy olyan csoportja, melyre együttesen, egy névvel hivatkozhatunk
59. Oldal Fájltípusok Ideiglenes rendszerállományok (pl. virtuális memória) Adminisztratív állományok (pl. katalógusok) Felhasználói állományok
60. Oldal Tipikus fájlnevek DOS EZEREGY.DOC UNIX Win 95 (hosszú) Win 95 (rövid) VMS Az.Ezeregy.Ejszaka.Mesei.DOC Az ezeregy éjszaka meséi.doc AZEZER~1.DOC EZEREGY.DOC;4
61. Oldal Helyettesíto karakterek JÓ NEM JÓ LEVI?.TXT LEVI1.TXT LEVI10.TXT LEVI2.TXT *NI.DOC DANI.DOC DANO.DOC ZOKNI.DOC [TD]OBOZ TOBOZ KOBOZ (unix!) DOBOZ doboz
62. Oldal Fájl jellemzok Fáljnév Méret Utolsó módosítás ideje Attribútumok [Hozzáférési jogok] Fizikai elhelyezkedés
63. Oldal Jogosultságok típusai Olvasás (Read - R) Írás (Write - W) Létrehozás (Create - C) Végrehajtás (execute - X) Törlés (Erase - E) Jellemzok módosítása (Modify - M) Hozzáférés módosítása (Access control - A)
64. Oldal Katalógus = Directory ( könyvtár ) Olyan speciális állomány, melynek tartalma a fájlok nevét és jellemzoit tartalmazó rekordok listája
65. Oldal Láncolás FILE1 hardlink1 hardlink2 hardlink3 softlink1 softlink2 Állandó lemez FILE1 FILE2 Cserélheto lemez FILE2
66. Oldal Egyszintu katalógus Fájlok Katalógus
Kétszintu katalógus 67. Oldal FÁJLOK KATALÓGUS MASTER KATALÓGUS
Katalógus Fa struktúra 68. Oldal Fájl Gyökér Root
69. Oldal Címzés a fájlrendszerben Abszolút címzés kiindulópont a gyökér, a cím \ -rel kezdodik Relatív címzés kiindulópont az aktuális katalógus.. a szülo,. az aktuális katalógus neve
Példák fájl elérésekre 70. Oldal COMMON NAGY PAPP word.exe excel.exe diploma.doc adatok.txt diploma.doc masolat.doc..\common\word.exe \nagy\adatok.txt.\diploma.doc masolat.doc Aktuális katalógus
71. Oldal Fájlok elhelyezkedése Szabad helyek nyilvántartása Folytonos: first, worst, best Láncolt: FAT Indexelt: INODE
72. Oldal Szabad helyek nyilvántartása 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 Elso üres blokk címe 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 Üres blokk címe Mérete 2 4 10 3 15 1
Folytonos elhelyezés 73. Oldal 10 Új fájl 30 FIRST BEST WORST 30 30 30 10 12 12 12 10 12 Szabad terület 15 15 10 15 15
74. Oldal Láncolt elhelyezés Fájl 1 FAT 1 Lemez 2 5 2 2 3 4 2 7 3 4 5 1 3 6 Katalógus 0 7 4 8
75. Oldal Indextábla alkalmazása Fájl 1 2 3 4 INODE 4 2 5 7 Lemez 2 1 3 Katalógus 4
76. Oldal Muveletek állományokkal Létrehozás Keresés katalógusban Írás, olvasás megnyitás pozicionálás írás-olvasás lezárás Törlés
Összefoglalás 77. Oldal Fájlok szerepe, jellemzoi Elnevezések, célja beállítási lehetoségek programindítás Programkészítés lépései Grafikus, üzenetvezérelt felületek
Lemezkezelés 78. Oldal Háttértárolók felépítése Szalag, Lemez, CD Fizikai lemezkezelés Ütemezés, Címszámítás, Adatátvitel Az adattárolás optimalizálása Blokkméret Tömörítés, redundancia
Háttértárak 79. Oldal Mágneslemez Optikai lemez Mágnesszalag Mágnesdob Buborékmemória Múlt Biológiai tároló Holografikus tároló Jövo
80. Oldal Merevlemezek felépítése
81. Oldal Lemezfelületek felosztása Sáv Szektor Blokk
82. Oldal Mágneslemezek jellemzoi Technikai jellemzoi Kapacitás: 1-180GB Elérési ido: 5-10 ms Adatátviteli sebesség: 2-20-(100-1000)Mb/s Alkalmazása Virtuális memória Programok tárolása Adatok tárolása
83. Oldal Optikai lemezek felépítése Hordozó Feliratok Tükrözo réteg Muanyag védoréteg Lézer dióda Érzékelo
84. Oldal Optikai lemezek jellemzoi Technikai jellemzoi Kapacitás: 650MB-14GB Elérési ido: 300 ms-tól Adatátviteli sebesség: 150 kb/s-tól Számítástechnikai alkalmazása Archiválás Program kereskedelem Nagy adatbázisok, lexikonok
85. Oldal Mágnesszalagok felépítése Inter-record gap Inter-file gap Sávok Keret Rekord Kapacitás: 2-16 GB Keresési ido: 0-5 perc Adatátviteli ido: 2-10 Mb/sec Újra felhasználható!
86. Oldal Mágnesszalagok jellemzoi Technikai jellemzoi Kapacitás: 2-100 GB Keresési ido: 0-5 perc Adatátviteli ido: 2-10 Mb/sec Újra felhasználható! Alkalmazása Nagy mennyiségu, összefüggo adat Archiválás, adatmentés Nagy tömegu adat átvitele Sok adat átmeneti tárolása
Háttértárak összehasonlítása 87. Oldal HDD-IDE HDD-SCSI HDD-FC CD-ROM CD-RW DVD-ROM DVD-RAM Streamer DAT DLT Kapacitás Elérés Átvitel Ár/MB 2..72 GB 8 ms 100 MB/s 2000 Ft/GB 9..72 GB 5 ms 80 MB/s 8000 Ft/GB 30..72 GB 10 ms 400 MB/s 3000 Ft/GB 650 MB 100 ms 6 MB/s 300 Ft/GB 650 MB 100 ms 6 MB/s 500 Ft/GB 8/16 GB 100 ns 16 Mbps n.a. 2,5/5 GB 10 ms 2 MB/s 2000 Ft/GB 4..20 GB n.a. 1 MB/s 1000 Ft/GB 2 GB n.a. 2 MB/s 200 Ft/GB 20/40 GB n.a. 10 MB/s 1200 Ft/GB
88. Oldal Mágneslemezek Blokkméret Tömörítés Adatvédelem
89. Oldal Helykihasználás Kihasználhatatlan blokkok 1. adat 2. adat 3. adat 4. adat 0,7 0,3 0,9 0,1 Foglalt hely Szabad hely Használhatatlan hely Átlagos helypazarlás: 0,5 BLOKK
90. Oldal Foglaltsági tábla A lemez kapacitása 1 GB = 2 30 bájt Blokkméret 512 = 2 9 bájt 2048 = 2 11 bájt 64k = 2 16 bájt Foglaltsági tábla mérete 2 30 /2 9 /2 3 = 2 18 256 kb 2 30 /2 11 /2 3 = 2 16 64 kb 2 30 /2 16 /2 3 = 2 11 2 kb
91. Oldal Blokkok elhelyezkedése 1. lemez 2. lemez 3. lemez 4. lemez 1 21 5 25 9 29 13 33 17 2 22 6 26 10 30 14 34 18 3 23 7 27 11 31 15 35 19 4 24 8 28 12 32 16 36 20 4 lemez, 9 szektor, 1:2 interleave
92. Oldal Tömörítési eljárások Kisebb helyfoglalás Gyorsabb adatátvitel Nagyobb számításigény Kisebb adatbiztonság Futás hossz kódolás: Sok azonos karakter esetén Különbségi kódolás: Lassan változó minta esetén Huffmann-kódolás: Erosen eltéro gyakoriságú karakterek esetén Gyakorlatban: Microsoft Drive Space / Double Space Novell NetWare Compressed Volume
Huffmann-kódolás 93. Oldal Eredeti szöveg: KEREKES SZEKEREK MENNEK Statisztika, kódolás: 8 db E 00 5 db K 01 2 db R 10 2 db S 1100 2 db N 1101 2 db space 1110 1 db M 11110000 1 db Z 11110001 Hatékonyság: Eredeti szöveg: 184 bit Kódolt szöveg 70 bit
94. Oldal Adatbiztonságot javító módszerek Adatszintu védelem paritásbit - egyetlen bithiba hibajavító kód - független hibák CRC - összefüggo hibák Eszközszintu védelem Lemeztükrözés Lemez megkettozése RAID - adatok redundáns elosztása
95. Oldal Az adatátvitelhez szükséges adatok Eszköz típusa Eszköz sorszáma Adat kezdocíme az eszközön Adat kezdocíme a memóriában Adat mennyisége Átvitel iránya: Írás vagy olvasás Visszatérési folyamat
96. Oldal A lemez által várt adatok Fej sorszáma Szektor sorszáma Cilinder sorszáma Adat kezdocíme a memóriában Adat mennyisége Átvitel iránya: Írás vagy olvasás
97. Oldal Címtranszformáció Blokk logikai címe h - Fej sorszáma s - Szektor sorszáma c - Cilinder sorszáma b = h * C* S + c * S + s C - cilinderek száma S - szektorok száma Ennek az inverze kell!!!
98. Oldal felhasználói folyamatok kernel Kiszolgálandó folyamat Alsó szint Felso szint Eszközkezelo Vezérlés DMA vezérlo Megszakítás lemezegység Vezérlés
99. Oldal Lemezütemezési algoritmusok Algoritmus Várakozási ido Várakozási ido szórása Sorrendi FCFS nagy kicsi Legrövidebb ideju SSTF kicsi nagy Pásztázó SCAN közepes közepes Egyirányú pásztázó C-SCAN közepes kicsi
100. Oldal Adatátviteli módok Szinkron: kiszolgálás közben a folyamat várakozik Aszinkron: a folyamat fut tovább Lemezgyorsító (Disk cache) Körkörös átmeneti tár (Buffer pool)
101. Oldal Körkörös átmeneti tárolók Az operációs rendszer tölti A folyamat tölti Bemenet Kimenet A folyamat üríti A kernel üríti
Összefoglalás 102. Oldal Fizikai lemezkezelés Ütemezés: FCFS, SSTF, Scan változatok Logikai-fizikai cím konverzió Blokkméret optimalizálás Tömörítés RLE, DE, Huffmann Adatvédelem Szoftver: paritás, CRC Hardver: tükrözés, RAID
Eroforráskezelés 103. Oldal Eroforrások Eroforrás foglalási gráf Holtpont, Kiéheztetés Holtpont kezelo stratégiák Megelozés Felszámolás Közösen használt eroforrások problémái
Feladat 104. Oldal a számítógéprendszer eroforrásainak elosztása (a futó folyamatok igényei alapján) illetve az eroforrások használatáért vívott versenyhelyzetek kezelésérol Céljai: Eroforráskezelés alapfogalmai a rendszer muködését gazdaságossá tenni elkerülni a holtponthelyzetek kialakulását és/vagy felszámolni a kialakult holtponthelyzeteket
105. Oldal hardver eroforrások (központi processzor, memóriák, I/O csatornák, perifériák) szoftver eroforrások (programok, adatállományok - egyre fontosabbak) hagyományos eroforrások (nyomtatók, szövegszerkesztok) az op. r. által létrehozott eroforrások (lapok, pufferek, floppy blokkok, adatállományok, tartalomjegyzékek) elveheto eroforrások Eroforrások csoportosítása nem elveheto eroforrások
Gazdaságosság 106. Oldal Valamilyen költségfüggvény minimalizálása kihasználtság válaszido Egyéb szempontok (ellentmondóak) átlagos átfutási ido minimalizálása a lassú válaszok számának minimalizálása a (hardver) kihasználtság maximalizálása maximális kihasználtság adott válaszidokorlát mellett Tendencia: a kihasználtság háttérbe szorul (HW ára csökken!) a válaszidovel szemben
107. Oldal Az eroforrások lefoglalása Statikus lefoglalás a folyamat indulása elott lefoglalja az összes szükséges eroforrást pazarló kiéheztetés ha egyszer elindult, eroforrás korlát miatt nem áll le Dinamikus lefoglalás a folyamat csak akkor igényel eroforrást, amikor éppen szüksége van rá hamar elindulhat egy folyamat, de versenyzés miatt lassabban fut(hat) teljesítoképesség, átbocsátóképesség no nagy probléma: holtpont
108. Oldal Állapot átmeneti gráf A I Az A folyamat igényli a I eroforrást B II A B folyamat birtokolja a II eroforrást
109. Oldal Holtponti állapotgráf I A B II
110. Oldal HOLTPONT - Deadlock Több folyamat egy olyan eroforrás felszabadulására vár, amit csak egy ugyancsak várakozó folyamat tudna eloidézni
111. Oldal KIÉHEZTETÉS - Starvation Egy folyamat - az eroforráskezelo stratégiája miatt - beláthatatlan ideig nem jut eroforráshoz
112. Oldal Vacsorázó bölcsek - példa
113. Oldal Vacsorázó bölcsek - Holtpont Egyikük sem rendelkezik az ÖSSZES szükséges eroforrással
114. Oldal Vacsorázó bölcsek - Kiéheztetés Összesen ugyan van elegendo eroforrás, de szerencsétlen esetben egyesek mégis éheznek
115. Oldal Holtpontkialkulás lehetoségének feltételei 1. Kölcsönös kizárás van 2. Várakozás közben lekötés történik 3. Rablás nincs 4. Ciklikus várakozás van A feltételeknek EGYSZERRE kell teljesülniük a holtpont kialakulásához, vagyis HA LEGALÁBB AZ EGYIK FELTÉTEL NEM TELJESÜL, NEM ALAKULHAT KI HOLTPONT!
116. Oldal Holtpontkialkulás lehetoségének feltételei - illusztráció 1. Kölcsönös kizárás van 2. Várakozás közben lekötés történik 3. Rablás nincs 4. Ciklikus várakozás van
Egy igazi holtpont 117. Oldal
118. Oldal Holtpont kezelési stratégiák A holtpont megelozése A négy feltétel (legalább) egyikét nem engedjük teljesülni NEM MINDIG LEHETSÉGES (a korlátozó feltételek miatt) A kialakult holtpont felismerése és megszüntetése A megelozés olcsóbb
119. Oldal A holtpont megelozése Kölcsönös kizárás Ezzel a feltétellel nem tudunk mit kezdeni, vannak olyan eroforrások, melyeket egyszerre csak egy folyamat használhat (pl. nyomtató)
120. Oldal A holtpont megelozése Várakozás közbeni lekötés Egy folyamat csak akkor igényelhet újabb eroforrást, ha nincs más lekötött eroforrása Megoldások: Statikus eroforrás-kezelés Ha egy folyamat eroforrást igényel, el kell engedje az összes korábban lefoglalt eroforrását Hátrányok: rossz az eroforrások kihasználtsága kiéheztetés
121. Oldal A holtpont megelozése Eroforrásrablás 1. Ha egy folyamat egy olyan eroforrást igényel, amit nem tud megkapni azonnal (vagyis várakoznia kell), akkor elvesszük tole az ÖSSZES lefoglalva tartott eroforrását, akkor folytatódhat, ha visszaszerezte az összes régit és megszerezte az újat is 2. Ha egy folyamat olyan eroforrást igényel, amit más VÁRAKOZÓ folyamat foglal, ezt attól elveszi; ha az igényelt eroforrást egy nem várakozó folyamat használja, akkor az IGÉNYLO folyamat kerül várakozó állapotba és TOLE rabolhatnak a többiek E módszerek CSAK az elveheto eroforrásokra alkalmazhatók
122. Oldal A holtpont megelozése Ciklikus várakozás 1. 1. módszer Minden eroforráshoz egy (a többitol különbözo) sorszámot rendelünk A folyamatok az eroforrásokat csak azok sorszámaik szerint növekvo sorrendjében igényelhetik (ezért célszeru, ha a sorszámokat az eroforrások természetes felhasználási sorrendje szerint osztjuk ki) Másképp fogalmazva: ha egy folyamat egy bizonyos sorszámú eroforrást igényel, fel kell szabadítania az összes általa lefoglalt, az igényeltnél NAGYOBB sorszámú eroforrást Hátrány: csökken a rendszer áteresztoképessége
A holtpont megelozése Ciklikus várakozás 2. 123. Oldal 2. módszer Az operációs rendszer csak akkor engedi meg egy új eroforrás lefoglalását, ha ennek teljesítése után a rendszer ún. BIZTONSÁGOS állapotban marad Biztonságos állapot: az összes folyamat eroforrás igénye valamilyen sorrendben kielégítheto Nem biztonságos állapot: holtpont kialakulhat (nem biztos, hogy kialakul!) Hátrányok: Olyan pluszinformáció szükséges (a maximális igény), amely sokszor nem tudható elore Bonyolult algoritmus
124. Oldal Holtpont megelozo stratégiák Egyetlen foglalási lehetoség Csak az a folyamat foglalhat eroforrást, amelyik egyetlen egy fölött sem rendelkezik Elony: nincs holtpont Hátrány: Rossz eroforrás kihasználás, kiéheztetés veszélye
125. Oldal Holtpont megelozo stratégiák Rangsor szerinti foglalás Egy folyamat csak olyan osztályból igényelhet eroforrást, melynek sorszáma magasabb, mint a már birtokolt eroforrások sorszáma Elony: Nincs holtpont Hátrány: Pazarló Önkényes
Rangsor szerinti foglalás bizonyítás 126. Oldal Ellentmondás A a B d>c>b>a b>a D C c > b > a
Holtpont megelozo stratégiák Bankár algoritmus 127. Oldal Sohase elégítsünk ki egy igényt, ha az bizonytalan állapotot eredményez Elony: nincs holtpont az elozoeknél hatékonyabb Hátrány: Sok számolást igényel Elozetes feltevéseken alapul
128. Oldal Bankár algoritmus - példa A.1 Aktuális állapot: Összesen 12 db eroforrás A és B folyamatok A B Szabad Foglal Max. igény Várható igény 4 6 2 4 11 7 4 Várakozó C folyamat - BEENGEDHETO? C 2 8 6
129. Oldal Bankár algoritmus - példa A.2. Tegyük föl, hogy beengedjük... Foglal Max. igény Várható igény A B 4 4 6 11 2 7 C 2 8 6 Szabad 2 Az A folyamat lefuthat, mivel várható igénye nem nagyobb a szabad eroforrások számánál
130. Oldal Bankár algoritmus - példa A.3. Az A lefutott, foglalt eroforrásai felszabadultak... B Szabad Foglal Max. igény Várható igény 4 11 7 C 2 8 6 6 Az C folyamat lefuthat, mivel várható igénye nem nagyobb a szabad eroforrások számánál
131. Oldal Bankár algoritmus - példa A.4. Az C lefutott, foglalt eroforrásai felszabadultak... B Szabad Foglal Max. igény Várható igény 4 11 7 8 Az B folyamat lefuthat, mivel várható igénye nem nagyobb a szabad eroforrások számánál Az állapot a C beengedése után is biztonságos ENGEDJÜK BE!
132. Oldal Bankár algoritmus - példa B.1 Aktuális állapot: Összesen 12 db eroforrás A és B folyamatok A B Szabad Foglal Max. igény Várható igény 4 6 2 4 11 7 4 Várakozó C folyamat - BEENGEDHETO? C 2 9 7
133. Oldal Bankár algoritmus - példa B.2. Tegyük föl, hogy beengedjük... Foglal Max. igény Várható igény A B 4 4 6 11 2 7 C 2 9 7 Szabad 2 Az A folyamat lefuthat, mivel várható igénye nem nagyobb a szabad eroforrások számánál
134. Oldal Bankár algoritmus - példa B.3. Az A lefutott, foglalt eroforrásai felszabadultak... Foglal Max. igény Várható igény B 4 11 7 C 2 8 7 Szabad 6 Az állapot C beengedése után NEM BIZTONSÁGOS
135. Oldal Biztonságos - nem biztonságos Egy rendszer biztonságos, ha létezik olyan sorrend, mely szerint haladva a folyamatok igénye kielégítheto Biztonságos állapotok HOLTPONT NEM biztonságos állapotok
Bankár algoritmus 136. Oldal 1. Felírjuk a folyamatok által maximálisan igényelt eroforrások számait tartalmazó mátrixot (MAX. IGÉNY) 2. Felírjuk a folyamatok által lefoglalva tartott eroforrások számait tartalmazó mátrixot (FOGLAL) 3. A MAX. IGÉNYbol FOGLALt kivonva kapjuk a még kielégítetlen igényeket leíró mátrixot (IGÉNY) 4. Eroforrás fajtánként összeadjuk a lefoglalva tartott eroforrások számait, majd ezeket kivonva az egyes eroforrások összdarabszámából kapjuk a pillanatnyilag rendelkezésre álló eroforrás készletet (KÉSZLET)
Bankár algoritmus - folytatás 137. Oldal 5. Megnézzük, hogy a KÉSZLETbol kielégítheto-e valamelyik folyamat igénye 6a. Ha nincs ilyen folyamat, a rendszer NEM BIZTONSÁGOS állapotban van 6b. Ha van ilyen folyamat, kielégítjük igényét 7. A kiválasztott folyamat a lefutása után felszabadítja az összes általa használt eroforrást, azaz KÉSZLET új értékét megkapjuk, ha elozo értékéhez hozzáadjuk a folyamat által eredetileg lefoglalva tartott eroforrások számát (FOGLAL megfelelo sorát) 8. Visszamegyünk az 5. lépésre
138. Oldal Bankár algoritmus - Több eroforrás A feladat megfogalmazása Egy rendszerben az alábbi eroforrások vannak: E1: 10 darab E2: 5 darab E3: 7 darab A rendszerben 5 folyamat van: F1, F2, F3, F4, F5 Biztonságos-e holtpontmentesség szempontjából a következo állapot? MAX. IGÉNY FOGLAL E1 E2 E3 E1 E2 E3 F1 7 5 3 0 1 0 F2 3 2 2 3 0 2 F3 9 0 2 3 0 2 F4 2 2 2 2 1 1 F5 4 3 3 0 0 2
139. Oldal Bankár algoritmus - Több eroforrás IGÉNY meghatározása [IGÉNY] = [MAX.IGÉNY] - [FOGLAL] MAX. IGÉNY FOGLAL E1 E2 E3 E1 E2 E3 F1 7 5 3 0 1 0 F2 3 2 2 3 0 2 F3 9 0 2 3 0 2 F4 2 2 2 2 1 1 F5 4 3 3 0 0 2 IGÉNY E1 E2 E3 F1 7 4 3 F2 0 2 0 F3 6 0 0 F4 0 1 1 F5 4 3 1
140. Oldal Bankár algoritmus - Több eroforrás KÉSZLET meghatározása FOGLAL (minden eroforrásra)? EROFORRÁS -? FOGLAL KÉSZLET E1: 10 darab E2: 5 darab E3: 7 darab E1 E2 E3 F1 0 1 0 F2 3 0 2 F3 3 0 2 F4 2 1 1 F5 0 0 2? FOGLAL 8 2 7 E1 E2 E3? EROFORRÁS 10 5 7? FOGLAL 8 2 7 KÉSZLET 2 3 0
141. Oldal Bankár algoritmus - Több eroforrás IGÉNY kielégítése - 1. lépés IGÉNY E1 E2 E3 F1 7 4 3 F2 0 2 0 F3 6 0 0 F4 0 1 1 F5 4 3 1 Kielégítheto Felszabadul FOGLAL E1 E2 E3 F1 0 1 0 F2 3 0 2 F3 3 0 2 F4 2 1 1 F5 0 0 2 KÉSZLET : (2, 3, 0) ÚJ KÉSZLET : (5, 3, 2)
142. Oldal Bankár algoritmus - Több eroforrás IGÉNY kielégítése - 2. lépés IGÉNY E1 E2 E3 F1 7 4 3 F2 0 2 0 F3 6 0 0 F4 0 1 1 F5 4 3 1 KÉSZLET : (5, 3, 2) Kielégítheto Felszabadul FOGLAL E1 E2 E3 F1 0 1 0 F2 3 0 2 F3 3 0 2 F4 2 1 1 F5 0 0 2 ÚJ KÉSZLET : (5, 3, 4)
143. Oldal Bankár algoritmus - Több eroforrás IGÉNY kielégítése - 3. lépés IGÉNY E1 E2 E3 F1 7 4 3 F2 0 2 0 F3 6 0 0 F4 0 1 1 F5 4 3 1 Kielégítheto Felszabadul FOGLAL E1 E2 E3 F1 0 1 0 F2 3 0 2 F3 3 0 2 F4 2 1 1 F5 0 0 2 KÉSZLET : (5, 3, 4) ÚJ KÉSZLET : (7, 4, 5)
144. Oldal Bankár algoritmus - Több eroforrás IGÉNY kielégítése - 4. lépés IGÉNY E1 E2 E3 F1 7 4 3 F2 0 2 0 F3 6 0 0 F4 0 1 1 F5 4 3 1 Kielégítheto Felszabadul FOGLAL E1 E2 E3 F1 0 1 0 F2 3 0 2 F3 3 0 2 F4 2 1 1 F5 0 0 2 KÉSZLET : (7, 4, 5) ÚJ KÉSZLET : (7, 5, 5)
145. Oldal Bankár algoritmus - Több eroforrás IGÉNY kielégítése - 5. lépés IGÉNY E1 E2 E3 F1 7 4 3 F2 0 2 0 F3 6 0 0 F4 0 1 1 F5 4 3 1 Kielégítheto Felszabadul FOGLAL E1 E2 E3 F1 0 1 0 F2 3 0 2 F3 3 0 2 F4 2 1 1 F5 0 0 2 KÉSZLET : (7, 5, 3) ÚJ KÉSZLET : (10, 5, 7)
146. Oldal Bankár algoritmus - Több eroforrás BIZTONSÁGOS! Vagyis találtunk legalább egy (ebben a példában több is van) sorrendet, amelyben a folyamatok eroforrás igénye kielégítheto: F2, F5, F4, F1, F3 Tehát a rendszer BIZTONSÁGOS ÁLLAPOTBAN van.