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

Podobné dokumenty
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. Přednáška 8: Správa paměti II

Systém adresace paměti

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

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

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

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

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

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

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

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

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

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

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

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

Memory Management vjj 1

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

Pokročilé architektury počítačů

Memory Management vjj 1

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

Petr Krajča. 25. listopad, 2011

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

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

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

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

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.

Architektury VLIW M. Skrbek a I. Šimeček

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

Paměti a jejich organizace

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

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

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

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

Architektury počítačů

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Management procesu I Mgr. Josef Horálek

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

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

požadovan adované velikosti a vlastností Interpretace adresy POT POT

Datové struktury 2: Rozptylovací tabulky

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

Architektura počítačů

Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

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

Přerušovací systém s prioritním řetězem

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

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

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)

Architektury počítačů

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

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

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

Základní uspořádání pamětí MCU

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

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Virtualizace. Lukáš Krahulec, KRA556

1. Databázové systémy (MP leden 2010)

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

Operační systémy 1. Přednáška číslo Struktura odkládacích zařízení

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í

Počítač jako prostředek řízení. Struktura a organizace počítače

Operační systémy 2. Struktura odkládacích zařízení Přednáška číslo 10

Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.

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

Logická organizace paměti Josef Horálek

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

Ing. Igor Kopetschke TUL, NTI

Základní pojmy informačních technologií

TECHNICKÁ SPECIFIKACE

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT

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

B4B35OSY: Operační systémy

Systém souborů (file system, FS)

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

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

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

Procesy a vlákna (Processes and Threads)

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

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

DIPLOMOVÁ PRÁCE. Jiří Tlach Moderní operační systém bez MMU

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

p8mm/p8mm.d 21. listopadu

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

Adresování paměti. Adresní prostor. Adresní módy (v instrukcích) T.Mainzer

Princip funkce počítače

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

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

PROCESOR. Typy procesorů

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Pokročilé architektury počítačů

Osobní počítač. Zpracoval: ict Aktualizace:

MSP 430F1611. Jiří Kašpar. Charakteristika

Zobrazovací jednotky a monitory

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

Pokročilé architektury počítačů

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

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016

Transkript:

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 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti 1

Jednoduché stránkování Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti nazývané stránky (pages) Velikost rámce a stránky je stejná. Celý program je nahrán do volných rámců hlavní paměti. OS si musí pamatovat rámce přidělené jednotlivým procesům (např. pomocí tabulky stránek, ) OS si musí pamatovat volné rámce v hlavní paměti. 2

Jednoduché stránkování 3

Virtuální paměť V 32 bitovém OS, jeden proces může adresovat až 4GB. Problém Pokud OS umožňuje, aby bylo současně spuštěno až 64k procesů, pak bychom potřebovali dohromady 256 TB paměti. Řešení Virtuální paměť = proces je automaticky (pomocí OS) rozdělen na menší kousky. Ve fyzické paměti jsou pouze kousky aktuálně používané, zbytek procesu je na disku. 4

Virtuální paměť se stránkováním Většinou je virtuální paměť kombinována se stránkování. Princip Proces používá adresy, kterým se říká virtuální adresy a které tvoří virtuální adresový prostor. Virtuální adresový prostor je rozdělen na stejně velké souvislé úseky nazývané virtuální stránky (virtual pages) (typicky 4KB). Korespondující úseky ve fyzické paměti jsou nazývány rámce stránek (page frames). V hlavní paměti jsou pouze stránky aktuálně používané. 5

Memory Management Unit (MMU) Proces adresuje paměť pomocí virtuálních adres (např. MOV reg, va). Memory Management Unit (MMU) překládá virtuální adresu na fyzickou. Výpadek stránky (Page fault) Pokud není virtuální stránka ve fyzické paměti, MMU způsobí, aby CPU požádalo OS o nahrání příslušné stránky do fyzické paměti. OS nejdříve definuje, který rámec fyzické paměti je třeba uvolnit, a pak do něj nahraje obsah požadované virtuální stránky z disku. 6

Tabulka stránek MMU: číslo_fyzického_rámce = f (číslo_virtuální_stránky) Zobrazení f() může být implementováno pomocí tabulky stránek. 7

Tabulka stránek Tabulka stránek může být extrémně velká. 32-bitový virtuální adresový prostor bude mít při velikosti stránek 4-KB jeden milion stránek. Tabulka stránek pak bude mít jeden milion položek. Každý proces potřebuje svojí vlastní tabulku stránek (protože má svůj vlastní virtuální adresový prostor). Překlad adres by měl být velmi rychlý. Překlad virtuální adresy na fyzickou musí být prováděn při každém přístupu do paměti. 8

Víceúrovňová tabulka stránek Proces obvykle používá pouze podmnožinu adres svého virtuálního procesu. Stačilo by mít v paměti pouze ty položky z tabulky stránek, které bude OS potřebovat při překladu. Příklad: Mějme 32-bitový virtuální adresový prostor s 4KB stránkami. Předpokládejme, že proces bude skutečně používat pouze 12MB: dolní 4MB paměti pro kód programu, následující 4MB pro data, horní 4MB pro zásobník. Ačkoli proces má virtuální adresový prostor veliký 4GB (tzn. 1M položek v tabulce stránek), stačí mít pouze čtyři tabulky stránek, každou mající 1K položek: top-level page table + program code page table + data page table + stack page table. 9

Víceúrovňová tabulka stránek 10

