Oper ci s rendszerek
Download
1 / 57

Operációs rendszerek - PowerPoint PPT Presentation


  • 80 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Operációs rendszerek' - asher


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Oper ci s rendszerek

Operációs rendszerek

2000-2001 / II. félév


Mem riagazd lkod s
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


1 alapvet mem riakezel s
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


1 1 egy program fut sa
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



1 2 multiprogramoz s
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





Relok ci s v delem
Relokáció és védelem sorral

  • 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


Megold s
Megoldás sorral

  • 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


Megold s1
Megoldás sorral

  • 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


2 csere
2. Csere sorral

  • 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


P lda
Példa sorral


  • 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



2 1 mem riakezel s bitt rk ppel
2.1. Memóriakezelés bittérképpel változik

  • 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)


  • fontos az allokációs egység mérete: változik

    • 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


2 2 mem riakezel s l ncolt list kkal
2.2. Memóriakezelés láncolt listákkal változik

  • 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



Algoritmusok
Algoritmusok kombinációja

  • 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


3 virtu lis mem ria
3. Virtuális memória kombinációja

  • 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


3 1 lapoz s
3.1. Lapozás kombinációja

  • 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


  • a virtuális címteret kombinációjalap 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



3 2 lapt bl k
3.2. Laptáblák nincs benne a memóriában?

  • 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


T bbszint lapt bl k
Többszintű nincs benne a memóriában? 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


Egy jellegzetes lapt blabejegyz s
Egy jellegzetes laptáblabejegyzés nincs benne a memóriában?


3 4 invert lt lapt bl k
3.4. Invertált laptáblák nincs benne a memóriában?

  • 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


4 lapcser l si algoritmusok
4. Lapcserélési algoritmusok nincs benne a memóriában?


4 1 az optim lis lapcser l si alg
4.1. Az optimális lapcserélési alg. nincs benne a memóriában?

  • 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


4 2 az nru lapcser l si algoritmus
4.2. Az NRU lapcserélési algoritmus nincs benne a memóriában?

  • 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)


4 3 a fifo lapcser l si algoritmus
4.3. A FIFO lapcserélési algoritmus nincs benne a memóriában?

  • 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


4 4 a m sodik lehet s g algoritmus
4.4. A nincs benne a memóriában?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


  • megvizsgáljuk a legrégebbi lap R bitjét. nincs benne a memóriában?

    • 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


4 5 az ra lapcser l si algoritmus
4.5. Az nincs benne a memóriában?óra lapcserélési algoritmus


Az lru algoritmus
Az LRU algoritmus nincs benne a memóriában?

  • 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


4 7 az lru megval s t sa
4.7. Az LRU megvalósítása nincs benne a memóriában?

  • hardveres úton

  • szoftveres szimulációval



5 1 a munkahalmaz modell
5.1. A munkahalmaz modell nincs benne a memóriában?

  • igény szerinti lapozás

  • munkahalmaz (vergődés)


5 2 lok lis glob lis helyfoglal s
5.2. Lokális/globális helyfoglalás nincs benne a memóriában?


5 3 lapm ret
5.3. Lapméret nincs benne a memóriában?

  • 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


6 szegment l s
6. Szegmentálás nincs benne a memóriában?

  • 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


Pl. egy fordítóprogram több táblázatot is előállít: nincs benne a memóriában?

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


Mi történik, ha az egyik memóriaszelet betelik? nincs benne a memóriában?

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


  • 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



6 1 a tiszta szegment l s implement ci ja
6.1. A tiszta szegmentálás implementációja megosztását programok között

  • 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


ad