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

Podobne dokumenty
Aproximace funkcí 1,00 0,841 1,10 0,864 1,20 0,885. Body proložíme lomenou čarou.

Reprezentace dat. BI-PA1 Programování a Algoritmizace I. Ladislav Vagner

PA152,Implementace databázových systémů 2 / 25

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška II. 6. říjen, / 26

1 Soustava lineárních rovnic

Kristýna Kuncová. Matematika B2

Powyższe reguły to tylko jedna z wersji gry. Istnieje wiele innych wariantów, można też ustalać własne zasady. Miłej zabawy!

Matematika 2, vzorová písemka 1

Úvodní informace. 18. února 2019

Kristýna Kuncová. Matematika B2 18/19

Internet a zdroje. (Zdroje na Internetu) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17.

(1) Derivace. Kristýna Kuncová. Matematika B2 17/18. Kristýna Kuncová (1) Derivace 1 / 35

Obsah Atributová tabulka Atributové dotazy. GIS1-2. cvičení. ČVUT v Praze, Fakulta stavební, katedra mapování a kartografie

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Mocninné řady 1 / 18

Necht je funkce f spojitá v intervalu a, b a má derivaci v (a, b). Pak existuje bod ξ (a, b) tak, že f(b) f(a) b a. Geometricky

MATEMATIKA 3. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Elementární funkce. Edita Pelantová. únor FJFI, ČVUT v Praze. katedra matematiky, FJFI, ČVUT v Praze

Numerické metody minimalizace

Numerické metody 8. května FJFI ČVUT v Praze

TGH01 - Algoritmizace

Zásuvný modul QGISu. QGIS plugin pro práci s katastrálními daty

NÁVOD K POUŽITÍ KEZELÉSI KÉZIKÖNYV INSTRUKCJA OBSŁUGI NÁVOD NA POUŽÍVANIE. Česky. Magyar. Polski. Slovensky

Edita Pelantová, katedra matematiky / 16

ggplot2 Efektní vizualizace dat v prostředí jazyka R Martin Golasowski 8. prosince 2016

Automatové modely. Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

K SAMOSTATNÉ MODULOVÉ SCHODY MONTÁŽI. asta

TGH01 - Algoritmizace

POLIURETANOWE SPRĘŻYNY NACISKOWE. POLYURETHANOVÉ TLAČNÉ PRUŽINY

Co nám prozradí derivace? 21. listopadu 2018

Obsah. Zobrazení na osmistěn. 1 Zobrazení sféry po částech - obecné vlastnosti 2 Zobrazení na pravidelný konvexní mnohostěn

Inverzní Z-transformace

LBF/ZUB22 Programové vybavení ordinace zubního lékaře. Mgr. Markéta Trnečková, Ph.D. Palacký University, Olomouc

Logika V. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

Linea rnı (ne)za vislost

kontaktní modely (Winklerův, Pasternakův)

Zarządzanie zasobami pamięci

TVL UMP2 NÁVOD K POUŽITÍ NÁVOD NA POUŽITIE

TVL LED NÁVOD K POUŽITÍ NÁVOD NA POUŽITIE

Vlastnosti. Příprava. Czech - 2 -

Kapitola 4: Soustavy diferenciálních rovnic 1. řádu

Register and win!

podle přednášky doc. Eduarda Fuchse 16. prosince 2010

Współpraca procesora ColdFire z pamięcią

Funkce zadané implicitně. 4. března 2019

Podstawy. Pamięć wirtualna. (demand paging)

Geometrická nelinearita: úvod

Mikroinformatyka. Tryb wirtualny

Martin Pergel. 26. února Martin Pergel

Schematy zarzadzania pamięcia

Biosignál II. Lékařská fakulta Masarykovy univerzity Brno

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

DFT. verze:

5. a 12. prosince 2018

Cauchyova úloha pro obyčejnou diferenciální rovnici

Kombinatorika a grafy I

