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



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

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 I Mgr. Josef Horálek

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

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

Systém adresace paměti

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

Management procesu I Mgr. Josef Horálek

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

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

Memory Management vjj 1

Memory Management vjj 1

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

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

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)

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 8: Správa paměti II

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

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

Paměti a jejich organizace

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

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Logická organizace paměti Josef Horálek

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.

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

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

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

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

Přidělování CPU Mgr. Josef Horálek

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

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

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

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)

Systém souborů (file system, FS)

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

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

Procesy a vlákna (Processes and Threads)

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

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

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

Princip funkce počítače

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

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

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

Management procesu II Mgr. 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)

I. Dalšívnitřní paměti

Činnost počítače po zapnutí

Adresní mody procesoru

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

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

PA152. Implementace databázových systémů

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

Služba ve Windows. Služba (service) je program

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

Systém souborů Mgr. Josef Horálek

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

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Vstupně - výstupní moduly

Datové typy a struktury

Strojový kód. Instrukce počítače

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í

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

Pohled do nitra mikroprocesoru Josef Horálek

Architektury počítačů a procesorů

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

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

AGP - Accelerated Graphics Port

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

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

Vstupně výstupní moduly. 13.přednáška

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

Virtualizace. Lukáš Krahulec, KRA556

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

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

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

Integrovaná střední škola, Sokolnice 496

Architektura počítačů

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

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

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

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

Struktura programu v době běhu

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

Profilová část maturitní zkoušky 2014/2015

Struktura pamětí a procesů v DB Oracle. Radek Strnad

SEKVENČNÍ LOGICKÉ OBVODY

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

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

Principy komunikace s adaptéry periferních zařízení (PZ)

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

Ukázka zkouškové písemka OSY

TÉMATICKÝ OKRUH Softwarové inženýrství

Jazyk symbolických adres

Transkript:

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

Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování na žádost = Segmentace = Segmentace a stránkování na žádost

Stránkování = Na stejné úseky se rozdělí = adresový prostor stránky; = operační paměť fyzické stránky, stránkové rámy; = každou stránku pak lze vložit do libovolného bloku; = stránky jsou logicky souvislé vzhledem k uživatelskému programu; = odpovídající bloky na sebe nemusí navazovat; = transformace žádný vliv na uživatelskou úlohu; = pro každou stránku musí být vyhrazen samostatný registr; = efektivnost celé technologie značně ovlivňuje velikost stránky; = stránkování řeší problém fragmentace bez fyzických přesunů;

Stránkování = Čtyři funkce modulu přidělování paměti = sledování stavu se provádí pomocí tabulek; = rozhodování o přidělování paměti provádí plánovač úloh; = přidělení paměti; = stránky se zavedou do přiřazených bloků; = aktualizují se záznamy v tabulce stránek a tabulce bloku; = uvolnění paměti; = v tabulce bloku se odpovídající záznamy uvedou do stavu volný;

Stránkování 0 1000 2000 Úloha 1 stránka 0 1 blok 4 7 Operační systém 0 1000 2000 0 1000 2000 3000 4000 Úloha 2 0 1 2 3 1 3 5 6 Volný blok 3000 4000 5000 6000 7000 8000 Volný blok 9000 10 000

= OS se stará o 3 základní tabulky: = tabulka úloh (Job Table); = tabulka bloku (Memory block table); = tabulka stránek (Page Memory Table); Stránkování

Stránkování = Výhody: = eliminuje fragmentaci; = umožňuje zvýšit počet úloh, pro které lze vytvořit paměťové prostory současně; = lepší využití procesoru a operační paměti; = eliminuje se režie zhušťování; = Nevýhody: = technické prostředky pro transformaci stránek zvyšují obvykle cenu výpočetního systému a současně snižují jeho rychlost; = uchovávání tabulek zabírá část operační paměti; = současně se zvyšuje režie (čas procesoru) o dobu potřebnou k udržování těchto tabulek;

Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování na žádost = Segmentace = Segmentace a stránkování na žádost

Stránkování na žádost = Dosud = úloha mohla být zpracována jen tehdy, když ji byla přidělena paměť pro celý adresový prostor; = časté nevyužité volné oblasti; = Řešení = veliké paměti; = simulace rozsáhlé paměti = virtuální paměť = stránkování na žádost = segmentace paměti.

Stránkování na žádost Page 0 Page 1 Page 2 Memory map Real memory Page n Virtual memory External memory

Stránkování na žádost =Většina programů během svého konkrétního průběhu využívá jen malou část svého adresového prostoru, protože: = uživatelské programy pro ošetření chyb se užijí jen když k chybě dojde; = logické větve vylučují současný průběh alternativních částí programu; = mnoha tabulkám (statickým paměťovým strukturám) je přiděleno pevné množství adresového prostoru, které se ne vždy využije; = souběh mnoha podprogramů se časově vylučuje;

