Petr Krajča. 25. listopad, 2011

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

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. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

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

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

Systém adresace paměti

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

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

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

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

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

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

Ú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 2. Přednáška číslo 2. Přidělování paměti

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

Memory Management vjj 1

Memory Management vjj 1

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

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

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

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

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.

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)

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

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

Management procesu I Mgr. Josef Horálek

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

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

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

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

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

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

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

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

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

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

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

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

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

Paměti a jejich organizace

Procesy a vlákna (Processes and Threads)

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

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

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

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Logická organizace paměti Josef Horálek

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)

Princip funkce počítače

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

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

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

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

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

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

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í

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

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

Architektury počítačů a procesorů

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

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

Řízení IO přenosů DMA řadičem

Ing. Igor Kopetschke TUL, NTI

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

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

Systém souborů (file system, FS)

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

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

Pohled do nitra mikroprocesoru Josef Horálek

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

Architektury počítačů

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

p8mm/p8mm.d 21. listopadu

Ukázka zkouškové písemka OSY

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

Paměti cache. Cache může být realizována softwarově nebo hardwarově.

Adresní mody procesoru

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

Stavba operačního systému

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

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

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

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

Správy cache. Martin Žádník. Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, Brno

Systém souborů Mgr. Josef Horálek

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

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

Architektura procesoru ARM

B4B35OSY: Operační systémy

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

Virtualizace. Lukáš Krahulec, KRA556

DUM č. 10 v sadě. 31. Inf-7 Technické vybavení počítačů

Činnost počítače po zapnutí

Platforma x64 a přechod na 64 bitů. Aleš Keprt Univerzita Palackého, Olomouc

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

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

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

Transkript:

Operační systémy Pamět Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 25. listopad, 2011 Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 1 / 35

