Szmtgpek felptse 6 elads virtulis trkezels Dr Istenes

  • Slides: 35
Download presentation
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

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)

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

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

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

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 p

Overlay technika (átlapolásos technika) Probléma : nagy program, kis memória program data p p 1 p 2 p 3 Program feldarabolása, csak a szükséges darab(ok) a memóriában memória data p p 1 p 2 p 3 idő 7

Virtuális tárkezelés 8

Virtuális tárkezelés 8

Cím, címtartomány, címszélesség címtartomány = 2 címszélesség memória címek Címszélesség cím Címtartomány memória értékek

Cím, címtartomány, címszélesség címtartomány = 2 címszélesség memória címek Címszélesség cím Címtartomány memória értékek 0000001 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ó

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

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

Szegmentálás (segmentation) 12

Szegmensek képzése program data 1 data 2 p 0 p 1 stack szegmens =

Szegmensek képzése program data 1 data 2 p 0 p 1 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:

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 p 2 p 0 Szegmens betöltési (elhelyezési) módszerek (stratégiák) : ?

Szegmens elhelyezési stratégiák p 2 p 0 Szegmens betöltési (elhelyezési) módszerek (stratégiák) : ? • első szabad hely (first fit) • következő szabad hely (next fit) p 1 • legjobb hely (best fit) • legrosszabb hely (worst fit) 15

„Szemétgyűjtés” (garbage collection, „memória kompaktálás”) p 4 p 0 ? p 2 p 1

„Szemétgyűjtés” (garbage collection, „memória kompaktálás”) p 4 p 0 ? p 2 p 1 p 0 p 2 p 1 szegmensek szemétgyűjtés nagyon időigényes ! 16

Lapozás (paging) 17

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

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 logikai címtartomány fizikai címtartomány 18

Lapok megfeleltetése „logikai lapok” MMU ? „fizikai lapok” 19

Lapok megfeleltetése „logikai lapok” MMU ? „fizikai lapok” 19

Címkiszámítás (lapszám, eltolás) cím: lapszám (k) eltolás (d) 0. i bit j bit 1.

Címkiszámítás (lapszám, eltolás) cím: lapszám (k) eltolás (d) 0. i bit j bit 1. n = 2 i m = 2 j k. n. 0. 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

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 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 vagy háttértárolón d

Logikai-fizikai címképzés logikai cím q „jelenléti bit” : lap a memóriában 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élda 1) Adatok : • logikai címtartomány : 15 bit • központi memória

Lapcímzés (példa 1) 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élda 1 megoldás) • • lapméret : 211 byte = 2 Kbyte logikai

Lapcímzés (példa 1 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 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

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

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,

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,

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,

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 ok 30

Lapcímzés (példa 2) Adatok : • logikai címtartomány : 32 bit • központi memória

Lapcímzés (példa 2) 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élda 2 megoldás) • • lapméret : 4 Kbyte = 12 bit logikai

Lapcímzés (példa 2 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) •

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

Egyéb tulajdonságok. . . • • • „overhead” „working set” „demand paging”. . . „trashing” - multiprogramozás Belady anomália 34

Összefoglalás 35

Összefoglalás 35