Stránkování na žádost = Možné problémy = program se odvolává na oblast adresového prostoru, která není zavedena v operační paměti; = strategie rozhodování, které stránky mají být uchovány v operační paměti; = Technické řešení = rozšíření tabulky stránek o stavový bit; = false - stránka je v operační paměti; = true - stránka není v operační paměti;

Stránkování na žádost = Při naplánování zpracování úlohy je do operační paměti zavedena pouze první startovací stránka; = ostatní jsou pak zaváděny na žádost; = nepotřebné stránky se do paměti vůbec nedostanou; = Možné komplikace = co v okamžiku, kdy není paměťový prostor pro zavedení další stránky; = řeší se pomocí výměny stránek; = u stránkování na žádost je třeba rozšířit technické vybavení o tři důležité funkce: = stavový bit v tabulce stránek; = rozšíření mechanismu přerušení o výpadek stránky; = záznam o používání stránky;

Stránkování na žádost = Čtyři funkce modulu přidělování paměti = jsou při stránkování na žádost složitější a flexibilnější; = sledování stavu paměti; = sledování tabulek (PMTS,MBT, FMT); = rozhodování o přidělení paměti; = částečně provádí plánovač úloh; = přidělování paměti = je nutné najít vhodný blok paměti pro startovací stránku a změnit stavový bit bloku; = uvolňování paměti = není-li vhodný blok paměti k dispozici, musí být některý z obsazených uvolněn;

Stránkování na žádost = Ošetření výpadku stránky: = paměť je přidělována a odebírána i během provádění úlohy pomocí mechanismu přerušení; = při stránkování na žádost velmi úzce spolupracuje programové a technické vybavení; = první část vývojového diagramu se provádí nejčastěji; = implementována jako součást technického vybaveni pro transformaci adres; = druhá část je přerušovací modul v OS;

Stránkování na žádost Začni zpracování instrukcí Přejdi k další instrukci Generuj adresu dat Vypočti číslo stránky Je k tato stránka v paměti? Výběr dat z paměti a dokončení instrukce Vyber stránku k odstranění z paměti Nastav tabulky bloků a stránek Je k dispozici volný blok? Došlo ke změně na stránce? Zapiš stránku zpět na disk Zjisti potřebné číslo stránky Vezmi adresu na disku z tabulky souborů Čti stránku Nastav tabulky bloků a stránek Znovuzahájení přerušení instrukce

Stránkování na žádost = Přítomnost stránky v paměti se zjišťuje podle indikačního bitu v odpovídající položce tabulky stránek = 0 - stránka je v paměti; = 1 - stránka není v paměti. = u systému s nepřímým adresováním na několika úrovních může nastat v podstatě neomezený počet výpadků stránek během vykonání jedné instrukce; = při ošetření výpadku stránky mohou nastat až dvě I/O operace; = během nich je možné přidělit procesor jiné úloze, ale vyžaduje to rozšířit stavy bloků o další položku přenos (in transit);

žádost Algoritmy programového = Řešení problémů vyber stránku k odstranění vybaveni z paměti : = nahradí se vždy stránka v bloku 3. (tj. první blok za OS); = velmi jednoduché a velmi neefektivní; = mohl by vést až k zahlceni systému; = FIFO (First In - First Out) = LRU (Least Recently Used) = nejdéle nepoužita

Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování na žádost = Segmentace = Segmentace a stránkování na žádost

Segmentace paměti = Je zcela nový přístup k paměťovému prostoru, který by paměť lépe využíval a zároveň i usnadňoval programování; = Jaké je vidění paměti uživatelem Podprogramy (segment 0) Hlavní programy (segment 2) Zásobník (segment 3) Tabulka symbolů (segment 4) Sqrt (segment 1) Logický adresový prostor

Segmentace paměti = Segment = logické seskupení informací; = adresový prostor každé úlohy je potom tvořen několika segmenty; = technika přidělování paměti segmentům se nazývá segmentace; = Při segmentaci paměti musí každý odkaz do paměti obsahovat: = číslo segmentu - (segment) = paměťové místo v segmentu - (offset)

Segmentace paměti = Technické prostředky: = přemapování dvourozměrné adresy (segment, offset) na jednorozměrnou fyzickou adresu; = využívat převodní tabulku; = každý proces má svou tabulku segmentů; = logická adresa se skládá z čísla segmentu (segment) a relativní adresy slova v rámci segmentu (offset); = segment se použije jako index v tabulce segmentu; = offset, jakožto relativní adresa v rámci segmentu a nesmí být vyšší než limit (délka segmentu); = pokud tomu tak je, nastává přerušení v důsledku porušení ochrany paměti; = je-li vše v pořádku sečte se offset a base segment, čímž vznikne fyzická adresa, kterou je možno použít v paměti;

