Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Operációs rendszerek 2000-2001 / II. félév. MEMÓRIAGAZDÁLKODÁS A memória hierarchikus szerveződése: –cache memória –központi memória (RAM) –lemezes tároló.

Hasonló előadás


Az előadások a következő témára: "Operációs rendszerek 2000-2001 / II. félév. MEMÓRIAGAZDÁLKODÁS A memória hierarchikus szerveződése: –cache memória –központi memória (RAM) –lemezes tároló."— Előadás másolata:

1 Operációs rendszerek / II. félév

2 MEMÓRIAGAZDÁLKODÁS A memória hierarchikus szerveződése: –cache memória –központi memória (RAM) –lemezes tároló Memóriakezelő: –nyilvántartsa mely memóriarészek szabadok/foglaltak –memóriát foglaljon a programoknak –felszabadítsa a már nem szükslges memóriát –vezérelje a cserét a lemez és a központi memória között

3 1. Alapvető memóriakezelés memóriakezelõ algoritmusok: –végrehajtás közben mozgatják a programrészeket a központi tár és a lemez között (lapozás, szegmentálás) –nem mozgatják (elavultak) egyszerre csak egy program futtatása multiprogramozás rögzített méretû partíciókkal

4 1.1. Egy program futása egy idõben csak egy program van a memóriában a memóriát megosztjuk az operációs rendszer és a program között egyszerre csak egy program futhat

5 a memória szervezésének 3 egyszerű módja van: c. pl. MS-DOS

6 1.2. Multiprogramozás rögzített méretû partíciókkal egyszerre több program is lehet a memóriában a megvalósítás legegyszerûbb módja, ha n szeletre particionáljuk a memóriát (ez végezhetõ pl. manuálisan rendszerindításkor, OS/MFT-ben IBM nagygépeknél) fix méretû partíciók

7 Rögzített memóriaszeletek külön- külön várakozási sorral

8 Rögzített memóriaszeletek egyetlen várakozási sorral

9 hátrányosan különbözteti meg a kisebb programokat megoldások: –legyen legalább 1 kis partíciónk –egyetlen program sem mellõzhetõ k-nál többször a futásra kiválasztáskor

10 Relokáció és védelem amikor a szerkesztõprogram a programot szerkeszti, tudnia kell, hogy a program a memória melyik címén fog kezdõdni több partíció van... => relokációs probléma, védelmi kérdés

11 Megoldás a program betöltésekor az op. rendszer módosítja az utasításokat –pl. 100 kb-os partíciók esetén a ha a második partícióba töltjük a programot, 200kb-ot kell hozzáadni minden címhez –védelem??? nincs megoldva

12 Megoldás a gépnek 2 speciális regisztere van: –bázis regiszter: ide töltődik a partíció kezdő címe –háttér regiszter: a partíció hossza a címek automatikusan generálódnak a címeket a rendszer a háttérregiszter segítségével ellenőrzi, hogy ne lehessen elérni a partíción kívüli memóriacímeket a felhasználói programok nem módosíthatják e két regiszter tartalmát

13 2. Csere gyakran nincs elég memória az összes aktív program befogadásához => a felesleges programokat a lemezen kell tartani és dinamikusan kell betölteni futtatásra 2 egyszerű stratégia: –csere, a programokat teljes egészében mozgatja a memória és a lemez között –virtuális memória, a programok akkor is futhatnak, ha csak egy részük van a memóriában

14 Példa

15 a partíciók száma, helye és mérete dinamikusan változik csere esetén jobb a memória kihasználtsága bonyolultabb a lefoglalás és a felszabadítás memóriatömörítés: a sok apró lyukat a programok mozgatásával egyetlen nagy lyukká olvasztjuk össze

16 Mennyi memóriát kell lefoglalni?

17 2.1. Memóriakezelés bittérképpel a memória néhány szónyi vagy kilobájtnyi allokációs egységre van bontva minden allokációs egységhez tartozik egy bit a bittérképen –értéke 1, ha foglalt –és 0, ha szabad. (vagy fordítva)

18

19 fontos az allokációs egység mérete: –ha kicsi, akkor nagy lesz a bittérkép mérete –ha nagy, akkor kicsi a bittérkép mérete de jelentős mennyiségű memória megy veszendőbe hátránya a bittérképes memóriakezelésnek: lassú, mert ha egy k méretű programot akarunk a memóriába tenni, k db. egybefüggő 0 bitet kell keresni a bittérképen

20 2.2. Memóriakezelés láncolt listákkal láncolt listába fűzzük a szabad és foglalt szegmenseket a lista minden eleme tartalmazza: –a hozzá tartozó lyuk vagy program kezdőcímét –hosszát –a következő listaelem címét

21 A befejeződő X folyamat négy szomszédsági kombinációja

22 Algoritmusok first fit: az első megfelelő lyukat választja ki next fit: mint a first fit, de megjegyzi, hol találta az előzőt és innen indul keresni best fit: végigkeresi az egész listát, a legkisebb alkalmas lyukat keresi worst fit: a legnagyobb lyukat választja ki quick fit: a leggyakrabban kért méretekhez külön lyuklistát épít

23 3. Virtuális memória a program, az adat és a verem együttes mérete meghaladhatja a fizikai memória mennyiségét az op. rendszer csak az program éppen használt részét tartja a memóriában, a többi a lemezen van a több programot futtató rendszerek esetén is működik

24 3.1. Lapozás a virtuális memória beli címek nem kerülnek közvetlenül a memóriabuszra, ahnem a memóriakezelő egység nevű chipbe MMU (Memory Management Unit) az MMU képezi le a virtuális címeket fizikai címekre

25

