Számítógépek felépítése 6. előadás virtuális tárkezelés Dr. Istenes Zoltán ELTE-TTK 6. előadás tartalma • • • • • Memória hierarchia Tárolókezelő egység Virtuális tárkezelés (logikai-fizikai címek) Szegmentálás Lapozás.
Download ReportTranscript Számítógépek felépítése 6. előadás virtuális tárkezelés Dr. Istenes Zoltán ELTE-TTK 6. előadás tartalma • • • • • Memória hierarchia Tárolókezelő egység Virtuális tárkezelés (logikai-fizikai címek) Szegmentálás Lapozás.
Számítógépek felépítése 6. előadás virtuális tárkezelés Dr. Istenes Zoltán ELTE-TTK 1 6. előadás tartalma • • • • • Memória hierarchia Tárolókezelő egység Virtuális tárkezelés (logikai-fizikai címek) Szegmentálás Lapozás 2 Memória Feladata : adatok (több / kevesebb) tárolása (hosszabb / rövidebb ideig) 3 CPU - Memória címsín Processzor Memória adatsín 4 Tárolókezelő egység MMU - Memory Management Unit 5 Tárolókezelés feladatai • a CPU által megcímzett címen lévő érték elérése • tárhierarchia hatékony működtetése : virtuálislogikai címek kezelése, lapozás, szegmentálás • memória „szétosztása” (több program, több felhasználó között...) • „védelem” – rendszer programok a felhasználótól – felhasználók adatai – felhasználók programjai (de közös eljárások) 6 Overlay technika (átlapolásos technika) Probléma : nagy program, kis memória program data p p1 p2 p3 Program feldarabolása, csak a szükséges darab(ok) a memóriában memória data p data p data p p1 p2 p3 idő 7 Virtuális tárkezelés 8 Cím, címtartomány, címszélesség címtartomány = 2címszélesség memória címek Címszélesség cím Címtartomány memória értékek 000000 000001 000010 000011 ... ... 011010 ... 10010110 ... 111111 érték 9 Logikai - fizikai címek Logikai cím(tartomány) Fizikai cím(tartomány) a CPU által címezhető, programban használható központi memória mérete... logikai - fizikai címek megfeleltetése ?! 10 MMU program i központi memória logikai cím MMU fizikai cím j fizikai címtartomány logikai címtartomány 11 Szegmentálás (segmentation) 12 Szegmensek képzése program data1 data2 p0 p1 stack szegmens = nem rögzített méretű adatblokk szegmensek cím meghatározása = szegmens meghatározása + szegmensen belüli „eltolás” meghatározása 13 Szegmentált memória kezelés logikai cím: szegmensszám eltolás s d szegmenstábla báziscím hossz fizikai cím: báziscím + eltolás összehasonlító engedélyező 14 Szegmens elhelyezési stratégiák p2 p0 Szegmens betöltési (elhelyezési) módszerek (stratégiák) : ? • első szabad hely (first fit) • következő szabad hely (next fit) p1 • legjobb hely (best fit) • legrosszabb hely (worst fit) 15 „Szemétgyűjtés” (garbage collection, „memória kompaktálás”) p4 p0 ? p0 p2 p1 p2 p1 szegmensek szemétgyűjtés nagyon időigényes ! 16 Lapozás (paging) 17 Lapok képzése lapok = azonos, rögzített méretű adatblokkok logikai címtartomány és a fizikai címtartomány felosztása lapokra fizikai címtartomány logikai címtartomány 18 Lapok megfeleltetése „logikai lapok” „fizikai lapok” MMU ? 19 Címkiszámítás (lapszám, eltolás) cím: lapszám (k) lapszám eltolás (d) 0. i bit j bit 1. n = 2i m = 2j 0. k. n. d. lapon belüli „eltolás” m. 20 Logikai-fizikai címképzés logikai cím q d „lap leképző eljárás” „MMU” fizikai cím p d 21 Logikai-fizikai címképzés logikai cím q d „laptábla” p fizikai cím p d 22 Logikai-fizikai címképzés logikai cím q „jelenléti bit” : lap a memóriában van vagy háttértárolón d 1 0 0 p 1 0 ... ... ... ... ... „laptábla” háttértárolón a cím fizikai cím p d 23 Lapcímzés (példa1) Adatok : • logikai címtartomány : 15 bit • központi memória : 8 Kbyte • lapméret : 211 byte • háttértároló : 32 Kbyte Kérdés : • mekkora a laptábla mérete ? 24 Lapcímzés (példa1 megoldás) • • • • lapméret : 211 byte = 2 Kbyte logikai címtartomány : 15 bit = 32 Kbyte = 16 lap központi memória : 8 Kbyte = 4 lap laptábla : – 16 sor (a logikai lapokhoz) – soronként 16 bit (2 byte) • 1 jelenléti bit, • 2 bit (a fizikai lapszám) vagy 15 bit (a háttértároló) • laptábla mérete : 32 byte 25 Lapozási mechanizmus Ha a lap nincs a memóriában : laphiba (page fault) -> megszakítás -> háttértárolóból a lap betöltése Ha nincs hely a memóriában : helyettesítési eljárás... („egy lap” eltávolítása a memóriából...) ? 26 Helyettesítési eljárások Melyik lapot kell cserélni (eltávolítani) ? • optimal : „amire legkevésbé lesz szükség”... • legrégebben bentlévő (FIFO) • legrégebbi nem használt • legkevésbé használt (LRU - Least Recently Used) • ... Megvalósítás bonyolultsága ? 27 Optimális laphelyettesítés (példa) • Lapkérelmek : 2,3,2,4,6,2,5,6,1,4,6 • Optimális helyettesítés 2 - 3 2 - 2 2 3 - 4 2 3 ok 6 2 3 4 2 2 6 4 5 2 6 4 ok 6 5 6 4 1 5 6 4 ok „találati arány” (hit ratio) = 5/11 4 1 6 4 6 1 6 4 ok 28 1 6 4 ok FIFO laphelyettesítés (példa) • Lapkérelmek : 2,3,2,4,6,2,5,6,1,4,6 • FIFO helyettesítés 2 - 3 2 - 2 2 3 - 4 2 3 ok 6 2 3 4 2 6 3 4 5 6 2 4 6 6 2 5 1 6 2 5 ok „találati arány” (hit ratio) = 2/11 4 1 2 5 6 1 4 5 1 4 6 29 LRU laphelyettesítés (példa) • Lapkérelmek : 2,3,2,4,6,2,5,6,1,4,6 • LRU helyettesítés 2 - 3 2 - 2 2 3 - 4 2 3 ok 6 2 3 4 2 2 6 4 5 2 6 4 ok 6 2 6 5 1 2 6 5 ok „találati arány” (hit ratio) = 4/11 4 1 6 5 6 1 6 4 1 6 4 ok 30 Lapcímzés (példa2) Adatok : • logikai címtartomány : 32 bit • központi memória : 8 Mbyte • lapméret : 4 Kbyte Kérdés : • mekkora a laptábla mérete ? 31 Lapcímzés (példa2 megoldás) • • • • lapméret : 4 Kbyte = 12 bit logikai címtartomány : 32 bit = 4 Gbyte központi memória : 8 Mbyte = 23 bit laptábla : – 32-12=20 azaz 220 sor (a logikai lapokhoz) – soronként 12 bit (2 byte) • 1 jelenléti bit, • 11 (a fizikai lapszám) • laptábla mérete 220 x 2 byte = 2 Mbyte !!! ? 32 Egyéb lehetőségek... • Szegmentált lapcímzés kezelés... (szegmentálás + lapozás) • Translation Lookaside Buffer... (a legutóbbi logikai-fizikai (lap)címmegfelelés tárolása cache-ban) 33 Egyéb tulajdonságok... • • • • • „overhead” „working set” „demand paging”... „trashing” - multiprogramozás Belady anomália 34 Összefoglalás 35