Memory Management vjj 1

Podobné dokumenty
Memory Management vjj 1

Přidělování paměti II Mgr. Josef Horálek

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy 2. Přednáška číslo 2. Přidělování paměti

Operační systémy. Přednáška 8: Správa paměti II

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Správa paměti. Přímý přístup k fyzické paměti, abstrakce: adresový prostor, virtualizace, segmentace

Systém adresace paměti

Paměťový podsystém počítače

Principy operačních systémů. Lekce 3: Virtualizace paměti

2010/2011 ZS P i r i nc č py po ít č čů a PAMĚŤOVÝ ĚŤ SUBSYSTÉM z pohledu OS OS

Operační systémy. Přednáška 7: Správa paměti I

Přednáška. Správa paměti I. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.

Operační systémy. Správa paměti (SP) Požadavky na SP. Spojování a zavedení programu. Spojování programu (linking) Zavádění programu (loading)

Struktura a architektura počítačů (BI-SAP) 11

09. Memory management. ZOS 2006, L.Pešička

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

Vnitřní a vnější paměti Část: vnitřní paměti

Přednáška. Správa paměti III. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Von Neumannovo schéma

Přidělování zdrojů (prostředků)

Paměťová hierarchie. INP 2008 FIT VUT v Brně

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška IV. 18. listopad, / 41

Principy operačních systémů. Lekce 2: Správa paměti

Petr Krajča. 25. listopad, 2011

Operační systémy. Přednáška 9: Správa paměti III

Principy počítačů a operačních systémů

OS Správa paměti. Tomáš Hudec.

Metody připojování periferií BI-MPP Přednáška 2

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Přidělování paměti I Mgr. Josef Horálek

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Vnitřní a vnější paměti Část: vnitřní paměti

Logická organizace paměti Josef Horálek

IUJCE 07/08 Přednáška č. 6

Při překrývání se využívá toho, že ne všechny moduly programu jsou vyžadovány současně. Jakmile skončí využívání jednoho

Pokročilé architektury počítačů

Přednáška. Systémy souborů. FAT, NTFS, UFS, ZFS. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Téma 6 Správa paměti a její virtualizace

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

PAMĚŤOVÝ SUBSYSTÉM. Principy počítačů I. Literatura. Parametry paměti. Parametry paměti. Dělení pamětí podle funkce. Kritéria dělení pamětí

Souborový systém (File System FS) Souborové systémy. Souborová fragmentace. Disková fragmentace. Organizace dat na pevném disku

Management procesu I Mgr. Josef Horálek

Procesy a vlákna (Processes and Threads)

Operační systémy. Přednáška 1: Úvod

Operační systémy 1. Přednáška číslo Souborové systémy

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

Architektury počítačů

Adresní mody procesoru

Operační systémy a sítě

3. Počítačové systémy

Pamět ová hierarchie, návrh skryté paměti 2. doc. Ing. Róbert Lórencz, CSc.

Paměti a jejich organizace

Pamět ová hierarchie, návrh skryté paměti cache 2

Procesy. Procesy Přepínání kontextu (proc_ctxsw) Postup:

Virtualizace. Lukáš Krahulec, KRA556

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Mezipaměti počítače. L2 cache. L3 cache

Téma 8 Virtuální paměť Obsah

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

IT ESS II. 1. Operating Systém Fundamentals

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

B4B35OSY: Operační systémy

Principy počítačů a operačních systémů

Správa paměti. doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

Adresace paměti. 11.přednáška

4 Správa paměti. 4.1 Základní správa paměti

Segmentovanie a stránkovanie v procesoroch Intel Pentium

MODERNÍ SOUBOROVÉ SYSTÉMY - ZFS. Richard Janča

Fakulta informačních technologií Božetěchova 2, BRNO 26. dubna 2011

Operační systémy (OS)

Definice OS. Operační systém je základní programové vybavení počítače, nezbytné pro jeho provoz.

Struktura programu v době běhu

Předmět: Operační systémy

Stavba operačního systému

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Systém souborů (file system, FS)