26 a virtuális címteret lap nevű egységekre osztják a lapnak megfelelő egység a memóriában a lapkeret a memória és a lemez közötti átvitel laponként történik a memória nem tud az MMU-ról, csak teljesíti a memória írására/olvasására vonatkozó kéréseket

27

28 Mi történik, ha a program olyan lapra hivatkozik, ami nincs benne a memóriában? LAPHIBA megszakítás MMU: a bejövő 16 bites virtuális címet 4 bites lapszámra és 12 bites offszetre bontja a lapszámot a laptábla indexeként használjuk

29

30 3.2. Laptáblák a laptábla célja, hogy a virtuális lapokat lapkeretekre képezzük le a laptábla egy függvény, a virtuális lapszám az argumentum a lapkeret száma az eredmény Problémák: a laptábla nagy lehet a leképezés gyors kell legyen

31 Többszintű laptáblák nem tart minden laptáblátegyszerre a memóriában PT1: a felső szintű laptábla indexeként használja PT2 a kiválasztott második szintű laptábal indexe

32

33 Egy jellegzetes laptáblabejegyzés

34 3.4. Invertált laptáblák itt a valós tár minden lapkeretéhez tartozik egy bejegyzés ahelyett, hogy a virtuális címtér minden lapjához legyen egy bejegyzés egy bejegyzés azt tartalmazza, hogy az adott lapkeretet melyik program használja előnye: sok helyet takarít meg hátrány: nehezebb a címfordítás

35 4. Lapcserélési algoritmusok

36 4.1. Az optimális lapcserélési alg. laphiba esetén a memóriában van a lapoknak egy részhalmaza egyre hivatkozunk a következő utasításban minden lap megcímkézhető azza a számmal, ahány utasítás végrehajtódik, mielőtt először hivatkozunk rá optimális lapcserélési alg. esetén a legnagyobb számmal jelzett lapot dobjuk ki

37 4.2. Az NRU lapcserélési algoritmus NRU (Not Recently Used) minden laphoz 2 bit tartozik: –R - minden hivatkozáskor 1-re állítódik –M - módosításkor lesz egy 4 lehetőség (0 0, 0 1, 1 0, 1 1)

38 4.3. A FIFO lapcserélési algoritmus FIFO (First In First Out) az op. rendszer egy láncolt listába fűzi a memóriában lévő lapokat a lista elején van a legrégibb lap a lista végén a legutoljára beolvasott lap laphiba esetén az első lapot dobja ki és a végére fűzi az újat ritkán alkalmazzák

39 4.4. A második lehetőség algoritmus second chance (második lehetőség) a FIFO módosítása a gyakran használt lapok kidobásának elkerülésére

40 megvizsgáljuk a legrégebbi lap R bitjét. –ha az 0, akkor a lap régi és nem használt, tehát eldobható –ha az 1, töröljük a bitet, alapot a lista végére tesszük, a betöltési idejét módosítjuk, mintha most töltöttük volna be –folytatjuk a keresést –ha minden lapra hivatkoznak, akkor úgy működik, mint a FIFO

41

42 4.5. Az óra lapcserélési algoritmus

43 Az LRU algoritmus az utolsó néhány utasításnál gyakran használt lapokat vaéószínüleg újra fogják használni a következö utasításokban a nem használt lapokat nem LRU (Least Recently Used - legrégebben használt): amikor laphiba történik, a legrégebben nem használt lapot dobjuk ki

44 4.7. Az LRU megvalósítása hardveres úton szoftveres szimulációval

45 5. A lapozásos rendszerek tervezési szempontjai

46 5.1. A munkahalmaz modell igény szerinti lapozás munkahalmaz (vergődés)

47 5.2. Lokális/globális helyfoglalás

48 5.3. Lapméret kis lapméret - kevésbé lesz töredezett a memória (belső töredezettség) nagy lapméret: ekkor kisebb laptábla szükséges

49 6. Szegmentálás eddig a memóriát 1D tömbként tárgyaltuk sok esetben jobb több különálló virtuális címteret használni

50 Pl. egy fordítóprogram több táblázatot is előállít: 1. forrásszöveg 2. szimbólumtábla a változók nevével és atribútumaival 3. egész és valós konstansok táblázata 4. a program szintaktikus és szemantikus fája 5. a fordítóprogram saját verme

51

52 Mi történik, ha az egyik memóriaszelet betelik? a fordító abbahagyja a fordítást, hibaüzenettel leáll (bár lehet, hogy még van máshol szabad memória)... a fordító helyet vesz el azoktól a tömböktől, amelyeknek még van szabad helyük...

53 megoldás: egymástól teljesen független címtér létrehozása (szegmensek) minden szegmens címtere 0-tól valamilyen maximális címig tart általában eltérő hosszúságú szegmensek, sőt méretük változhat a program futása során (pl. veremszegmens) több szegmens esetén a cím mindig két részből áll: a szegmens számból és a szegmensen belüli címből

54 a szegmentálás lehetővé teszi adatok és eljárások megosztását programok között leggyakorib példa: osztott könyvtár (pl. grafikus rendszerek) egy szegmensek egy logikai egységek, így az eljárásoknak és adatoknak különböző védelmi szintjük lehet

55

56 6.1. A tiszta szegmentálás implementációja lapozás: fix méretű partíciók szegmentálás: változó méretű partíciók egy idő után a memória darabolódik, sok memóriát veszítünk (külső töredezés) => tömörítés

57


Letölteni ppt "Operációs rendszerek 2000-2001 / II. félév. MEMÓRIAGAZDÁLKODÁS A memória hierarchikus szerveződése: –cache memória –központi memória (RAM) –lemezes tároló."

Hasonló előadás


Google Hirdetések