Segmentace paměti segment limit base segment limit base segment limit base CPU segment offset Fyzická paměť < + + - Přerušení porušení ochrany paměti

Segmentace paměti 1400 Podprogramy (segment 0) Zásobník (segment 3) Segment 0 Hlavní programy (segment 2) Tabulka symbolů (segment 4) Sqrt (segment 1) Logický adresový prostor limit base 1000 1400 400 3200 3200 4500 5700 Segment 1 Segment 2 Segment 3 1200 4500 300 5700 350 6300 6300 Segment 4

Segmentace paměti = stejně jako u stránkování mohou být tabulky segmentu uloženy buď v paměti nebo v rychlých registrech; = v případě velkého množství segmentů není uložení tabulek v registrech proveditelné a je nutno je ukládat do paměti; = segment-table length registr (STLR) obsahuje počet segmentů aktuální úlohy;

Segmentace paměti = Ochrana a sdílení segmentu: = každý segment je zabezpečen zvlášť; = přistup k jednotlivým bytům segmentu je stejným jak pro segmenty obsahující instrukce, tak segmenty obsahující data; = při uložení pole do segment memory-managment hardware automaticky kontroluje indexy pole jestli jsou v pořádku a nepřekračují hranici segmentu; = možnost sdílení (sharing) kódu nebo dat jednotlivými úlohami;

Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování na žádost = Segmentace = Segmentace a stránkování na žádost

Segmentace a stránkování na žádost = Kombinace segmentace a stránkování přináší vylepšení obou těchto technik; = Adresový prostor každého procesu je rozdělen na 2 části: = 8192 segmentů může být privátních pro každý proces (Local Descriptor Table - LDT ); = 8192 segmentů může být sdílených (Global Descriptor Table - GDT);

Segmentace a stránkování na žádost = Logická adresa je dvojice (selector, offset), kde selektorem je 16-bitové číslo: = s - číslo segmentu (13 bitů); = g - indikuje, je-li segment v GDT nebo LDT (1 bit); = p - informace pro ochranu paměti 2 bity; = offset je 32-bitové číslo udávající relativní adresu slova v rámci daného segmentu; s g p

Segmentace a stránkování na žádost = Fyzická adresa je 32-bitové číslo = select registr ukazuje na příslušnou položku v LDT nebo GDT; = z ní jsou užity délka a počáteční adresa aktuálního segmentu pro vytvoření lineární adresy; = lineární adresa = offset + počáteční adresa segmentu; = každý segment je stránkován a velikost stránky je 4kB; = tabulka stránek musí tedy obsahovat více než 1 mil. položek; = každá položka zabírá 4B = každý proces může požadovat až 4MB adresového prostoru pro svou tabulku stránek. = složitá implementace

Segmentace a stránkování na žádost = Lineární adresa je rozdělena na dvě části = číslo stránky (20 b) a offset (12 b); = číslo stránky je rozděleno na ukazatel do adresáře stránek (10 b) a ukazatel na stránku (10b); = pro zvýšení rozsahu fyzické paměti může OS swapovat tabulky stránek na disk; = jeden nepoužitý bit v položkách ukazatel do adresáře stránek je použit k indikaci, zda je daná položka na disku nebo v paměti; Číslo stránek offset p1 p2 d

Segmentace a stránkování na žádost = Segmentace na žádost: = stránkování na žádost je všeobecně uznávané jako nejlepší mechanismus pro vytvoření virtuální paměti; = vyžaduje silnou hardwarovou podporu; = pokud hardware není k dispozici, lze vytvořit virtuální paměť pomocí segmentace na žádost; = systém využívá tabulek segmentu pro jednotlivé procesy, kde jsou informace o uložení, ochraně a velikosti segmentu; = jelikož se segment ve fyzické paměti vyskytovat může i nemusí, má každá tabulka navíc indikační bit, který o tom informuje;

Segmentace a stránkování na žádost = Je-li adresován segment, který není ve fyzické paměti, je vyvoláno přerušení (segment fault); = není-li ve fyzické paměti dost místa pro natažení nového segmentu, je některý ze segmentů v paměti vyswapován na disk; = Je-li třeba vybrat segment pro odložení na disk, je vybrán ten na konci fronty; = je-li pro natažení segmentu volné místo v paměti, je do něj segment natažen; = aktualizují se záznamy v tabulce segmentu a identifikace segmentu je zařazena na vrchol fronty;

Děkuji za pozornost