1 / 57

Operációs rendszerek

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ó Memóriakezelő: nyilvántartsa mely memóriarészek szabadok/foglaltak memóriát foglaljon a programoknak

asher
Download Presentation

Operációs rendszerek

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operációs rendszerek 2000-2001 / 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. 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

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

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

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

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

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

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

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

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

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

  28. Egy jellegzetes laptáblabejegyzés

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

  30. 4. Lapcserélési algoritmusok

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

  32. 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)

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

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

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

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

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

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

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

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

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

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

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

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

More Related