Víceúrovňová tabulka stránek Present/absent bity 1021 položek v top-level page table jsou nastaveny na 0, protože virtuální stránky s nimi spojeny nebyly zatím používány. Při pokusu přístupu k těmto stránkám dojde k výpadku stránky a potřebné informace budou nahrány do paměti. Obecně lze tabulku stránek rozdělit do libovolného počtu úrovní. V praxi se z důvodu rychlosti překladu adres používají pouze dvou, tří a čtyř-úrovňové tabulky. Většina OS používá demand paging. Když je proces spuštěn, nahrají se do RAM pouze první stránky kódu a první stránky dat. Ostatní stránky budou nahrány do RAM až v okamžiku, kdy budou potřeba. Výhody: malá velikost tabulek v paměti. Nevýhody: pomalejší překlad. 11

Položka v tabulce stránek Její struktura je závislá na architektuře CPU, ale obvykle obsahuje: Page frame number Present/absent bit 1 stránka je v RAM, 0 stránka není v RAM přístup na stránku způsobí page fault. Protection bits: 3 bits - reading, writing, executing. Modified bit Když je obsah stránky modifikován, HW automaticky nastaví bit na 1. Když OS uvolňuje rámec stránky: musí obsah stránky uložit na disk pokud je Modified bit roven 1. jinak může nahrát do rámce rovnou novou stránku. 12

Položka v tabulce stránek Referenced bit Kdykoliv je ke stránce přistupováno (pro čtení nebo zápis), je tento bit nastaven na 1. Hodnota tohoto bitu je používána algoritmy pro náhradu stránek. Caching disabled bit Je důležitý pro stránky, které jsou mapovány na registry periferních zařízení. Pokud čekáme na V/V (např. v cyklu), musíme použít hodnoty z fyzických HW registrů, nikoliv (starý) obsah v paměti. 13

Translation Lookaside Buffer (TLB) Většina programů provádí velký počet přístupů k malému počtu stránek. Translation Lookaside Buffer (TLB) Je organizovaný jako asociativní paměť. Obsahuje posledně používané položky tabulek stránek. TLB je obvykle uvnitř MMU a obsahuje desítky položek. 14

Translation Lookaside Buffer (TLB) Při překladu virtuální adresy(va), MMU nejdříve hledá informaci o VA v TLB. Hledávání v TLB probíhá paralelně. Pokud informace o VA existuje v TLB, MMU použije tuto informaci pro překlad VA a nemusí hledat v tabulce stránek. Pokud informace v TLB není, MMU vyvolá TLB fault. OS pak musí načíst informaci z tabulky stránek. TLB fault lze minimalizovat použitím větších stránek. 15

Invertovaná tabulka stránek V klasické tabulce stránek číslo virtuální stránky slouží jako index do tabulky. V 32 bitových počítačích, každý proces má 32 bitovou virtuální adresu. Při velikosti stránky 4KB, tabulka stránek každého procesu má 1M položek. Se 4B na každou položku, tabulka stránek zabírá 4MB. V 64 bitových počítačích se 64 bitovou virtuální adresou je situace ještě více zřejmější. Při 4KB stránkách, tabulka stránek má 252 položek. 16

Invertovaná tabulka stránek Ačkoliv virtuální adresový prostor je obrovský, fyzický prostor RAM je stále malý. Tabulka stránek muže být organizována kolem fyzické paměti. V invertované tabulce stránek, i-th položka obsahuje informaci o virtuální stránce, která je nahrána v rámci i. 17

Invertovaná tabulka stránek Invertovanou tabulku stránek lze použít společně s TLB. Při nalezení v TLB, se invertovaná tabulka nepoužije. Jinak musíme hledat v invertované tabulce stránek. Sekvenční hledání v tabulce může být urychleno pomocí rozptylovací funkce. 18

Příklad: 32 bit OS a 4GB fyzické paměti 19

Příklad: MMU x86 20

Příklad: MMU x86 PAE 21

Příklad: MMU AMD64 22

Virtuální paměť x Segmentace Virtuální paměť Proces má jednorozměrný virtuální adresový prostor. Pro některé problémy, dva nebo více oddělených adresových prostorů (segmentů) je vhodnější. Segmentace Virtuální adresový prostor procesu je rozdělen na několik segmentů. Segment je lineární posloupnost adres, od 0 do nějaké maximální adresy. Různé segmenty mohou mít různé délky, délka segmentu se může měnit během výpočtu. Různé segmenty mohou mít rozdílnou ochranu a mohou být sdílené. 23

Jednoduchá segmentace Příklad: Překladač si udržuje několik tabulek a datových struktur, jejichž velikost se během překladu dynamicky mění. 24

Jednoduchá segmentace Logická adresa se skládá ze dvou částí číslo segmentu offsetu Segmentace je obvykle viditelná pro programátora. 25

Segmentace se stránkováním Stránkování Eliminuje externí fragmentaci a poskytuje efektivní využití hlavní paměti. Segmentace Je transparentní pro programátora. Je viditelná pro programátora. Je vhodná pro dynamicky rostoucí datové struktury, modularitu, a podporuje sdílení a ochranu. Segmentace se stránkováním Virtuální adresový prostor je rozdělen na několik segmentů. Každý segment se skládá ze stejně velkých stránek, které jsou stejně velké jak rámce v hlavní paměti. 26

Segmentace se stránkováním Z hlediska programátora Virtuální adresa se skládá z čísla segmentu a offsetu uvnitř segmentu. Z hlediska systému Offset segmentu se skládá z čísla stránky a offsetu uvnitř stránky. 27

Segmentace se stránkováním 28

Segmentace se stránkováním Segment base ukazuje na začátek tabulky stránek pro daný segment. Other control bits v tabulce segmentů slouží pro definici přístupových práv a sdílení mezi procesy. 29

Segmentace se stránkováním Segmentace se stránkováním se může používat společně s TLB. Při překladu virtuální adresy: MMU se nejdříve podívá zda není informace v TLB. Pokud ano, použije pro překlad číslo rámce z TLB. Jinak MMU hledá v tabulce segmentů, 30