Obsah. Kapitola 1 Skříně počítačů 15. Kapitola 2 Základní deska (mainboard) 19. Kapitola 3 Napájecí zdroj 25. Úvod 11

Ukázka zkouškové písemka OSY

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.

Instalace OS, nastavení systému

Ukazky Zdroje:... 17

Poslední aktualizace: 21. května 2015

Architektura procesoru ARM

Činnost počítače po zapnutí

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Operační systémy. Přednáška 2: Procesy a vlákna

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Operační systémy a databáze. Petr Štěpán, K13133 KN-E-129 Téma 5. Správa paměti

Princip funkce počítače

ZOS OPAKOVÁNÍ. L. Pešička

Pokročilé architektury počítačů

Transkript:

Memory Management 10.01.2018 vjj 1

10.01.2018 vjj 2 sledování stavu paměti free used správa paměti strategie přidělování paměti techniky přidělování paměti realizace uvolňování paměti

10.01.2018 vjj 3 Přidělení paměti při startu programu dynamické alokace během běhu programu RAM virtual memory heap přerozdělování paměti RAM vs. virtuální paměť

10.01.2018 vjj 4 historie x-bitový pravěk 32-ti bitový starověk klasika (sálové počítače) 8-mi/16-ti bitový středověk doba temna 32-ti bitový novověk renesance 32-ti/64-ti bitová současnost

10.01.2018 vjj 5 geneze jedna souvislá oblast sekce dynamické přemisťování sekcí stránkování stránkování na žádost segmentace segmentace a stránkování na žádost

10.01.2018 vjj 6 pravěk srozumitelná jednoduchost

10.01.2018 vjj 7 jediná souvislá sekce jednoduchost adresa v programu je skutečnou adresou ve fyzické RAM paměti počítače privilegovaný x uživatelský stav mezní registr ochrana paměti OS nevýhody: nevyužita CPU i paměť omezení úloh velikostí paměti první (sálové) počítače a po desítkách let znovu první PC (DOS)

10.01.2018 vjj 8 RAM processor 20 28 control register address modul 30 32 SYSTEM

source Start 700 Define A A = A + <0x708> compiler -> assembly language load add A store A <0x708> compiler -> obj ( -> link -> exe ) load add 0x700 0x708 store 0x700 10.01.2018 vjj 9

10.01.2018 vjj 10 ranný starověk fixed number of partitions multitasking

10.01.2018 vjj 11 sekce free pgm 1 free pgm 2 free

10.01.2018 vjj 12 výhody: multitasking pevně dané sekce adresa v programu je relativní vůči počátku sekce dynamické určení sekcí jednoduchá tabulka přidělených a volných sekcí nevýhody: zbytečné obsazení paměti nepoužitými částmi programu nevyužitá zbylá část sekce

10.01.2018 vjj 13 source A = A + B compiler -> assembly language load add store A B A? compiler -> obj ( -> link -> exe ) load add store load add store 0x700 0x708 0x700 loader -> RAM (5th partition) 0x4700 0x4708 0x4700

10.01.2018 vjj 14 Base register A = A + B store *, BaseReg... load 0x700 add 0x708 store 0x700 store *, BaseReg store 0x4000,BaseReg...... load A load 0x700+BaseReg add B add 0x708+BaseReg store A store 0x700+BaseReg

10.01.2018 vjj 15 rozvinutý starověk variable number of partitions -> dynamické sekce

10.01.2018 vjj 16 sekce free pgm 1 free pgm 2 free

10.01.2018 vjj 17 starověk - dynamické sekce přidělování oddělených sekcí adresy v každé části programu jsou modifikovány jiným segmentovým registrem nevýhody: fragmentace paměti virtuální paměť (skoro) není třeba umístit do paměti celý program najednou, dodatečně potřebné moduly mohou být v samostatné části, které se sekce paměti přidělí až když to je zapotřebí

