Operációs rendszerek Memóriakezelés 1.1



Hasonló dokumentumok
Máté: Számítógép architektúrák

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja előadás Memóriakezelés

Dr. Illés Zoltán

Operációs rendszerek II. kidolgozott tételsor Verzió 1.0 (Build: )

Operációs rendszerek előadás Multiprogramozott operációs rendszerek

Számítógép architektúrák

Az informatika alapjai. 10. elıadás. Operációs rendszer

SZÁMÍTÓGÉPARCHITEKTÚRÁK

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

A Számítógépek hardver elemei

Számítógép Architektúrák (MIKNB113A)

Operációsrendszerek. 2. elıadás. Standard ismeretek II.

Problémák. Lehet hogy a program nem fér be a memóriába Mozgatás diszkre és vissza A programok lokalitásának elve

Operációs rendszerek. UNIX fájlrendszer

Számítógép architektúrák. Tartalom. A memória. A memória

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Számítógépes alapismeretek

Számítógép Architektúrák

Bevezetés az informatikába

A Számítógépek felépítése, mőködési módjai

Operációs rendszerek. 3. előadás Ütemezés

Operációs rendszerek. Az NT memóriakezelése

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Informatika 11. el adás: Hardver

Analitikai megoldások IBM Power és FlashSystem alapokon. Mosolygó Ferenc - Avnet

Operációs rendszerek III.

1. Az utasítás beolvasása a processzorba

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia)

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

6. Tárkezelés. Operációs rendszerek. Bevezetés A program címeinek kötése. A címleképzés. A címek kötésének lehetőségei

Az Ön kézikönyve HP COMPAQ DC5700 MICROTOWER PC

Utasításrendszer jellemzése (utasítás részei) 1. műveleti kód 2. operandusok 3. következő utasítás címe (elmaradhat)

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

386 processzor címzés

Operációs rendszerek II. jegyzet

Programozható logikai vezérlõk

Rendszerfelügyelet Logikai partíciók

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

PILÓTA NÉLKÜLI REPÜLŐGÉPEK ÚTVONALTERVEZÉSE DIGITÁLIS DOMBORZAT MODELL ALKALMAZÁSÁVAL

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

MIKRO MÉRETŰ PILÓTA NÉLKÜLI REPÜLŐK REPÜLÉSBIZTONSÁGI KÉRDÉSEI ELEKTROMOS TÁPELLÁTÁS BIZTONSÁGA

A mai program OPERÁCIÓS RENDSZEREK. A probléma. Fogalmak. Mit várunk el? Tágítjuk a problémát: ütemezési szintek

Egyszerű RISC CPU tervezése

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar május 30.

ARM processzorok felépítése

Villamos jelek mintavételezése, feldolgozása. Mérésadatgyűjtés, jelfeldolgozás 9. előadás

Tájékoztató. Használható segédeszköz: -

Digitális Rendszerek és Számítógép Architektúrák

8. Memória management

Matematikai és Informatikai Intézet. 4. Folyamatok

FPGA áramkörök alkalmazásainak vizsgálata

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

12. tétel. Lemezkezelés

Új módszerek és eszközök infokommunikációs hálózatok forgalmának vizsgálatához

Digitális technika II., 2009/2010 tavasz 1. vizsga A csoport

VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek)

komplex védelem Letöltő szoftver ismertető V1.61 Azonosító: EP Budapest, február

Operációs rendszerek MINB240. Bevitel-Kivitel. 6. előadás Input és Output. Perifériák csoportosításá, használat szerint

INFORMATIKA ZÁRÓSZIGORLAT TEMATIKA

1 Rendszer alapok. 1.1 Alapfogalmak

A hierarchikus adatbázis struktúra jellemzői

Lemezkezelés, állományrendszerek

Bevezetés a Symbian operációs rendszerbe

Operációs rendszerek. A program. A memória (tár) Memória menedzselés

9. Virtuális memória kezelés

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is.

PROGRAMOZHATÓ LOGIKAI VEZÉRLİK

Számlázás-házipénztár. (SZAMLA) verzió. Kezelési leírás

Rod Eye Digital User Manual

Memóriakezelés (Memory management)

Bevezetés. Személygépjárművek. Fedélzeti elektromos rendszer. Hagyományos 12V-os rendszerek

Az 5-2. ábra két folyamatos jel (A és B) azonos gyakoriságú mintavételezését mutatja ábra

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák

Szupermikroprocesszorok és alkalmazásaik