Operační pamet zásadní část počítače uložení kódu a dat běžících procesů i operačního systému přístup k zařízením (DMA) virtuální pamět umožňuje např. přístup k souborovému systému z HW pohledu může být operační pamět realizovaná různými způsoby (DRAM, SRAM, (EEP)ROM, ale i HDD, SSD, flash paměti) přístup CPU k paměti nemusí být přímočarý (L1, L2 a L3 cache) pro jednoduchost budeme HW stránku věci zanedbávat Ulrich Drepper: What every programmer should know about memory (http://lwn.net/articles/250967/) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 2 / 35

Požadavky na správu paměti (Memory Managment) evidence prostoru volného a přiděleného procesům přidělování a uvolňování paměti procesů přesunutí (přiděleného prostoru) program by neměl být závislý na místě, kde se v paměti nachází (nutné k umožnění swapování) ochrana (přiděleného prostoru) jednotlivé procesy by měly být izolovány sdílení pokud je to žádoucí, mělo by být možné sdílet některé části paměti mezi procesy (2 spuštěný stejný program) logická organizace pamět počítače (spojitý prostor,,,sekvence bytů ) vs. typický program skládájící se z modulů (navíc některých jen pro čtení nebo ke spoustění) fyzická organizace pamět může mít více částí/úrovní (RAM, disk); program jako takový se nemusí vlézt do dostupné paměti RAM Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 3 / 35

Adresní prostory v současných OS existuje několik různých nezávislých adresních prostorů, způsobů číslování pamět ových buněk každý proces by měl mít vlastní pamět ový prostor (izolace) různá zařízení mají odlišné adresní prostory ve spolupráci s hardwarem dochází k mapování fyzické paměti do adresního prostoru procesu např. grafická pamět může být namapována od adresy 0xD0000000 Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 4 / 35

Rozdělení paměti na souvislé bloky pevné velikosti předpokládejme, že OS je umístěn v nějaké části paměti nejjednodušší přístup je rozdělit pamět na souvislé bloky stejné velikosit (např. 8MB) pokud program potřebuje víc paměti, musí se sám postarat o odsun/načtení dat do sekundární paměti pokud program potřebuje míň paměti, dochází k neefektivnímu využití paměti tzv. vnitřní fragmentaci výhodou je, že lze velice jednoduše vybrat umístění kam načíst proces problém přesunutí relativní adresování v IBM OS/360 (historická záležitost) vylepšení: rozdělit pamět na bloky různých velikostí (např. 2, 4, 6, 8, 12 a 16 MB) jedna vs. více front (každá fronta pro procesy, které se vlezou do dané paměti) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 5 / 35

Přidělování paměti po blocích proměnlivé velikosti každý program dostane k dispozici tolik paměti kolik potřebuje sníží se tak míra vnitřní fragmentace po čase dochází k vnější fragmentaci (pamět je volná, ale je rozkouskovaná, i.e., je problém přidělit větší blok) (viz Stallings p. 311) strategie přiřazování paměti first fit začne prohledávat pamět od začátku a vezme první vhodný blok next fit začne prohledávat pamět od místa kam se podařilo umístit blok naposledy best fit přiřadí nejmenší vyhovující blok (v paměti jsou nevyužité bloky, ale jsou co nejmenší) worst fit vezme největší blok (v paměti nejsou malé nevyužité bloky, ale nelze spustit větší program) informace o volném místu lze ukládat do bitmap nebo seznamů volného místa v MS-DOS (historická záležitost) vylepšení: zahuštění (compaction) procesy jsou v paměti přesunuty tak, Petr Krajča že vznikne (UP) souvislý blok KMI/YOS: volného Přednáškamísta IV. (časově náročná 25. listopad, operace) 2011 6 / 35

Stránkování adresní (logický) prostor procesu je rozdělen na menší úseky stránky (pages) fyzická pamět je rozdělena na úseky stejné délky rámce (frames, page frames) provádí se mapování logické paměti na fyzickou procesy už nemusí být umístěny v souvislých blocích paměti výpočet fyzické adresy musí být implementovaný hardwarově (efektivita) CPU si udržuje stránkovací tabulku logická adresa má dvě části: pd, kde p je číslo stránky a d je offset fyzicka adresa vznikne jako fd, kde f je číslo rámce v tabulce stránek příslušného stránce p viz Keprt 89 velikost stránek je většinou mocnina 2 (typicky 4 KB) jednoduchý přesun na disk Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 7 / 35

Adresář stránek uvažujme velikost stránky 4 KB a velikost adresního prostoru 32 bitů pak velikost adresní tabulky je 1 milion záznamů je nepraktické udržovat tak velkou tabulku (obzvlášt pro každý proces) používá se víceúrovňová tabulka systém obsahuje více tabulek část logické adresy udává tabulku, další část index v tabulce a další část offset např. pro 4KB stránky může být toto rozložení 10-10-12 bitů viz Tanenbaum 208 tzn. systém k adresaci používá 1024 tabulek po 1024 záznamech nevyužité tabulky mohou být prázdné v praxi se používají i tří a čtyřúrovňové tabulky Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 8 / 35

TLB: Translation Lookaside Buffer cache procesoru obsahující hodně používané části stránkovacích tabulek pro danou stránku uchovává adresu rámce pokud je adresa v cache (cache hit) je hodnota vrácena velice rychle (cca 1 hodinový cyklus) pokud hodnota není v cache (cache miss) načtení adresy trvá delší dobu (10-100 cyklů), typický miss rate < 1% průměrný přístup k zjištění rámce je 1.5 hodinového cyklu princip lokality je vhodné programovat tak, aby data ke kterým se přistupuje byly na jednom místě (lokální proměnné na zásobníku) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 9 / 35

Segmentace pamět je rozdělena na několik segmentů (např. kód, data, zásobník) speciální případ přídělování souvislých bloků paměti stránkování je obvykle pro programátora nerozeznatelné naproti tomu segmentace umožňuje rozdělit program do logických celků (kód, data) při použití segmentace a stránkování programy nepracují přímo s lineární adresou používají adresu ve tvaru segment + offset a ta se až převádí na fyzickou adresu pomocí stránkování ochrana paměti přes záčatek a délku segmentu + oprávnění Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 10 / 35

Copy-on-Write (COW) může být užitečné sdílet pamět (komunikace, úspora místa) dva stejné programy/knihovny v paměti stránky více procesů jsou navázány na jeden rámec daná stránka má nastavený příznak CoW dojde-li k pokusu o zápis, vznikne vyjímka a procesu je vytvořena kopie rámce bude-li na rámec s příznakem CoW odkazovat jenom jedna stránka, příznak se odstraní fork() vytvoří identickou kopii procesu; data jsou sice izolovaná, ale je možné sdílet kód úspora místa; úspora strojového času (není potřeba vytvářet kopie stránek/rámců); nízká penalizace pokud stránky přepíšeme virtuální pamět umožňuje další optimalizace (mapování souborů do paměti, etc.) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 11 / 35

Virtuální pamět : motivace pamet RAM je relativně drahá = nemusí vždy dostačovat aktuálně používaná data (např. instrukce) musí být v RAM, nepoužívaná data nemusí (velké programy = nepoužívané funkce) je vhodné rozšířit primární pamět (RAM) o sekundární (např. HDD) zvětšením dostupné paměti je možné zjednodušit vývoj aplikací (není potřeba se omezovat v množství použité paměti) sekundární pamět bývá řádově pomalejší k efektivní implementaci je potřeba spolupráce HW (MMU) a OS z pohledu aplikace musí být přístup k paměti transparentní virtuální pamět (VM) je součástí soudobých OS (swapování) Windows NT stránkovací soubor (pagefile.sys) Linux swap partition (ale může být i soubor) bezpečnost dat v sekundární paměti? (např. po vypnutí počítače) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 12 / 35

Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 13 / 35

Inicializace procesu a jeho běh načtení celého procesu do primární paměti (může být neefektivní) demand paging (stránkování na žádost): do paměti se načtou jen data (stránky), která jsou potřeba (případně související = sekvenční čtení; prefetch) Přístup k paměti systém si eviduje, které stránky jsou v paměti a které ne (HW, stránkovací tabulka) přístupu na stránku, která není v primární paměti = přerušení výpadek stránky (page fault) přerušení načte stránku do paměti, aktualizuje stránkovací tabulku je-li primární pamět plná, je potřeba nějakou stránku přesunout do sekundarní paměti (odswapovat) pokud je stránka odsouvaná stránka sdílená (např. CoW), je potřeba aktualizovat všechny tabulky, kde se vyskytuje Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 14 / 35

Vlastnosti stránek Rezervovaná stránka existuje v adresním prostoru, ale nezapisovalo se do ní každá stránka je nejdřív rezervovaná vhodné pro velká pole ke kterým se přistupuje postupně zásobník Komitovaná stránka (Commited) stránka má rámec v primární nebo sekundární paměti musí řešit jádro pamět je často současně komitovaná i rezervovaná Další vlastnosti dirty bit 0 pokud má stránka přesnou kopii v sekundární paměti; 1 nastaveno při změně (nutná podpora HW) present/absent bit přítomnost stránky v paměti (HW, nutné k detekci výpadků stránek) mohou mít přístupová práva (NX bit) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 15 / 35

Výměna stránek pokud není stránka v primární paměti, načte stránku do ní není-li volný rámec v primární paměti, je potřeba odsunout nějakou stránku do sekundární paměti získáme volný rámec v sekundární paměti (pokud není volný rámec v sekundární paměti, najde se takový, který má kopii v primární paměti, nastáví se dirty bit a daný rámec se použije) vybere se,,obět stránka v primární paměti, která bude uvolněna pokud má stránka nastevený dirty bit, překopíruje se obsah rámce do sekundární paměti načte se do primární paměti stránka ze sekundární zopakuje instrukci, která vyvolala page fault některé stránky je možne zamknout, aby nebyly odswapovány (nutné pro jádro, rámce sdílené s HW) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 16 / 35

Výběr oběti (1/3) hledáme stránku, která nebude v budoucnu použitá (případně v co nejvzdálenější budoucnosti) FIFO velice jednoduchý algoritmus stačí udržovat frontu stránek při načtení nové stránky je stránka zařazena na konec fronty pokud je potřeba uvolnit stránku bere se první z fronty nevýhoda odstraní i často užívané stránky Beladyho anomálie za určitých okolností může zvětšení paměti znamenat více výpadků stránek Least Frequently Used (LFU) málo používané stránky nebudou potřeba problém se stránkami, které byly nějaký čas intenzivně využívány (např. inicilizace) Most Frequently Used (MFU) právě načtené stránky mají malý počet přístupů Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 17 / 35

Least Recently Used (LRU) jako obět je zvolena stránka, která nebyla nejdýl používaná je potřeba evidovat, kdy bylo ke stránce naposledy přistoupeno řešení: 1 počítadlo v procesoru, inkrementované při každém přístupu a ukládané do tabulky stránek 2,,zásobník stránek naposledy použitá stránka se přesune navrchol nutná podpora hardwaru LRU (přibližná varianta) každá stránka má přístupový bit (reference bit) nastavený na 1 pokud se ke stránce přistupovalo na počátku se nastaví reference bit na 0 v případě hledání oběti je možné určit, které stránky se nepoužívaly varianta možné mít několik přístupovách bitů nastavuje se nejvyšší bit jednou za čas se bity posunou doprava přehled o používání stránky = bity jako neznaménkové číslo = nejmenší = obět Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 18 / 35

Výběr oběti (3/3) Algoritmus druhé šance založen na FIFO pokud má stránka ve frontě nastavený přístupový bit, je nastaven na nula a stránka zařazena nakonec fronty pokud nemá, je vybrána jako obět lze vylepšit uvážením ještě dirty bitu Buffer volných rámců (optimalizace) proces si udržuje seznam volných rámců přesun oběti je možné udělat se zpožděním případně pokud je počítač nevytížený je možné ukládat stránky s dirty bitem na disk a připravit se na výpadek (nemusí být vždy dobré) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 19 / 35

Problémy stránkování Minimální počet rámců každý proces potřebuje určité množství rámců (např. movsd potřebuje v extrémním případě 6 rámců) stránkovací tabulka(y) musí být opět v rámci přidělování rámců procesům rovnoměrně podle velikosti adresního prostoru podle priority v případě výpadků stránek podle priority (globální alokace rámců) pokud počet rámců klesne pod nutnou mez, je potřeba celý proces odsounout z paměti hrozí thrashing (proces začne odsouvat stránky z paměti, které bude potřebovat) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 20 / 35

Velikost stránek stránky mají velikost 2 n, typicky v intervalu 2 12 2 22, i.e., 4 KB 4 MB závisí na HW architektuře (může být i víc nebo míň) z pohledu fragmentace je vhodnější mít stránky menší více menších stránek zabírá místo v TLB = časté cache miss při přesunu do swapu může být velká stránka výhodnější (přístupová doba) některé systémy umožňují používat různé velikosti Windows NT 5.1 & Solaris velké stránky pro jádro malé pro uživatelský prostor Windows Vista a novejší large pages Linux (hugetblfs) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 21 / 35

Mapování souborů a I/O do paměti Soubory operace open, read, write mohou být pomalé (systémové volání) mechanismus, který je použitý pro práci se sekundární paměti, lze použít pro práci se soubory soubor se načítá do paměti po blocích velikosti stránky podle jednotlivých přístupů (demand paging) k souboru se přistupuje pomocí operací s pamětí (přiřazení, memcpy,... ) data se nemusí zapisovat okamžitě (ale až s odmapováním stránky/souboru) více procesů může sdílet jeden soubor = sdílená pamět (WinNT) možnost použít copy-on-write I/O lze namapovat zařízení do paměti (specifické oblasti) a přistupovat k němu jako k paměti pohodlný přístup, rychlý přístup např. grafické karty Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 22 / 35

Typy adres na procesorech i386 kombinují segmentaci i stránkování logická adresa používá ji aplikace; 48 bitů (16 selektor segmentu; 32 offset); segment je často implicitní lineární (virtuální) adresa v adresním prostoru procesu (32 bitů) fyzická adresa,,číslo bytu přímo v primární paměti (32 bitů, s PAE 36); sdílená dalšími HW zařízeními; (nevyužité adresy mohou mít další použití, např. pro SWAP) PAE: Physical Address Extenstion umožňuje rozšířit využitelnou pamět RAM z 4GB na 64GB (Pentium Pro a novější) přesměruje část adresního prostoru do jiné části fyzické paměti změna formátu segmentových deskriptorů změna na úrovni OS (případně ovladačů); bez úprav (AWE) jednotlivé procesy stále omezeny na 4GB přidává podporu pro NX bit Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 23 / 35

I386: Segmentace (1/2) pamět je možné rozdělit na segmenty (kód, data, zásobník, etc.) pro každý segment lze nastavit oprávnění (ochrana paměti) segmenty jsou popsány pomocí deskriptorů 8 B záznam báze limit (velikost segmentu) požadovaná úroveň oprávnění (ring 0-4) deskriptory segmentů uloženy v Global Descriptor Table (GDT) sdílená všemi procesy Local Descriptor Table (LDT) každý proces má vlastní každá může mít až 8192 záznamů přístupné přes registry GDTR, LDTR první záznam v GDT,,null deskriptor Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 24 / 35

I386: Segmentace (2/2) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 25 / 35

I386: Překlad adres I. (segmentace) logická adresa = linární adresa (segmentace) ověří se oprávnění a limit (přístup za hranici segmentu) = neoprávněný přístup báze segmentu je sečtena s offsetem = lineární Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 26 / 35

I386: Překlad adres II. (stránkování) linární adresa = fyzická adresa standardní stránka/rámec: 4 KB hierarchická struktura adresář stránkovacích tabulek (Page Directory) adresář stránek (Page Tables) offset adresáře mají velikost jedné stránky, každá položka 4B = 1024 záznamů lineární adresa rozdělana na 10 + 10 + 12 bitů (PDI + PTI + offset) maximální kapacita 4 GB adresa PDT v CR3 (zarovnané na celé stránky) nastavením příznaku v PDT (pro adresu rámce se používá jen 20b), lze obejít přepočet přes PT a používat stránky velikosti 4MB (zbytek adresy je offset) velikost stránek lze kombinovat Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 27 / 35

I386: Překlad adres III. (stránkování 4 KB stránka) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 28 / 35

I386: Překlad adres IV. (stránkování 4 MB stránka) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 29 / 35

I386: Překlad adres IV. (PAE) od Pentium Pro každá tabulka 4KB, ale velikost záznamu 8B = 512 záznamů stránkování trojúrovňové adresa rozdělena na 2 + 9 + 9 + 12 bitů 2b ukazatel na adresář tabulek stránek (Page Directory Pointer Index) 9b ukazatel v adresáři tabulek stránek 9b ukazatel v tabulce stránek 12b offset velké stránky 2MB = offset 21 bitů potenciální rozšíření Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 30 / 35

I386: Překlad adres VI. (PAE 4 KB stránka) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 31 / 35

AMD64: Typy adres segmenty existují, ale nepoužívají se k adresaci, pouze ke kontrole oprávnění deskriptor kódového segmentu se používá k přechodu mezi 32- a 64bitovým režimem současné procesory AMD64: 40bitové fyzické adresy (max. 52; způsob stránkování) 48bitové logické adresy (max. 64; velikost registrů) možnost rozšíření = kanonické adresy nejvyšší platný bit je okopírován do vyšších bitů děĺı pamět na tři bloky (viz Keprt str. 119) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 32 / 35

AMD64: Stránkování zavedena čtyřúrovňová hierarchie záznamy v tabulkách stránek mají 8 B při 4KB stránkách = 4 9 + 12 = 48 adresovatelných bitů pro 2MB stránky vynechaná jednoúroveň, možnost použít 4 rezervované bity = 52 bitů nepoužité bity: nejvyšší NX bit, ostatní k dispozici OS Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 33 / 35

AMD64: Ochrana paměti I. (segmenty) ochrana paměti na úrovni segmentů je zaplá a nejde vypnout (ale jde nastavit, aby nebyla účinná) prováděné kontroly kontrola typu segmentu (některé segmenty nebo segmentové registry můžou být použité jenom určitým způsobem) kontrola velikosti segmentu (limitu), i.e., jestli program našahá za hranice segmentu kontrola oprávnění omezení adresovatelné domény (omezení přístupu jen k žádoucím segmentům) omezení vstupních bodů procedur (brány) omezení instrukční sady AMD64 v long mode neprovádí některé kontroly (báze a limit jsou ignorovány) Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 34 / 35

Ochrana paměti II. (stránkování) stránkování funguje souběžně se segmentací bit pro systémové stránky (zákaz přístupu z ring 3) = volání funkce OS (přes bránu) bit pro zákaz zápisu AMD64 + PAE mají NX bit (zákaz spouštění) = viry možnost nastavit bity na jednotlivých stránkách i adresářích = efektivnější Petr Krajča (UP) KMI/YOS: Přednáška IV. 25. listopad, 2011 35 / 35