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

Podobné dokumenty
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

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

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

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

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

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

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

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

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

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

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

Memory Management vjj 1

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

Memory Management vjj 1

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

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

Pokročilé architektury počítačů

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.

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

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

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

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

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

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

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. 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ěti a jejich organizace

Management procesu I Mgr. Josef Horálek

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

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

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:

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

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ěti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

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

Architektury počítačů

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

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)

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

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

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

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

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

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

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

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Architektura počítačů

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

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

Procesy a vlákna (Processes and Threads)

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

Virtualizace. Lukáš Krahulec, KRA556

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

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

Architektury počítačů

Logická organizace paměti Josef Horálek

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

Ing. Igor Kopetschke TUL, NTI

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

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

Systém souborů (file system, FS)

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

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

Princip funkce počítače

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

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

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

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ášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

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

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í

Pokročilé architektury počítačů

Pohled do nitra mikroprocesoru Josef Horálek

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

11. Přehled prog. jazyků

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

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

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

OPS Paralelní systémy, seznam pojmů, klasifikace

p8mm/p8mm.d 21. listopadu

PB002 Základy informačních technologií

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

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

Datové struktury 2: Rozptylovací tabulky

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

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

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

TECHNICKÁ SPECIFIKACE

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

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

B4B35OSY: Operační systémy

Zobrazovací jednotky a monitory

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

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

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

Transkript:

Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II 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. 1 2 Příklad: jednoduché stránkování Virtuální paměť V 32 bitovém OS (např. Unix), jeden proces může mít 4 části, každou o velikosti (maximum) 1GB: text (instrukce kódu), data (statická a dynamická), shared text (sdílené knihovny), shared data (sdílená paměť). 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. 3 Ř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í 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). Memory Management Unit 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. 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 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. Tabulka stránek - problémy 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. 7 8 Víceúrovňová tabulka stránek Víceúrovňová tabulka stránek (2) 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ý 1MB (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 10 Víceúrovňová tabulka stránek (3) 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 a tříú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 (2) 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. 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. 13 14 Translation Lookaside Buffer (2) 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. 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á 2 52 položek. 15 16 Invertovaná tabulka stránek (2) 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. Invertovaná tabulka stránek (3) Invertovaná tabulka stránek s obvykle používá 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í tabulky. 17 18

Virtuální paměť vs. 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ší. 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í. 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é. 19 20 Jednoduchá segmentace Logická adresa se skládá ze dvou částí: číslo segmentu a offsetu. Segmentace je obvykle viditelná pro programátora. Segmentace se stránkováním Stránkování Je transparentní pro programátora. Eliminuje externí fragmentaci a poskytuje efektivní využití hlavní paměti. Segmentace 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á z stejně velkých stránek, které jsou stejně velké jak rámce v hlavní paměti. 21 22 Segmentace se stránkováním (2) Segmentace se stránkováním (3) 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. 23 24

Segmentace se stránkováním (4) Segmentace se stránkováním (5) 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. 25 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ů, 26