HL24285SMART. Návod k použití Návod na použitie Instrukcja obsługi Használatı utasítás. Licensed by Hyundai Corporation, Korea

Matematika (KMI/PMATE)

Architektura komputerów

Sprzętowe wspomaganie pamięci wirtualnej

ULS4805FE. Návod k použití Návod na použitie Instrukcja obsługi Instruction Manual Használatı utasítás. Licensed by Hyundai Corporation, Korea

Matematika III Stechiometrie stručný

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

Návod k použití BUBNOVÁ SUŠIČKA

architektura komputerów w. 8 Zarządzanie pamięcią

ČVUT v Praze, katedra geomatiky. zimní semestr 2014/2015

Wykład 7. Zarządzanie pamięcią

Vybrané kapitoly z matematiky

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Česky. Magyar NÁVOD K POUŽITÍ KEZELÉSI KÉZIKÖNYV INSTRUKCJA OBSŁUGI NÁVOD NA POUŽÍVANIE. Polski. Slovensky

Lineární algebra - iterační metody

Zadání: Vypočítejte hlavní momenty setrvačnosti a vykreslete elipsu setrvačnosti na zadaných

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Poziomy abstrakcji cyfrowego systemu komputerowego. Procesor i pamięć. organizacja pamięci

Paradoxy geometrické pravděpodobnosti

Quick sort, spojové struktury

Obsah Před zahájením instalace a používání si prosím pečlivě přečtěte návod k použití.

Jednoduchá zobrazení. Podpořeno z projektu FRVŠ 584/2011.

Zálohuj s BTRFS! Bc. Josef Jebavý

Zwój Prawoskrętny. Vinutí Pravé

Systemy operacyjne Zarządzanie pamięcią

DXDB 215 NÁVOD K POUŽITÍ NÁVOD NA POUŽITIE INSTRUKCJA OBSŁUGI USER MANUAL

Příručka k rychlé instalaci: NWD2105. Základní informace. 1. Instalace softwaru

EVOLVE QuickBox CZ. Poznámka: Pro maximální průchodnost dat použijte pevný disk sata 3Gb/s a připojte QuickBox k plně funkčnímu USB 3.0 portu.

Dokumentace...9. Tištěná dokumentace... 9 Netištěná dokumentace... 9 Důležité Úvod k této příručce Řešení potíží...12

Skraplacze wyparne. Odpaøovací kondenzátory D 127/3-5 PL/CZ

Laplaceova transformace

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Organizacja pamięci współczesnych systemów komputerowych : pojedynczy procesor wielopoziomowa pamięć podręczna pamięć wirtualna

System pamięci. Pamięć wirtualna

TVF22384WEB NÁVOD K POUŽITÍ NÁVOD NA POUŽITIE INSTRUKCJA UŻYTKOWNIKA HASZNÁLATI UTASÍTÁS

Jednoduchá zobrazení. Podpořeno z projektu FRVŠ 584/2011.

Petr Hasil. c Petr Hasil (MUNI) Nekonečné řady MA III (M3100) 1 / 187

EOL5821 EOR CS TROUBA NÁVOD K POUŽITÍ 2 PL PIEKARNIK INSTRUKCJA OBSŁUGI 30

Obkládačky a dlaždičky Płytki ścienne i podłogowe: SIGHT šedá szary

WACO WM868 WM868-RFG-LP-H. Revize 2.0

IB109 Návrh a implementace paralelních systémů

System pamięci. Pamięć podręczna

Vestavná myčka nádobí Vstavaná umývačka riadu Zmywarka do zabudowy Built-in Dishwasher

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost.

Transkrypt:

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

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. 3. listopad, 2017 2 / 42

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. 3. listopad, 2017 3 / 42

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. 3. listopad, 2017 4 / 42

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. 3. listopad, 2017 5 / 42

Přidělování paměti po blocích proměnlivé velikosti (1/2) 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) Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 6 / 42

Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 7 / 42