10.01.2018 vjj 18 dynamické přemisťování sekcí compaction, recompaction, relocation hned po uvolnění paměti až podle potřeby když je čas když je to výhodné (???) přeadresování typ + data relokační registr, limit výhody: eliminace fragmentace nevýhody: cena, čas, vždy celé moduly

10.01.2018 vjj 20 vrcholný starověk zlatá éra virtuální paměť

stránkování adresový prostor programu rozdělen na stránky (logické stránky) (4 kb) fyzická paměť rozdělena na rámce (fyzické stránky) (4 kb) transformace adres pomocí tabulek stránek překlad adres z logických na fyzické provádí procesor výhody: eliminace fragmentace nevýhody: složitější HW, práce s tabulkami, v RAM je vždy celý program 10.01.2018 vjj 21

10.01.2018 vjj 22 přepočítávání adres load add store 0x3700 0x3708 0x3700 PGM page 0 96 RAM frame 1 403 2 12 3 87 0x3700 = = page 3 + 0x700 = frame 87 + 0x700

10.01.2018 vjj 23 RAM processor 20 process 1 28 process 2 control register address modul 30 32 process 3 SYSTEM page table 2

10.01.2018 vjj 24 virtual memory proč virtuální? stránkování na žádost fyzické rámce jen pro stránky, které jsou skutečně používány tj. celkový počet stránek všech programů, ale dokonce i jediného programu, může překročit celkový počet fyzických rámců RAM

10.01.2018 vjj 25 stránkování pracovní stůl úředník tabulka 1 tabulka 2 tabulka 3 úkol 1 úkol 2 úkol 3

10.01.2018 vjj 26 stránkování na žádost knihovna sklad knihovník úředník tabulka 1 tabulka 2 tabulka 3 úkol 1 úkol 2 úkol 3

10.01.2018 vjj 27 stránkování na žádost stránka alokována příznak VALID tj. informace o tom, že odpovídající řádek v tabulce stránek byl již inicializován výpadek stránky příznak PRESENT tj. údaj v tabulce stránek o tom, ve kterém fyzickém rámci je stránka umístěna, je platný algoritmy nahrazování stránek hledání oběti FIFO LRU Least Recently Used NUR Not Used Recently algoritmus druhé naděje příznak ACCESSED clock algorithm varianta NUR sdružování dvojic ukládání změn jen když to je nutné příznak DIRTY

10.01.2018 vjj 28 tabulka stránek PGM page VALID PRESENT RAM frame ACCESSED DIRTY 0 1 1 96 0 0 1 1 0 403 0 0 2 1 1 12 1 1 3 0 0 87 0 0

10.01.2018 vjj 29 segmentace logické seskupení informací důsledné dotažení myšlenky algoritmu sdružování dvojic dynamické sestavovaní / linkování předchůdce DLL sdílené segmenty tabulka segmentů ochrana segmentů nevýhoda: fragmentace

10.01.2018 vjj 30 segmentace segment sada vlastních relativních adres + index (selektor) do tabulky deskriptorů deskriptor popisuje blok virtuální paměti Program Virtuální paměť segment 1 tabulky deskriptorů segment 2

10.01.2018 vjj 31 segmentace a stránkování na žádost konec šedesátých let minulého století vrchol memory managementu v operačních systémech sálových počítačů

10.01.2018 vjj 32 virtuální prostředky přehled

10.01.2018 vjj 33 procesor virtuální virtuální virtuální pgm 1 pgm 2 pgm 3 procesor procesor procesor správa procesů, Dispatcher, úklidové prostory procesů procesor

10.01.2018 vjj 34 tiskárna virtuální virtuální virtuální pgm 1 pgm 2 pgm 3 procesor tiskárna procesor tiskárna procesor tiskárna spooling, soubory na disku procesor tiskárna

10.01.2018 vjj 35 paměť virtuální virtuální virtuální pgm 1 pgm 2 pgm 3 procesor paměť procesor paměť procesor paměť Memory Manager, tabulky stránek procesor RAM

