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

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

Sor láncolt ábrázolással
Nevezetes algoritmusok
Programozási tételek, és „négyzetes” rendezések
1 Számítógépek felépítése 9. előadás I/O rendszerek.
A számítógép felépítése
C++ programozási nyelv Gyakorlat hét
Operációs Rendszerek II. 8. előadás március 25.
Neumann-elvek A számítógép legyen teljesen elektronikus, külön vezérlő és végrehajtó egységgel. Kettes számrendszert használjon. Az adatok és a programok.
Az integrált áramkörök (IC-k) tervezése
A mikroprocesszor 1. rész.
Adatszerkezetek Az adatokat két fő csoportra oszthatjuk: egyszerű és összetett adatok.  Az egyszerű adatot egy érték jellemez, tovább nem bontható. (szám,
Lapcsere stratégiák FIFO, LRU, OPT, SC
Matematika II. 1. előadás Geodézia szakmérnöki szak 2012/2013. tanév/
Belső memóriák tipusai
Dinamikus tömbök.
Operációs rendszer szintje Operating System Machine (OSM)
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
A memória.
LDinamikus tömbök, kétdimenziós tömbök Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 21./0. lVektorok létrehozása futásidőben, dinamikusan.
Utasítás végrehajtás lépései
CISC - RISC processzor jellemzők
Számítógép memória jellemzői
A memóriák típusai, jellemzői
Memória hierarchia Tárolókezelő egység
Egy egyszerű gép vázlata
A mikrovezérlők világa
1 Operációs rendszerek A Windows NT memóriakezelése.
Nevezetes algoritmusok Beszúrás Van egy n-1 elemű rendezett tömbünk. Be akarunk szúrni egy n-edik elemet. Egyik lehetőség, hogy végigszaladunk a tömbön,
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
Operációs Rendszerek II. 9. előadás április 2.
Máté: Architektúrák12. előadás1 Operációs rendszer szintje Operating System Machine (OSM) Ezen a szinten programozóknak rendelkezésre állnak a felhasználói.
Számítógépes üzemmódok
A mikroszámítógép felépítése
Listák, Vermek és Várakozási Sorok
Adatszerkezetek 1. előadás
Egyirányban láncolt lista
Számítógép architektúrák
1.3. Pascal program felépítése Az els ő program. Program ; … Begin … End. Program fej Deklarációs rész Végrehajtó rész.
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Matematika II. 1. előadás Geodézia szakmérnöki szak 2010/2011. tanév Kataszteri ágazat tavaszi félév.
Hernyák Zoltán Programozási Nyelvek II.
Egy második generációs gép (az IBM 7094) felépítése
A Visual Basic nyelvi elemei
Mikroprocesszor.
Funkciós blokkok A funkciós blokkok áttekintése Az alkalmazás előnyei.
Háttértárak.
Ismerkedjünk tovább a számítógéppel
Minuet: A Scalable Distributed Multiversion B-Tree Írta: Benjamin Sowell, Wojciech Golab, Mehul A. Shah Feldolgozta: Fokin Miklós, Hodosy Gábor, Tóth Tamás.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Számítógép-architektúrák
Írja fel a tizes számrendszerbeli
Memória példák Feladat Egy számítógép rendszermemóriája egycsatornás, 64 bites adategységekkel rendelkező DDR1-DRAM-ra épül, melyben a burst.
Memóriakezelés feladatok Feladat: 12 bites címtartomány. 0 ~ 2047 legyen mindig.
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése.
Memóriakezelés feladatok. 1.Feladat Legyenek a virtuális címek 16 bitesek, a fizikai címek 15 bitesek, a lapméret legyen 2 12 bájt = 4 kB méretű, a laptábla.
A ROM ÉS A BIOS. K ÉSZÍTETTE R ELL P ATRIK A ROM A ROM egy olyan elektrotechnikai eszköz, amely csak olvasható adatok tárolására alkalmas memória. Tartalma.
Készítette:Mohamed Ahmed Azmi 9.A. Random Access Memory Alap tudnivalók a RAM -ról: Írható és olvasható memória. Feladata ideiglenes adatok tárolása,
1 A számítógépek tárolói. 2 Memória Memóriaszó  A tárak olyan egységei, melyek egyetlen művelettel kezelhetők.  A legrövidebb memóriaszó a byte (bájt)
Memóriakezelés feladatok A jegyzet 2015-ös változata szerinti számozással.
RAM (Random Access Memory)
Fájlrendszerek.
Programozási nyelvek típusossága.
Dinamikus adatszerkezetek
Számítógépek felépítése 6. előadás virtuális tárkezelés
Hálózati struktúrák, jogosultságok
Számítógép architektúrák
Memória példák 2019.
Cache példák 2019 (IMSC).
Számítógépek felépítése 9. előadás I/O rendszerek
Előadás másolata:

Operációs rendszerek / 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 –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 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 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

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

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

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

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

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

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

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

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

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

Példa

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

Mennyi memóriát kell lefoglalni?

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)

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

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

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

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

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

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

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

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

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

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

Egy jellegzetes laptáblabejegyzés

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

4. Lapcserélési algoritmusok

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

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)

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

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

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

4.5. Az óra lapcserélési algoritmus

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

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

5. A lapozásos rendszerek tervezési szempontjai

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

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

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

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

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

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

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

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

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