Az időhöz kötődő parancsok

Windows alapú operációs rendszerek

A mikroszámítógép felépítése.

Fábián Zoltán Hálózatok elmélet

Videó titkosítása. BME - TMIT VITMA378 - Médiabiztonság feher.gabor@tmit.bme.hu

DIGITÁLIS KÖZPONT SZIMULÁCIÓJA

Útmutató a Computer Setup (F10) segédprogram használatához dx2300 minitorony

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

Strukturális szakadékok és jó ötletek 1

P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely

ProCOM GPRS ADAPTER TELEPÍTÉSI ÉS ALKALMAZÁSI ÚTMUTATÓ. v1.0 és újabb modul verziókhoz Rev

Kapcsolás. Áramkörkapcsolás, virtuális áramkörkapcsolás, hullámhosszkapcsolás,

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Számítógépek felépítése, alapfogalmak

Ethernet/IP címzés - gyakorlat

Máté: Számítógép architektúrák

2. Digitális hálózatok...60

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

WIFI ajtócsengő HASZNÁLATI ÚTMUTATÓ

Cloud computing Dr. Bakonyi Péter.

Programozás alapjai. 10. előadás

DT930 N Adagolásvezérlő

Papp Gyula Dr. Cserhátiné Vecsei Ildikó Kölcsey Ferenc Református Tanítóképző Főiskola

Átírás:

Operációs rendszerek Memóriakezelés 1.1 Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK

Operációs rendszerek p. A memóriakezelő A memória fontos erőforrás, a kezelését a memóriakezelő (memory manager) végzi. Ennek feladatai: 1. Nyilvántartás: a memória mely részei vannak használatban és melyek szabadok? 2. Kiosztás: a folyamatok a memóriakezelőtől kérhetnek memóriát és a segítségével szabadíthatják fel. 3. Memória bővítése: kezeli a csereterületet, vagyis szükség esetén a háttértárra menti majd visszatölti a memória tartalmát.

Operációs rendszerek p. Monoprogramming A monoprogramozott környezetben igen primitív memóriamodell használhatunk. User program Operating system in RAM 0xFFF Operating system in ROM Device drivers in ROM User program User program Operating system in RAM 0 0 0 (a) (b) (c) 1. ábra. Monoprogramozott memóriamodellek

Operációs rendszerek p. Monoprogramming A következő modelleket használják a swapping nélküli monoprogramozott rendszerek: (a) Alul a RAM-ban az OS, felül a RAM-ban a futtatott program (mainframek, minicomputerek, ma már nem használjuk). (b) Alul a RAM-ban a futtatott program, felül ROM-ban az OS (palmtopok, beágyazott rendszerek). (c) Alul a RAM-ban az operációs rendszer, középen a RAM-ban a futtatott program, felül az eszközkezelők ROM-ban (DOS, PC rendszerek).

Operációs rendszerek p. Multiprogramming A multiprogramozott rendszerekben egy időben több folyamat is létezik. Ma kényelmi szempontokat tartunk szem előtt, régebben azonban a multiprogramozott modelltől azt vártuk, hogy a CPU kihasználtsága növekedjék: Naív: 5 20% = 100%

Operációs rendszerek p. Multiprogramming A multiprogramozott rendszerekben egy időben több folyamat is létezik. Ma kényelmi szempontokat tartunk szem előtt, régebben azonban a multiprogramozott modelltől azt vártuk, hogy a CPU kihasználtsága növekedjék: Naív: 5 20% = 100% Valóság: 1 p n (p részt vár, n process)

Operációs rendszerek p. Multiprogramming CPU utilization (in percent) 100 80 60 40 20 20% I/O wait 50% I/O wait 80% I/O wait 0 1 2 3 4 5 6 7 8 9 10 Degree of multiprogramming 2. ábra. A CPU kihasználtsága multiprogramozott környezetben

Multiprogramming Job Arrival time CPU minutes needed # Processes 1 2 3 4 1 2 10:00 10:10 4 3 CPU idle CPU busy.80.20.64.36.51.49.41.59 3 10:15 2 CPU/process.20.18.16.15 4 10:20 2 (a) (b) 1 2 3 4 2.0.9 Job 2 starts.9.8.8.8.3.3.3.3 Job 1 finishes.9.1.9.9.1.7 0 0 10 15 20 22 27.6 28.2 31.7 Time (relative to job 1's arrival) (c) 3. ábra. Konkrét példa (80% wait) Operációs rendszerek p.