10.01.2018 vjj 36 virtuální paměť disk pgm modul 1 Virtuální paměť 1 pgm modul 1 Virtuální paměť 2 pgm modul 2 RAM pgm modul 2 data modul 1 data modul 1 data modul 2 pgm modul 2 sys modul 1 sys modul 2 data modul 1 sys data sys modul 1 data modul 2 sys data sys modul 1 pgm modul 1 data modul 2 sys modul 1 sys data sys modul 2 sys modul 2 sys modul 2

středověk minipočítače, první PC

10.01.2018 vjj 38 PC 1024 1024 RAM 640 kb 512 kb -> 640 kb -> 1 MB -> 16 MB CPU 16 bitů 20 bitů memory 1024 kb 384 383 0000 HW 0000

10.01.2018 vjj 39 adresový mód Windows 3.x reálný (max 640 kb RAM) - 8086 standardní (max 16 MB, RAM) - 80286 enhanced (max 16 MB, RAM a swap file) - 80386 16 MB = 2 24 B

10.01.2018 vjj 40 A = A + B store *, BaseReg store dataseg, DataReg... load 0x700 add 0x708 store 0x700 store *, CodeReg store 0x4000, CodeReg store dataseg, DataReg store 0x5000, DataReg...... load A load 0x700 + DataReg add B add 0x708 + DataReg store A store 0x700 + DataReg

10.01.2018 vjj 41 DOS (jediný společný) adresový prostor 1 MB offset (16 bitů) + segment (16 bitů) = adresa (20 bitů)... F F F F F F F F... F F F F F 1 0 F F E F 16 2 B 64*1024 B 64 kb 1 MB 64 kb 16 B

10.01.2018 vjj 42 kouzla a čáry RAM 15 MB 16 MB 1 MB CPU 16 bitů 20/24 bitů memory 1024 kb 1024 0000 RAM 640 kb 64 kb HW 384 383 0000

10.01.2018 vjj 43 Windows 3.x jeden společný, reálný, adresový prostor pro DOS program Windows 3.x všechny Win16 aplikace free Windows RAM 1. data 3. data 2. data 2. aplikace 3. aplikace 1. aplikace DOS

10.01.2018 vjj 44 Windows 3.x nepreemptivní multitasking: Windows + všechny aplikace = jediný proces retro: smartphones Windows Metro vlastní správa paměti i programů hadle -> lock -> adresa -> unlock lock: zamknutí celého segmentu defragmentace

10.01.2018 vjj 45 novověk 32-bitů virtual memory

10.01.2018 vjj 46 Intel 1. logická adresa: offset a (impl./expl.) registr registr = selektor = index do tabulky deskriptorů deskriptor: bázová adresa a limit segmentu 2. lineární/virtuální adresa = ( báze + offset ) 32 bitů => virtuální adresový prostor 4 GB 3. fyzická adresa: tabulky stránek

10.01.2018 vjj 47 selektor (16 bitů) segmentové registry: CS, DS, ES, SS, FS, GS 1. - logická adresa offset (32 bitů)

10.01.2018 vjj 48 bity 15-3 Selektor index do tabulky deskriptorů, 13 bitů na indexování => 8192 deskriptorů bit 2 T I = 0 -> GDT = 1 -> LDT bity 1-0 RPL Requested Privilege Level index TI RPL

10.01.2018 vjj 49 tabulky deskriptorů standardní deskriptor segmentu začátek segmentu ve virtuální paměti velikost segmentu granularita (1 byte vs. 4 kb) Descriptor Privilege Level

10.01.2018 vjj 50 tabulky deskriptorů GDT LDT IDT globální jediná pro celý systém, informace o segmentech obsahujících TSS, LDT, IDT,... lokální jedna pro každý proces, informace o jednotlivých segmentech procesu Interrupt Descriptor Table

10.01.2018 vjj 51 oddělení kódu a dat,... segmentace GDT IDT Virtuální paměť tabulky deskriptorů segment 1 segment 2

