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



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

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

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

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

Pokročilé architektury počítačů

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

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

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

Systém adresace paměti

Memory Management vjj 1

Memory Management vjj 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Architektury počítačů

Architektura počítače

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

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

PROCESOR. Typy procesorů

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

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

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

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

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

Virtualizace. Lukáš Krahulec, KRA556

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:

Management procesu I Mgr. Josef Horálek

Architektury CISC a RISC, uplatnění v personálních počítačích

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

Architektury počítačů

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

PROTOKOL O LABORATORNÍM CVIČENÍ

Úvod do architektur personálních počítačů


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

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

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.

Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry.

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Procesor. Procesor FPU ALU. Řadič mikrokód

Pojem architektura je převzat z jiného oboru lidské činnosti, než počítače.

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)

Management procesu II Mgr. Josef Horálek

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

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

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

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

Technické prostředky počítačové techniky

Principy činnosti sběrnic

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

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10

Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností, budoucností a hlavními parametry.

V 70. letech výzkumy četnosti výskytu instrukcí ukázaly, že programátoři a

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

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou.

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

Architektura počítačů

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

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

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

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í

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

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

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

Logická organizace paměti Josef Horálek

p8mm/p8mm.d 21. listopadu

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

Vstup-výstup Input-Output Přehled a obsluha

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Výměna Databázového serveru MS SQL

Alfanumerické displeje

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

Technická specifikace ČÁST 1. Místo plnění: PČR Kriminalistický ústav Praha, Bartolomějská 10, Praha 1

a co je operační systém?

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

Pokročilé architektury počítačů

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

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

éra elektrického proudu a počítačů 3. generace

Logická struktura pevného disku

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

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

Operační paměti počítačů PC

Práce s velkými sestavami

Zobrazovací jednotky a monitory

Transkript:

Operační systémy Přednáška 8: Správa paměti II 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

Příklad: jednoduché stránkování 3

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. Ř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). 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 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 - 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. 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ý 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

Víceúrovňová tabulka stránek (2) 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 vram, 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. 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 (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. 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á 2 52 položek. 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. 17

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. 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ší. 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

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í. 20

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

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. 22

Segmentace se stránkováním (2) 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

Segmentace se stránkováním (3) 24

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