Operációs rendszer szintje Operating System Machine (OSM)
-
Upload
quincy-cameron -
Category
Documents
-
view
33 -
download
0
description
Transcript of Operációs rendszer szintje Operating System Machine (OSM)
Máté: Architektúrák 10. előadás 1
Operációs rendszer szintjeOperating System Machine (OSM)
Ezen a szinten programozóknak rendelkezésre állnak a felhasználói módban használható ISA szintű utasítások és az operációs rendszer által hozzáadott utasítások: rendszerhívások (system calls). Ezeket az operációs rendszer eljárásai valósítják meg (értelmezés).
Máté: Architektúrák 10. előadás 2
Virtuális memóriaRégen nagyon kicsi volt a memória. Sokszor nem fért
el az egész program a memóriában.Overlay (átfedés): A program több része fut
ugyanazon a memória területen, mindig az aktuálisan futó rész van a memóriában, a többi rész mágneslemezen van. A programozó dolga a feladat átfedő részekre bontása, és a részek mozgatása a memória és a háttér tároló között.
Ma már sokkal nagyobb ugyan a memória, de még sokkal nagyobb lehet a címtartomány (address space).
Máté: Architektúrák 10. előadás 3
Virtuális címtartomány: azok a címek, amelyekre a program hivatkozni tud.
Fizikai címtartomány: azok a címek, amelyek tényleges memória cellát címeznek.
A virtuális és fizikai címtartomány ugyanolyan méretű lapokra van osztva (6.3. ábra). A fizikai „lapokat” lapkeretnek (page frame) nevezzük.
Lap méret: 512 B – 64 KB (– 4 MB), mindig 2 hatványa.
Máté: Architektúrák 10. előadás 4
A virtuális címtartomány sokkal nagyobb, mint a fizikai!
Mit kell tenni, ha olyan címre történik hivatkozás, amely nincs a memóriában?
Lap Virtuális címekN -… … - …4 16384 - 204793 12288 - 163832 8192 - 122871 4096 - 81910 0 - 4095
Lapkeret Fizikai címekn -… … - …4 16384 - 204793 12288 - 163832 8192 - 122871 4096 - 81910 0 - 4095
Máté: Architektúrák 10. előadás 5
1. Egy lapkeret (pl. a 0-4095) tartalmának lemezre mentése.2. A kérdéses lap megkeresése a lemezen. 3. A kérdéses lap betöltése a lapkeretbe.4. A memória térkép megváltoztatása: pl. a 4096 és
8191 közötti címek leképezése a betöltött lapkeret címtartományába.
5. A végrehajtás folytatása.Virtuális
címtartomány
…819640960
Fizikai címtartomány
…81964096
0leképezés 6.2. ábra
Máté: Architektúrák 10. előadás 6
A virtuális címek fizikai címekre történő leképezését az MMU (Memory Management Unit – memória kezelő egység végzi.
Memória térkép (memory map) vagy laptábla (page map) kapcsolja össze a virtuális címeket a fizikai címekkel. Pl. 4 KB-os lapméret 32 bites virtuális cím esetén 1 millió virtuális lap van, ezért 1 millió bejegyzésű laptáblára van szükség. 32 KB fizikai memória esetén csak 8 lapkeret van, ezért a leképezés megoldható 8 cellás asszociatív memóriával is (a gyakorlatban több ezer lapkeret van, és az asszociatív memória igen drága).
Máté: Architektúrák 10. előadás 7
Asszociatív memória
kulcsmező
kulcsmező
kulcs
össze-hasonlító
szelektor
tartalom
össze-hasonlító
tartalom
szelektor
Máté: Architektúrák 10. előadás 8
Jelenlét/hiány (present/absent)
…43 1 110210
0 0 … 0 1 1 0 0 0 0 0 0 0 1 0 1 1 020 bites virtuális
lapszám 12 bites offset
32 bites virtuális cím
1 1 0 0 0 0 0 0 0 0 1 0 1 1 0
15 bites fizikai cím
6.4. ábra
Laptábla
Máté: Architektúrák 10. előadás 9
…15 0 014 1 413 0 012 0 011 1 510 0 0
9 0 08 1 37 0 06 1 75 1 64 0 03 1 22 0 01 1 00 1 1
fizikai memória
6.5. ábraLaptábla
…6. virtuális lap 75. virtuális lap 6
11. virtuális lap 514. virtuális lap 48. virtuális lap 33. virtuális lap 20. virtuális lap 11. virtuális lap 0
lap keret
virtuális lap lap keret
Máté: Architektúrák 10. előadás 10
Laphiány (page fault): a lap nincs a memóriában.Kérésre lapozás (demand paging): lapozás csak
laphiány esetén. A program egyetlen bájtja sem kell bent legyen a memóriában, csak a másodlagos tárolón.
Időosztásos rendszereknél nem kielégítő!Munka halmaz (working set): a legutóbbi k memória
hivatkozásban szereplő lapok halmaza (az operációs rendszer feladata megállapítani). Időosztásos rendszerekben ezek a lapok előre visszatölthetők.
Ha a munkahalmaz nagyobb, mint a lapkeretek száma, akkor gyakori lesz a laphiány. A nagyon gyakori laphiányt vergődésnek (thrashing) nevezzük.
Máté: Architektúrák 10. előadás 11
Lapkezelési eljárások: melyik lap helyett töltsük be a kért lapot?
LRU (Least Recently Used, legrégebben használt): általában jó, de nem jó pl. 9 lapon átnyúló ciklus esetén, ha csak 8 memória lap van (6.6. ábra).
7. Virtuális lap6. Virtuális lap5. Virtuális lap4. Virtuális lap3. Virtuális lap2. Virtuális lap1. Virtuális lap0. Virtuális lap
7. Virtuális lap6. Virtuális lap5. Virtuális lap4. Virtuális lap3. Virtuális lap2. Virtuális lap1. Virtuális lap8. Virtuális lap
7. Virtuális lap6. Virtuális lap5. Virtuális lap4. Virtuális lap3. Virtuális lap2. Virtuális lap0. Virtuális lap8. Virtuális lap
Máté: Architektúrák 10. előadás 12
FIFO (First-in First-Out, először be, először ki): egyszerűbb (de most ez se jobb, mint LRU).
Csak a módosult (dirty, szennyezett) lapokat kell visszaírni, a tisztát (clean) nem (szennyezés bit). Most is előnyös, ha az utasítások és az adatok elkülönülten helyezkednek el a memóriában: az utasításokat nem kell visszaírni.
Máté: Architektúrák 10. előadás 13
Lapméret és elaprózódásHa egy program k lapon fér el, akkor általában a k-dik
lap nincs tele. Ha a lap mérete n, akkor programonként átlagosan n/2 bájt kihasználatlan: belső elaprózódás (internal fragmentation).
A belső elaprózódás ellen a lap méretének csökkentésével lehet védekezni, de ez a laptábla méretének növekedéséhez vezet.
A kis lap előnytelen a lemez sávszélességének kihasználása szempontjából is, viszont kisebb a vergődés kialakulásának valószínűsége.
Máté: Architektúrák 10. előadás 14
SzegmentálásEgy fordítóprogramnak a
következő célokra kellhet memória (6.7. ábra):
• szimbólum tábla,• forrás kód,• konstansok,• elemzési fa,• verem.Rögzített memória felosztás
esetén ezek egyike kicsinek bizonyulhat, miközben a többi nem használja ki a rendelkezésére álló tartományt.
Verem terület
Elemzési fa
Konstans táblaForrás szöveg
Szimbólum tábla
Virtuális címtartomány
Szabad
Jelenleg használt
Máté: Architektúrák 10. előadás 15
Szegmentálás (6.8. ábra)
0. szegmens
1. szegmens
2. szegmens
3. szegmens
4. szegmens
20 K
16 K
12 K
8 K
4 K
0Konstans
tábla
Elemzési fa
Hívási verem
Szegmentált memóriában minden tábla a többitől függetlenül nőhet
vagy zsugorodhat.
Szim-bólum tábla
Forrás szöveg
Máté: Architektúrák 10. előadás 16
Szegmens (6.9. ábra)A programozó számára látható logikai egység.
Minden szegmens címtartománya 0-tól valamilyen maximumig terjed. A szegmens tényleges mérete ennél kisebb lehet. A program számára a címtartomány két dimenziós: (szegmens, offset).
Általában egy szegmensben csak egyféle dolgok vannak: vagy kód vagy konstans vagy …Különböző tárvédelmi lehetőségek:
• kód: csak végrehajtható, nem írható, nem olvasható,• konstans: csak olvasható• …
Máté: Architektúrák 10. előadás 17
A szegmentálás és a virtuális memória összehasonlítása (6.9. ábra)
Szempontok Lapozás Szegmentálás
Tudnia kell róla a programozónak? Nem IgenHány lineáris címtartomány létezik? 1 Több
Meghaladhatja-e a virtuális címtartomány nagysága a fizikai memória méretét?
Igen Igen
Könnyen kezelhetők a változó méretű táblák? Nem Igen
Mi ennek a technikának a lényege?Nagy
memória szimulálása
Több címtartomány
biztosítása
Máté: Architektúrák 10. előadás 18
A szegmentálás megvalósításaLapozással: Minden szegmensnek saját laptáblája
van. A szegmens néhány lapja a memóriában van.
Cseréléssel: Teljes szegmensek mozognak a memória és a lemez között. Ha olyan szegmensre hivatkozunk, amely nincs a memóriában, akkor betöltődik. Külső elaprózódáshoz (external fragmentation) vezethet (6.10. ábra). Lyukacsosodásnak (checkerboarding) is nevezik.
Máté: Architektúrák 10. előadás 19
Összepréselés: idő igényes, de időnként kell.Legjobb illesztés (best fit) és első illesztés (first fit)
algoritmus. Az utóbbi gyorsabb és jobb is az általános hatékonyság szempontjából.
1. 8 K
0. 4 K
2. 5 K
3. 8 K
4. 7 K
7. 5 K
0. 4 K
2. 5 K
3. 8 K
4. 7 K
3 K7. 5 K
0. 4 K
2. 5 K
3. 8 K
5. 4 K
3 K
3 K
7. 5 K
0. 4 K
2. 5 K
6. 4 K
5. 4 K
3 K
3 K
4 K
7. 5 K
0. 4 K
2. 5 K
6. 4 K5. 4 K
10 K
6 K
Máté: Architektúrák 10. előadás 20
Pentium 4 (6.12-14. ábra)A szegmens regiszter tartalmazza a szelektort.
13 1 2Index
A szelektor (6.12. ábra) indexe választja ki a leírót (descriptor) a lokális (LDT, Local Descriptor Table) vagy globális leíró táblából (GDT, Global Descriptor Table). (6.13. ábra).
A 0. leíró használata csapdát eredményez (hiba).
0: GDT1: LDT Védelmi szint: 0-3
Szelektor:
Máté: Architektúrák 10. előadás 21
Ha P=0, csapda: nem létező szegmens, vagybe kell tölteni a szegmenst.
BASE 0-15 LIMIT 0-15B 24-31 G D 0 L 16-19 P DPL TYPE B 16-23
0: LIMIT értéke bájtokban1: LIMIT értéke lapokban(lap ≥ 4 KB)
0: 16 bites szegmens r.1: 32 bites szegmens r.
Szegmens típusa, védelme Védelmi szint (0-3)0: a szegmens nincs a memóriában1: a szegmens a memóriában van
Pentium 4 kódszegmensének leírója (6.13. ábra)
Máté: Architektúrák 10. előadás 22
6.14. ábra
Ha offset (a szegmens elejéhez viszonyított relatív cím) a szegmens határán túl van, csapda (hiba).
Lapozást tiltó flag (a globális vezérlőregiszter bitje):Ha engedélyezett: lineáris cím = virtuális cím Ha tiltott: lineáris cím = fizikai cím
32 bites lineáris cím
Szelektor
Bázis címLimit
Más mezők
Offset
Leíró
+
Máté: Architektúrák 10. előadás 23
Lapkönyvtár (page directory 6.15. ábra)A 32 bites lineáris címek és a 4 KB-os lapok miatt egy
szegmenshez egymillió lap is tartozhat. Túl sok!Minden futó programhoz egy lapkönyvtár tartozik.Minden bejegyzés egy laptáblára mutat, vagy sehova.
Lineáris cím10 10 12DIR PAGE OFF
Lapkönyvtár1023
…210
32 bit
Laptábla1023
…210
32 bit
Lapkeret
32 bit
Máté: Architektúrák 10. előadás 24
A lapkönyvtárnak azokhoz a mutatóihoz, amelyek nem mutatnak sehova, nem kell helyet foglalni a laptábla számára (pl. csak két db. ezer, és nem egy milliós bejegyzésű tábla kell egy 4 MB-nál rövidebb szegmenshez ).
A táblákban minden bejegyzéshez 32 bit áll rendelkezésre. A mutatókhoz nem használt biteket a hardver az operációs rendszer számára hasznos jelzésekkel tölti ki (védelem, szennyezettség, hozzáférés, …).
Speciális hardver támogatja a legutóbb használt lapok gyorsabb elérését.
Máté: Architektúrák 10. előadás 25
A Pentium 4 védelmi rendszere (6.16. ábra)
A futó program pillanatnyi szintjét a PSW tartalmazza.
A program a saját szintjén lévő szegmenseket szabadon használhatja.
Magasabb szinten lévő adatokhoz hozzáfér, de az alacsonyabb szinten lévők kezelése csapdát okoz.
Más szinten lévő eljárás hívásánál CALL helyett szelektort kell alkalmazni, ez egy hívás kaput (call gate) jelöl ki (más védelmi szintre csak szabványos – tehát ellenőrzött – belépési ponton lehet áttérni).
0123
szint
A szintek egy lehetséges felhasználása:
Felhasználói programokOsztott könyvtárRendszer hívások
Kernel
Máté: Architektúrák 10. előadás 26
Az UltraSPARC III virtuális memóriájaVirtuális cím 64 bites, egyelőre 44 bitre korlátozva.
0 264-1264-243243-1
Virtuális címtartománymegengedett zónák
44 bitre korlátozva ez a címtartomány folytonos.
Fizikai címtartomány maximum 41 bites.
A kód és adat lapokat külön kezeli.
Máté: Architektúrák 10. előadás 27
Lapméret: 8, 64, 512 KB és 4 MB (6.17. ábra).
Lap mérete
Virtuális lap címe (bit)
OFFSET (bit)
Fizikai lap címe (bit)
OFFSET (bit)
8 KB 51 (31) 13 → 28 13
64 KB 48 (28) 16 → 25 16
512 KB 45 (25) 19 → 22 19
4 MB 42 (22) 22 → 19 22
44 bitre korlátozva maximum 41 bit
Máté: Architektúrák 10. előadás 28
A memória kezelő egység (MMU) három szinten dolgozik:
• A legutóbb használt lapokat gyorsan megtalálja (hardver). A kód és az adat lapokat teljesen külön kezeli.
• A nem nagyon régen használtakat már lassabban (hardver segítséggel).
• A nagyon régen használtakat csak hosszas keresés után (szoftveres úton).
Máté: Architektúrák 10. előadás 29
TLB (Translation Lookaside Buffer) a legutóbb használt 64 lap bejegyzését tartalmazza (6.18. ábra).
Környezet (context): processzus szám.Asszociatív memória: Kulcs a keresett virtuális lap és a
környezet. TLB hiány (TLB miss) esetén: csapda.
ÉrvényesVirtuális
lap KörnyezetFizikai lapkeret Flag-ek
Kulcs
Máté: Architektúrák 10. előadás 30
TLB hiány esetén TSB folytatja a keresést (szoftver).TSB (Translation Storage Buffer): olyan felépítésű,
mint egy direkt leképezésű gyorsító tár (operációs rendszer építi fel, és kezeli a központi memóriában).
TSB találat esetén egy TLB sor helyébe beíródik a kért lapnak megfelelő bejegyzés.
Érvényes
Virtuális lap tag Környezet
Fizikai lapkeret Flag-ek
Virtuális lap címe tag line
Máté: Architektúrák 10. előadás 31
TSB hiány esetén a fordítótábla (translation table) alapján keres. Ennek a táblának a szerkezetét az operációs rendszer határozza meg.
Egy lehetséges megoldás a tördeléses eljárás. Ebben az esetben a memóriába töltött virtuális lapok és a nekik megfelelő fizikai lapkeretek sorszáma listákba van helyezve. Ha a virtuális lap sorszáma p-vel osztva q-t ad maradékul, akkor csak a q-adik listát kell végignézni.
Ha ez se találja a keresett lapot, akkor nincs a memóriában.
Máté: Architektúrák 10. előadás 32
Virtuális memória és gyorsító tár Két szintű hierarchia:Virtuális memória használatakor az egész programot
lemezen tartjuk, fix méretű lapokra osztjuk. Lap hiány esetén a lapot a központi memóriába töltjük (operációs rendszer).
Gyorsító tár esetén a központi memóriát gyorsító sorokra osztjuk. Gyorsító tár hiány esetén a gyorsító sort a gyorsító tárba töltjük (hardver).
Máté: Architektúrák 10. előadás 33
Vezérlési folyamatSzekvenciális vezérlés: Az utasítások abban a
sorrendben kerülnek végrehajtásra, ahogy a memóriában elhelyezkednek.
Elágazás: 5.39. ábra.
idő
szekvenciális vezérlés
elágazás
prog
ram
szám
láló
Máté: Architektúrák 10. előadás 34
Eljárás (5.44. ábra): Az eljáráshívás úgy tekinthető, mint egy magasabb szinten definiált utasítás végrehajtása: elég, ha azt tudjuk, mit csinál az eljárás, nem lényeges, hogy hogyan.
Rekurzív eljárás: önmagát közvetlenül vagy közvetve hívó eljárás.
hívó eljárás hívott
eljárásfőprogram
… …
Máté: Architektúrák 10. előadás 35
Hanoi tornyai (5.40-42. ábra)
1. pálca 2. pálca 3. pálca
towers(5, 1, 3);
Máté: Architektúrák 10. előadás 36
Hanoi tornyai (5.40-42. ábra) Rekurzív eljárás, amely n korongot mozgat i-ről j-re:public void towers (int n, int i, int j) { int k;
if(n==1) System.out.println(”Korong mozgatása:
”+i+”-ről”+j”-re”);else {
k=6-i-j; towers(n-1, i, k); towers(1, i, j); towers(n-1, k, j); }}
Máté: Architektúrák 10. előadás 37
~ 5.43. ábra A verem tartalma az eljárásban: Hívások: j i n k | j i n k | j i n ktowers(3,1,3) 3, 1, 3, V, F, k c konvenció towers(2,1,2) 3, 1, 3, V, F, 2, 2, 1, 2, V, F, k
towers(1,1,3) 1 3 3, 1, 3, V, F, 2, 2, 1, 2, V, F, 3, 3, 1, 1, V, F, k visszatérés után 3, 1, 3, V, F, 2, 2, 1, 2, V, F, 3
towers(1,1,2) 1 2 3, 1, 3, V, F, 2, 2, 1, 2, V, F, 3, 2, 1, 1, V, F, k towers(1,3,2) 3 2 3, 1, 3, V, F, 2, 2, 1, 2, V, F, 3, 2, 3, 1, V, F, k towers(1,1,3) 1 3 3, 1, 3, V, F, 2, 3, 1, 1, V, F, k towers(2,2,3) 3, 1, 3, V, F, 2, 3, 2, 2, V, F, k towers(1,2,1) 2 1 3, 1, 3, V, F, 2, 3, 2, 2, V, F, 1, 1, 2, 1, V, F, k towers(1,2,3) 2 3 3, 1, 3, V, F, 2, 3, 2, 2, V, F, 1, 3, 2, 1, V, F, k towers(1,1,3) 1 3 3, 1, 3, V, F, 2, 3, 2, 2, V, F, 1, 3, 1, 1, V, F, k . . . V: visszatérési cím, F: régi FP
Máté: Architektúrák 10. előadás 38
Rekurzív eljárások megvalósításához veremre van szükség. Minden hívás esetén az eljárás paramétereit a verembe kell tenni, és ott kell elhelyezni a lokális változókat is!
Eljárás prológus: a régi verem keret mutató (FP) elmentése, új verem keret mutató megadása, és a verem mutató (SP) növelése, hogy legyen hely a veremben a lokális változók számára.
Eljárás epilógus: visszatéréskor a verem kitakarítása.
Máté: Architektúrák 10. előadás 39
A Hanoi tornyai probléma megoldása
5.47. ábra: Pentium 4 program.
5.48. ábra: UltraSPARC III program. Eltolás rés!
Máté: Architektúrák 10. előadás 40
Vezérlési folyamat• Szekvenciális vezérlés
(5.39. ábra),• Elágazás, • Eljárás: 5.44. ábra, • Megszakítások, • Csapdák,• Korutinok: 5.45. ábra.
Párhuzamos feldolgozás szimulálására alkalmas egy CPU-s gépen.
A B
főprogram
… …
goto helyett jobb a ciklus vagy az eljárás alkalmazása!
korutinok
Máté: Architektúrák 10. előadás 41
FeladatokMilyen utasítások érhetők el operációs rendszer
szinten?Mi az overlay technika lényege?Mi a virtuális címtartomány?Mi a fizikai címtartomány?Mi a lap és mi a lapkeret?Mi a lapozás?Mi a memória térkép (laptábla)?Mi az MMU?Hogy működik az asszociatív memória?Mi a laphiány?Mi a kérésre lapozás?Mi a munka halmaz (working set)?
Máté: Architektúrák 10. előadás 42
FeladatokMikor alakul ki vergődés?Milyen lapkezelési eljárásokat ismer?Mi a belső elaprózódás?Mi az előnye, és mi a hátránya a kis lapméretnek?Mit nevezünk szegmentálásnak?Hogy valósítható meg a szegmentálás?Mik a szegmentálás előnyei? Mi a külső elaprózódás?Mi az összepréselés (compaction)?Hogy valósul meg a szegmens címzés a Pentium 4-en?Mi a szelektor?Milyen információt tartalmaz a Pentium 4 szelektora?Milyen mezőket tartalmaz a kódszegmensek leírója?
Máté: Architektúrák 10. előadás 43
FeladatokMire szolgál az LDT (Local Descriptor Table) és a
GDT (Global Descriptor Table)? Hogy képződik a lineáris cím?Hogy valósul meg Pentium 4-en a virtuális címzés?Milyen a Pentium 4 védelmi rendszere?Hogy hívható más védelmi szintű eljárás?Jellemezze az UltraSparc III virtuális memóriáját!Mi a TLB (Translation Lookaside Buffer)?Milyen memóriában van a TLB?Mi történik TLB hiány esetén?Hogy szervezett a TSB (Translation Storage Buffer)?Mi történik TSB hiány esetén?Hasonlítsa össze a virtuális memóriát a gyorsító tárral!
Máté: Architektúrák 10. előadás 44
FeladatokMi a szekvenciális vezérlés?Mi az eljárás?Mi a rekurzív eljárás?Mondjon példát rekurzív eljárással megoldható
problémára!Mi az eljárás prológus?Mi az eljárás epilógus?Mi az eltolás rés?Mi a csapda?Mi a megszakítás?Mi a különbség a csapda és a megszakítás között?Mit nevezünk korutinnak (társrutinnak, coroutine)?