Přidělování paměti po blocích proměnlivé velikosti (2/2) 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) v jiných obměnách používána i dnes (dynamická alokace paměti) vylepšení: zahuštění (compaction) procesy jsou v paměti přesunuty tak, že vznikne souvislý blok volného místa (časově náročná operace) Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 8 / 42

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 p a f horní (nejvýznamější) bity adresy, d spodní bity adresy 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. 3. listopad, 2017 9 / 42

Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 10 / 42

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ů 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. 3. listopad, 2017 11 / 42

Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 12 / 42

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. 3. listopad, 2017 13 / 42

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. 3. listopad, 2017 14 / 42

Sdílená pamět 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 Copy-on-Write (COW) speciální případ daná stránka má nastavený příznak CoW dojde-li k pokusu o zápis, vznikne výjimka 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. 3. listopad, 2017 15 / 42

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. 3. listopad, 2017 16 / 42

Zdroj: Wikipedia.org Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 17 / 42

Přístup do paměti (1/2) Předpoklad systém si eviduje, které stránky jsou v primární paměti, a které ne stránkovací tabulka (MMU) Postup přístup na stránku, která má přiřazený rámec v primární paměti = bez změny přístup na stránku, která nemá přiřazený v primární paměti 1 přerušení výpadek stránky (page fault) 2 obsluha přerušení (operační systém) načte stránku do rámce v primární paměti, aktualizuje stránkovací tabulku (je-li primární pamět plná, je potřeba nějakou jinou stránku přesunout do sekundární paměti, odswapovat ) 3 zopakuje se instrukce, která vyvolala výpadek stránky Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 18 / 42

Přístup do paměti (2/2) Dílčí komplikace pokud je odsouvaná stránka sdílená (např. CoW), je potřeba aktualizovat všechny tabulky, kde se vyskytuje potřeba efektivně převádět rámce na stránky = invertovaná tabulka stránek Optimalizace inicializace můžeme načíst celý proces 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) Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 19 / 42

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. 3. listopad, 2017 20 / 42

Výměna stránek není-li volný rámec v primární paměti, je potřeba jej nějak získat Varianta 1 najde se stránka, která má přesnou kopii v primární i sekundární paměti (dirty bit = 0), nastaví se stránce dirty bit 1 a daný rámec primární paměti se použije Varianta 2 vybere se,,obět stránka v primární paměti, která bude přesunuta do sekundární pokud má stránka nastavený dirty bit 1, překopíruje se obsah rámce do sekundární paměti Poznámka 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. 3. listopad, 2017 21 / 42

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. 3. listopad, 2017 22 / 42

Least Recently Used (LRU) jako obět je zvolena nejdéle nepoužívaná stránka 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. 3. listopad, 2017 23 / 42

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. 3. listopad, 2017 24 / 42

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. 3. listopad, 2017 25 / 42

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ší (podporuje, ale je nutné explicitně povolit) Linux velké stránky 2.6.38 Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 26 / 42

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. 3. listopad, 2017 27 / 42

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. 3. listopad, 2017 28 / 42

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-3) 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. 3. listopad, 2017 29 / 42

I386: Segmentace (2/2) Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 30 / 42

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. 3. listopad, 2017 31 / 42

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. 3. listopad, 2017 32 / 42

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

I386: Překlad adres IV. (stránkování 4 MB stránka) Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 34 / 42

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. 3. listopad, 2017 35 / 42

I386: Překlad adres VI. (PAE 4 KB stránka) Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 36 / 42

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: 36-46bitové 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 Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 37 / 42

Zdroj: Wikipedia.org Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 38 / 42

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. 3. listopad, 2017 39 / 42

x86/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. 3. listopad, 2017 40 / 42

x86/amd64: 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. 3. listopad, 2017 41 / 42

Samostudium Keprt A. Operační systémy. Kapitoly 12 14, tj. strany 129 167. Petr Krajča (UP) KMI/YOS: Přednáška IV. 3. listopad, 2017 42 / 42