Operációs rendszerek p. Multiprogramming Multiple input queues Partition 4 800K 700K Partition 4 Partition 3 Single input queue Partition 3 400K Partition 2 Partition 1 Operating system (a) 200K 100K 0 Partition 2 Partition 1 Operating system (b) 4. ábra. Memóriapartíciók használata

Operációs rendszerek p. Multiprogramming A legegyszerűbb modell fix méretű memória-partíciókkal dolgozik, amelyeket az operátor a rendszerindításkor alakít ki. A beérkezett jobok a legkisebb memória-partícióba kerülnek, amelybe beleférnek. (Külön-külön vannak sorok vagy együtt.) Több memóriaoptimalizálási problémát is felvet ez a modell, hiszen nehéz garantálni, hogy minden jobra sor kerüljön és ne vesztegessük a memóriát (egy partícióba csak egy job kerülhet).

Operációs rendszerek p. Relokáció A memória partícionálása és a multiprogramozás felveti a relokáció problémáját, melynek során a programban található utasítások címét meg kell változtatni attól függően, hogy melyik partícióra töltjük be a programot. Megoldást jelent, ha a linker készít egy táblázatot, amelyben felsorolja mely helyeken találhatók a címek, amelyeket az OS-nek módosítania kell, mikor a programot betölti.

Operációs rendszerek p.1 Memóriavédelem A futó programok nem módosíthatják vagy olvashatják a többi job memóriaterületét. Erről az operációs rendszernek kell gondoskodnia. Megoldást jelent, ha a memóriát felosztjuk lapokra, mindegyiket ellátjuk egy jellel, ahogyan a folyamatokat is (OS joga és feladata). A hardver megszakítást generál ha memóriasértés történik.

Operációs rendszerek p.1 Teljes megoldás A következő megoldás mindkét problémát megoldja. Készítsünk a processzorban két regisztert: BASE és LIMIT, egy áramkörrel mindig adjuk hozzá a címekhez a BASE értékét és figyeljünk rá, hogy ne kerülhessen nagyobb érték a buszra mint a LIMIT. Amikor az ütemező másik folyamatra kapcsol át, írjuk a BASE és LIMIT regiszterekbe a folyamatra jellemző értékeket.

Operációs rendszerek p.1 Nincsen elegendő memória Interaktív rendszereknél nem korlátozhatja az egyszerre futtatható programok számát a rendelkezésre álló memória (batch rendszereknél is hasznos ha több job közül válogathatunk). Két módszert használhatunk: Swapping, csere: a teljes partíciót kitesszük a háttértárra és beteszünk egy másikat. Virtuális memória: engedjük futni a partícióban található folyamatot akkor is, ha a partíció egy része nincs a fizikai memóriában.

Operációs rendszerek p.1 Csereterület Tegyük lehetővé, hogy: a partíciók mérete dinamikusan változzon a futás közben, minden folyamat akkora partícióba kerüljön, amekkora szükséges a futtatásához, a folyamatok bármikor kikerülhessenek a swap területre, bármikor visszatölthetőek legyenek, akár egy másik területre is, a memóriapakolás során bármikor áthelyezhessük a folyamatokat, a folyamatok kérhessék a partíció növelését (dinamikus memóriaallokálás)

Operációs rendszerek p.1 Overlay technika Az lefedéses memóriagazdálkodás (overlay) a virtuális memóriakezelés primitív módja, amelyet ma már általában nem használunk. Az egyes modulok kivételét és betöltését az operációs rendszer végzi, a program feldarabolását azonban a programozó. Nem túl szerencsés, ha a programozó nem programot ír, hanem darabolja a megírt programot.

Operációs rendszerek p.1 Virtuális memória A virtuális memória alapgondolata az, hogy a programot darabokra vágjuk és mindig csak azokat a darabokat tartjuk a memóriában, amelyek beleférnek, a többit a háttértárra mentjük. A program és adatterületeinek szabályos darabolása, a szükséges darabok betöltése és a nélkülözhető darabok háttértárra írása ma már automatikusan történik.

Operációs rendszerek p.1 Az MMU A memory management unit a CPU és a memória közt található. CPU package The CPU sends virtual addresses to the MMU CPU Memory management unit Memory Disk controller Bus The MMU sends physical addresses to the memory 5. ábra. Az MMU

