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

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

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

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

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)

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

Petr Krajča. 25. listopad, 2011

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

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

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

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

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

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

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

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

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

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

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

Von Neumannovo schéma

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

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

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

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

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

Logická organizace paměti Josef Horálek

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

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

Pokročilé architektury počítačů

Management procesu I Mgr. Josef Horálek

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

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

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í

Procesy a vlákna (Processes and Threads)

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

Architektury počítačů

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)

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

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

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

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

Paměti a jejich organizace

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

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

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

Virtualizace. Lukáš Krahulec, KRA556

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

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

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

IT ESS II. 1. Operating Systém Fundamentals

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

Adresní mody procesoru

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.

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

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

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

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

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í,

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

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

Instalace OS, nastavení systému

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

Systém souborů (file system, FS)

Struktura programu v době běhu

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Stavba operačního systému

B4B35OSY: Operační systémy

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

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

Poslední aktualizace: 21. května 2015

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

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

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

Ukazky Zdroje:... 17

Architektura procesoru ARM

Operační systémy (OS)

2010/2011 ZS P i r i nc č py po ít č čů a SOUBOROVÝ SUBSYSTÉM

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

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

Činnost počítače po zapnutí

Ukázka zkouškové písemka OSY

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

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

Segmentovanie a stránkovanie v procesoroch Intel Pentium

Princip funkce počítače

Windows 2008 R2 - úvod. Lumír Návrat

Operační systémy MIPS, Kalisto a správa paměti

Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury

Transkript:

Memory Management 30.11.2016 vjj 1

30.11.2016 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

30.11.2016 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ěť

30.11.2016 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

30.11.2016 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

30.11.2016 vjj 6 pravěk srozumitelná jednoduchost

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

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 30.11.2016 vjj 8

30.11.2016 vjj 9 RAM processor 20 28 control register address modul 30 32 SYSTEM

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

30.11.2016 vjj 11 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

30.11.2016 vjj 12 sekce free pgm 1 free pgm 2 free

30.11.2016 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

30.11.2016 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

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

30.11.2016 vjj 16 sekce free pgm 1 free pgm 2 free

30.11.2016 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í

30.11.2016 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

30.11.2016 vjj 19 RAM processor 20 partition 1 28 partition 2 control register address modul 30 32 partition 3 SYSTEM

30.11.2016 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 30.11.2016 vjj 21

30.11.2016 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

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

30.11.2016 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

30.11.2016 vjj 25 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

30.11.2016 vjj 26 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

30.11.2016 vjj 27 stránkování knihovna - dokument - šanon - stránka knihovník tabulka 1 tabulka 2 tabulka 3 úředník 1 úředník 2 úředník 3

30.11.2016 vjj 28 stránkování na žádost sklad knihovník příručí tabulka 1 tabulka 2 tabulka 3 úředník 1 úředník 2 úředník 3

30.11.2016 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

30.11.2016 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

30.11.2016 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čů

30.11.2016 vjj 32 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

30.11.2016 vjj 34 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

30.11.2016 vjj 35 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

30.11.2016 vjj 36 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

30.11.2016 vjj 37 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

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

30.11.2016 vjj 39 Windows 3.x nepreemptivní multitasking: Windows + všechny aplikace = jediný proces vlastní správa paměti hadle <-> adresa zamykání segmentů defragmentace

30.11.2016 vjj 40 Windows 3.x jeden společný, reálný, adresový prostor pro DOS program Windows 3.x všechny Win16 aplikace retro: smartphones Windows Metro RAM 2. aplikace 3. aplikace 1. aplikace Windows DOS

30.11.2016 vjj 41 novověk 32-bitů virtual memory

30.11.2016 vjj 42 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

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

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

30.11.2016 vjj 46 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

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

30.11.2016 vjj 49 virtuální paměť disk pgm modul 1 Virtuální paměť pgm modul 1 Virtuální paměť 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

30.11.2016 vjj 50 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)

30.11.2016 vjj 51

30.11.2016 vjj 52 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 30.11.2016 vjj 56

30.11.2016 vjj 57 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

30.11.2016 vjj 58 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í 30.11.2016 vjj 59

30.11.2016 vjj 61 virtuální paměť disk pgm modul 1 Virtuální paměť pgm modul 1 Virtuální paměť pgm modul 2 RAM pgm modul 2 data modul 1 data modul 1 data modul 2 data modul 1 data modul 2 pgm modul 1 pgm modul 2 sys modul 1 sys modul 2 tabulky stránek tabulky stránek data modul 2 page directory 1 page directory 2 sys modul 1 sys modul 1 sys modul 1 sys modul 2 sys modul 2 sys modul 2

30.11.2016 vjj 62 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

30.11.2016 vjj 65 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 30.11.2016 vjj 67

30.11.2016 vjj 68 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

30.11.2016 vjj 70 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

30.11.2016 vjj 71 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