10.01.2018 vjj 53 Windows 95, 98, Me 2 GB privátního virtuálního prostoru obsahuje moduly aplikace (EXE, DLL) další 2 GB přístupné pouze pro systém: 1 GB sdíleného virtuálního prostoru (změny provedené jedním procesem se ihned projeví ve všech ostatních procesech) obsahuje systémové moduly!!! 1 GB systém (ring 0)

10.01.2018 vjj 55

10.01.2018 vjj 56 NT, W2K, XP, W2K3, Vista, W7 2 GB privátního virtuálního prostoru moduly aplikace (EXE, DLL) systémové moduly (copy-on-write) sdílená paměť 2 GB systém (ring 0) - přístupné pouze pro systém W2K a W2K3 mají možnost dělení 3:1 DataServer používá toto rozdělení standardně

Virtual Address Desctriptors 10.01.2018 vjj 60

10.01.2018 vjj 61 3. - fyzická adresa Lineární adresa rozdělena na 3 části: bity 31-22 adresář tabulek stránek (1024 tabulek) bity 21-12 tabulka stránek (1024 stránek) bity 11-0 offset (12 bitů -> stránka = 4 kb) ---------------------------------------------------- 1024 x 1024 x 4 kb = 4 GB

10.01.2018 vjj 62 stránkování virtuální adresy obsahují index (indexy) do tabulky (tabulek) stránek a offset transformace adres pomocí tabulek stránek Virtuální paměť process tabulka stránek RAM adresář tabulek stránek tabulka stránek tabulka stránek

stránkování 10.01.2018 vjj 63

10.01.2018 vjj 66 program Virtual RAM Virtual program Memory Memory EXE 1 OS EXE 2 DLL 1 Page Tables Page Tables PGM 1 1 Page 2 PGM 2 Page Tables 1 OS DLL 2 Page Tables 1 Tables 2 DLL 1 EXE 2 DLL 2 Page Tables 2 OS EXE 1

10.01.2018 vjj 67 rozdělení úkolů HW - procesor při provádění instrukce vyhledá podle tabulek stránek v RAM obsah adresy uvedené v instrukci pokud podle tabulek stránek není stránka v paměti přítomna - interrupt - výpadek stránky SW - operační systém při alokaci paměti vyhledá podle VAD vhodné místo ve virtuální paměti a podle toho upraví záznamy v tabulkách stránek, v tabulkách souborů a ve VAD pokud to je nutné, vybere nejdřív oběť podle příznaků určí, jestli je nutné stránku zapsat zpět na disk podle údajů v tabulkách souborů určuje kam a odkud se mají stránky zapisovat nebo číst

10.01.2018 vjj 70 Page Table Entry 0 P Present 1 W Write (writable on MP system) 2 O Owner (U/S) 3 Wt Write through 4 Cd Cache disabled 5 A Accessed 6 D Dirty 7 PDE large page 8 Gl Global 9... reserved 10... reserved 11... reserved (writable on MP system) 12-31 PFN Page Frame Number

TLB 10.01.2018 vjj 72

10.01.2018 vjj 74 Working Set množina virtuálních stránek každého procesu a Systému přítomných v RAM private x shared paged pool x nonpaged pool size trimming

10.01.2018 vjj 75 Nonpaged pool System Memory Pool části systémového virtuálního prostoru stále v RAM přístup k nim nemůže způsobit výpadek stránky nutné při zpracování přerušení Paged pool části systémového virtuálního prostoru mohou být vystránkovány

10.01.2018 vjj 76 Windows při HW výpadku stránky je načten rovnou celý "cluster" stránek: data - 4 stránky kód - 8 stránek výběr oběti: local NUR (clock algorithm) NT, W2K on multiprocessor systems: local FIFO

memory queues - trimming Active 1 3 4 5 Modified Standby Free Zeroed process 2 process process system system 1. dirty page removed from working set 2. clean page removed from working set 3. modified page writer 4. page deallocated 5. Zero-page thread clears page

memory queues - Page Fault Active 1 Modified Standby Free Zeroed process process 2 process 3 system 4 system 1. "soft" page fault 2. "soft" page fault 3. page read from disk or kernel allocations 4. demand zero page fault