Operációs rendszerek p.1 Lapok és lapkeretek Virtual address space 60K-64K 56K-60K 52K-56K 48K-52K 44K-48K 40K-44K 36K-40K 32K-36K 28K-32K 24K-28K 20K-24K 16K-20K 12K-16K 8K-12K 4K-8K 0K-4K X X X X 7 X 5 X X X 3 4 0 6 1 2 Virtual page Physical memory address 28K-32K 24K-28K 20K-24K 16K-20K 12K-16K 8K-12K 4K-8K 0K-4K Page frame

Operációs rendszerek p.1 Lapozás A lapozás (paging) lényege a következő: A CPU, a programozó virtuális címeket kezel. A virtuális címeket az MMU (memory management unit) áramkör képezi le fizikai címekké. A virtuális címtartományt lapokra (pages) osztjuk, amelyek a memóriában lapkeretekbe (page frame) kerülnek. Unmapped page elérésekor az MMU page fault trap-et hív.

Operációs rendszerek p.1 A laptábla Page table 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 000 000 000 000 111 000 101 000 000 000 011 100 000 110 001 010 0 0 0 0 1 0 1 0 0 0 1 1 1 1 1 1 Virtual page = 2 is used as an index into the page table 110 Present/ absent bit 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 12-bit offset copied directly from input to output Outgoing physical address (24580) Incoming virtual address (8196)

Operációs rendszerek p.2 A laptábla A laptábla (page table) az MMU egyik legegyszerűbb megvalósítása: A virtuális címet két részre osztjuk: a felső rész a lap száma, az alsó az offszet. A lap számát a laptábla megcímzésére használjuk, így a laptábla megmutatja, hogy az adott lap melyik lapkeretben van. A lapkeret száma + offszet a fizikai cím.

Operációs rendszerek p.2 Problémák A laptábla használatával gondok merülnek fel: A leképezésnek nagyon gyorsnak kell lennie (két, három konverzió egy gépi kódú utasítás alatt) A laptábla nagyon nagy lehet (32 bites címtartományban hány 4 KByte-os blokk van?) A módszert más eszközökkel eggyütt használjuk ma is (memóriába mentett page table, multi-level page table stb.).

Operációs rendszerek p.2 A méret a lényeg Virtuális laponként egy bejegyzés a laptáblában nagyon sok lehet: 1. 32 bites címtartomány, 4096 byte-os virtuális lapokkal mintegy 1 millió bejegyzés. Minimálisan kb. 4 megabyte. 2. 64 bites címtartomány, 4096 byteos lapokkal, 2 52 bejegyzés. Mintegy 30 000 000 gigabyte-os page table.

Operációs rendszerek p.2 Invertált laptábla A lapkeretek számára készítünk egy-egy bejegyzést, nem lapok számára. Ez segít, feltéve, hogy a fizikai memória jóval kisebb mint a processzor által kezelt címtartomány. A probléma itt az, hogy fordítva kell keresni és ez igen lassúvá teszi a műveletet. TLB-t (translation lookaside buffer) kell használni.

Operációs rendszerek p.2 Invertált laptábla Traditional page table with an entry for each of the 2 52 pages 2 52-1 256-MB physical memory has 2 16 4-KB page frames 2 16-1 2 16-1 Hash table 0 0 Indexed by virtual page 0 Indexed by hash on virtual page Virtual page Page frame

Operációs rendszerek p.2 Többszintű laptábla A két vagy többszintű laptábla használatának a lényege az, hogy nem kell a nem használt memóriaterületekhez tartozó laptábla bejegyzéseknek létezniük. Azoknak a másodszintű laptábláknak például, amelyekhez az elsőszintű laptábla bejegyzése nem létezőként jelez, nem kell másodszintű laptábla. A módszer jól használható, mert általában nem használunk olyan programokat, amelyek a teljes címtartományt használnák.

Operációs rendszerek p.2 Kétszintű laptábla Second-level page tables Page table for the top 4M of memory 1023 Top-level page table Bits 10 10 12 PT1 PT2 Offset (a) 6 5 4 3 2 1 0 1023 6 5 4 3 2 1 0 To pages (b) 6. ábra. 32 bites cím kétszintű laptáblával

Operációs rendszerek p.2 Laptábla bejegyzés A laptábla bejegyzés (page table entry) erősen hw függő, de elterjedtek a következő elemek Page frame number Present/absent (page fault) Protection (read, write, execute) Modified (dirty) Referenced Disable caching (memory mapped I/O esetén) A page fault kezeléséhez szükséges információnak nem kell itt lennie, azt az OS kezeli, nem a hw.

Operációs rendszerek p.2 A lapcserélés A lapcserélő (page replacement) algoritmusok célja, hogy a page fault esetén olyan lapkeretet szabadítsunk fel, amelynek tartalmára előreláthatólag hosszú időn keresztül nem lesz szükség. Az optimális lapcserélő algoritmus éppen az, amelyik a legkésőbb szükséges lapot távolítja el, de sajnos lehetetlen megvalósítani, mert a jövő ismeretlen.

Operációs rendszerek p.2 Not recently used Minden lapkeret rendelkezik egy R és egy M bittel, az operációs rendszer időről időre törli az R bitet. Minden page fault esetén a következő kategóriákat jelöljük ki: 1. not referenced, not modified 2. not referenced, modified 3. referenced, not modified 4. referenced, modified Mindig a legalsó kategóriából választunk véletlenszerűen.

Operációs rendszerek p.3 First-in, first-out A legrégebbi lapkeretet (azt amelyik a legrégebb óta a memóriában van) ürítjük ki. Nem túl kifinomult módszer, mert vannak olyan lapkeretek, amelyekre hosszú időn keresztül szükség van. A boltos példánál maradva lehet, hogy eltávolítjuk a sót és a cukrot, ezért nem szokás használni.

Operációs rendszerek p.3 Második esély algoritmus A FIFO módosított változata. Vizsgáljuk meg a legrégebbi lapot. Ha R bit be van állítva, akkor töröljük és helyezzük a sor végére, mintha most töltöttük volna be, ha nem, ezt a lapkeretet örítjük ki. Ha minden lapkeret volt használva, ez az algoritmus megegyezik a FIFO algoritmussal. A boltos példa: ha az elmúlt héten vettek az árúból, akkor adunk neki egy második esélyt és a sor végére tesszük.

Operációs rendszerek p.3 Least recently used Az LRU algoritmus esetén a legrégebb óta nem használt lapkeretet szabadítjuk fel. A korrekt megvalósítás igen költséges volna, mivel minden memóriahozzáférésnél frissíteni kellene a listát, rögzíteni kellene, hogy mikor használtuk a lapot. Megoldható volna, ha a laptábla bejegyzése tartalmazna egy számlálót, amely minden memóriahozzáféréskor inkrementálódna.

Operációs rendszerek p.3 Simulált LRU NFU (not frequently used): időről időre növeljük a szoftveresen kezelt lapkeret használtsági számlálót, növeljük, ha az R bit 1. Az R bitet ilyenkor mindig töröljük. Öregedés: léptessük jobbra a számlálót, a legfelső bithez adjuk hozzá az R bitet. E módszerrel elérhetjük, hogy a régmúlt időben begyűjtött pontok ne rontsák a jóslást.

Igény szerinti lapozás Az igény szerinti lapozás esetében a folyamat egyetlen lapkeret nélkül indul, az operációs rendszer csak a page fault esetén tölti be a lapokat. A módszert használva viszonylag kevés page fault után megjelenik a memóriában a szükséges memóriaterület (lokalitás). w(k,t) k 7. ábra. A használt lapkészlet Operációs rendszerek p.3

Operációs rendszerek p.3 A használt lapkészlet A working set az a laphalmaz (lapkészlet) amely az operatív memóriában az adott pillanatban megtalálható. A használt lapkészlet és a teljes lapkészlet arányától függően kevés vagy sok (trashing, lapcséplés) page fault jelentkezik. A lapkészlet modellt használó rendszerek megpróbálják elkerülni a lapcséplést például azzal, hogy a processz használt lapkészlete a fizikai memóriában kerül mielőtt az futna (prepaging).

Operációs rendszerek p.3 A szegmentáció Az eddig tárgyalt virtuális memória egydimenziós, a virtuális címtartomány 0-tól egy bizonyos értékig tart. Hasznosnak tűnik több virtuális címtartományt készíteni. Virtual address space Address space allocated to the parse tree Call stack Parse tree Free Space currently being used by the parse tree Constant table Source text Symbol table Symbol table has bumped into the source text table 8. ábra. Fordítóprogram címtartománya

Operációs rendszerek p.3 A szegmentáció 20K 16K 16K 12K 8K 4K Symbol table 12K 8K 4K Source text 12K 8K 4K Parse tree 12K 8K 4K Call stack 0K Segment 0 0K Segment 1 0K Constants Segment 2 0K Segment 3 0K Segment 4 9. ábra. Fordítóprogram szegmentációval