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



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

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

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

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

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

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

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

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

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

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

Paměti a jejich organizace

p8mm/p8mm.d 21. listopadu

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

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

PRINCIPY OPERAČNÍCH SYSTÉMŮ

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

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

Operační systémy (OS)

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

Stavba operačního systému

Principy operačních systémů. Lekce 7: Souborový systém

Šablona klíčové aktivity III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

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

Operační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu Obědvající filosofové

Systém adresace paměti

Činnost počítače po zapnutí

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

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

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

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

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

OPERAČNÍ SYSTÉMY. Ing. Luděk Richter

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

Management procesu I Mgr. Josef Horálek

Logická organizace paměti Josef Horálek

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

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

Principy operačních systémů. Lekce 6: Synchronizace procesů

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

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

Pokročilé architektury počítačů

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

TÉMATICKÝ OKRUH TZD, DIS a TIS

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

Informační a komunikační technologie

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

2 Hardware a operační systémy

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

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

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

Memory Management vjj 1

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

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Digitální učební materiál

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.

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Operační systémy Linux, Mac OS X a jejich srovnání

OS Deadlock a prevence

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

Memory Management vjj 1

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)

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

Obr. 1 - Seznam smluv

Hardware. Z čeho se skládá počítač

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

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

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH

PAMĚTI ROM, RAM, EPROM, EEPROM

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

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

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

Petr Krajča. 25. listopad, 2011

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

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

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

Principy činnosti sběrnic

Organizace a zpracování dat I (NDBI007) RNDr. Michal Žemlička, Ph.D.

Operační systémy. Tomáš Hudec.

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ

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

Úloha OS, prostředky počítače, představa virtuálního počítače

Souborové systémy a logická struktura dat (principy, porovnání, příklady).

Architektura počítače

TÉMATICKÝ OKRUH Počítače, sítě a operační systémy

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

1. Úvod Hardware 7

Principy operačních systémů. Lekce 7: Obrana proti deadlocku

Zobrazovací a zvuková soustava počítače

Západočeská univerzita v Plzni FAKULTA PEDAGOGICKÁ KATEDRA VÝPOČETNÍ A DIDAKTICKÉ TECHNIKY

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

Popis ovládání dokumentu s přiloženými obrázky

E.C.S. řada nová generace obrat o 360 ( Systém vyvinut ve Florencii v r.2009 )

Technické vybavení počítače

Definice OS. Operační systém je základní programové vybavení počítače, nezbytné pro jeho provoz.

LOGIC. Stavebnice PROMOS Line 2. Technický manuál

Transkript:

Operační systémy Tomáš Hudec 9 Správa paměti, metody alokace paměti, virtualizace paměti Obsah: 9.1 Techniky přidělování paměti, 9.1.1 Pevné dělení paměti, 9.1.1.1 Stejně velké oblasti, 9.1.1.2 Různě velké oblasti, 9.1.2 Dynamické dělení paměti, 9.2 Virtualizace paměti, 9.3 Opakování. 9.1.2.1 Umisťovací algoritmy, Proces může běžet pouze v případě, že má přidělenu operační paměť. Každý operační systém proto obsahuje modul správy paměti. Tento modul zajišťuje přidělování a ochranu paměti. Další důležitou otázkou je adresování. Existují různé strategie přidělování paměti. Část operační paměti (RAM Random Access Memory) je obsazena operačním systémem (kód, datové struktury) nebo je jím využívána (vyrovnávací paměť, buffery). Zbytek je přidělován procesům. Nejstarší způsob správy paměti je přidělení veškeré paměti nevyužité operačním systémem právě běžícímu procesu. V každém okamžiku je tedy v paměti nejvýše jeden proces. Tato strategie byla používána v nejstarších operačních systémech (dávkové systémy) a později znovu v prvních osobních počítačích (CP/M, ISIS II, DOS). Moderní operační systém musí umět spouštět více procesů současně, a tedy přidělovat jim paměť. To zahrnuje speciální požadavky na systém správy paměti, jakož i na hardwarovou podporu. Požadována je podpora: relokace paměti možnost umístění paměti procesu na libovolné (fyzické) adresy, ochrana paměti procesu je dovoleno měnit a číst pouze jemu přidělenou paměť, možnost sdílení paměti mezi procesy. Podpora relokace je důležitá, protože programátor nemůže předem vědět, na které adresy je program do paměti zaveden. Program tedy nesmí pracovat s absolutními adresami fyzické operační paměti musí používat adresy logické, které se za běhu převedou na skutečné fyzické adresy. Proces může být během provádění odložen na sekundární paměť (swap) a při navrácení nemusí být původní adresní rozsah procesu volný. Pak je třeba proces také relokovat (zavést na jiné fyzické adresy). Další důležitou vlastností paměti je podpora její ochrany. Aby operační systém mohl účinně izolovat procesy, musí hardware podporovat ochranu paměti. Kontrola přístupu musí být prováděna v době běhu procesu, nelze ji provádět podle programu (kódu procesu). Rozlišují se typicky tři oprávnění: čtení, zápis a provádění. Některé procesy mohou potřebovat paměť sdílet, neboť výměna dat pomocí operační paměti je efektivnější než používání souborů nebo jiných mechanismů výměny dat. Podpora sdílení paměti se hodí také pro systémové knihovny, které používá současně více procesů stačí, aby v paměti byly zavedeny pouze jednou. Výhodná je podpora sdílení také v případě běhu více procesů provádějících stejný program, např. více instancí editoru či webového prohlížeče. Podpora sdílení paměti vede k výrazné úspoře paměti a v důsledku k méně častému odkládání paměti na sekundární médium (swap). Při nedostatku fyzické operační paměti lze použít techniky, které umožní běh procesů, které by se jinak do operační paměti již nevešly. Mezi tyto techniky patří: překrývání (overlaying) a odkládání (swapping). 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 http://fei-learn.upceucebny.cz/mod/page/view.php?id=5282 1/6

modulu a je vyžadován modul jiný, první se z paměti uvolní a na jeho místo se nahraje druhý. Tímto způsobem lze provádět i takové procesy, které by se celé do operační paměti nevešly. Metoda překrývání paměti není transparentní pro programátora (programátor musí s technikou překrývání počítat při vytváření programu) a je nutné, aby překrývané moduly byly na sobě nezávislé. Naproti tomu odkládání paměti na disk (swapping) je pro programátora transparentní, řeší se až za běhu operačním systémem. Jeli třeba uvolnit více paměti, odloží se některé (obvykle blokované) procesy na levnější (a pomalejší) sekundární paměť swap). Pokročilejší techniky umožňují odložit i pouze část paměti procesu. 9.1 Techniky přidělování paměti V předchozím textu byla zmíněna základní technika alokace paměti přidělování celé dostupné paměti běžícímu procesu. Ta je samozřejmě neefektivní, protože neumožňuje plně provádět více úloh současně (multitasking) a v důsledku tedy nemůže být systém ani víceuživatelský. Mezi techniky přidělování paměti patří: pevné dělení paměti (fixed partitioning) se stejně velikými bloky, s různě velkými bloky, dynamické dělení paměti (dynamic allocation), stránkování (paging) a segmentace (segmentation). 9.1.1 Pevné dělení paměti Dostupná paměť je rozdělena do oblastí (partitions) s pevnými hranicemi. Tyto oblasti mohou být buď všechny stejné velikosti nebo mohou být nastaveny různě velké. 9.1.1.1 Stejně velké oblasti Proces je zaveden do libovolné volné oblasti. Jsou li všechny oblasti obsazené, lze některý proces odložit na disk (swap out). Nevejde li se proces do oblasti, musí programátor použít techniku překrývání (overlays). Jakýkoli malý proces vždy zabere celou oblast a vzniká tak vnitřní fragmentace (internal fragmentation) proces nevyužije veškerou přidělenou paměť. To je samozřejmě neefektivní. Pro zmírnění tohoto nedostatku lze paměť rozdělit na různě velké oblasti. 9.1.1.2 Různě velké oblasti Paměť rozdělená na různě velké oblasti umožňuje zmírnit vnitřní fragmentaci. Při umisťování procesů do takto dělené paměti máme v zásadě dvě možnosti. Procesy čekající na přidělení paměti tvoří: 1. samostatnou frontu pro každou velikost oblasti, 2. jedinou frontu. Existuje li více front, proces se zařadí do fronty tak, aby se minimalizovala vnitřní fragmentace. Vybere se tedy fronta pro takovou nejmenší velikost, do které se proces vejde. Nedostatkem tohoto způsobu je, že mohou být blokovány procesy, které by mohly běžet ve větší volné oblasti. Je li v systému jediná fronta, přidělí se procesu vždy nejmenší volná oblast, do které se proces vejde (best fit). Tento způsob je rychlejší, ale za cenu větší vnitřní fragmentace. http://fei-learn.upceucebny.cz/mod/page/view.php?id=5282 2/6

Pevné dělení paměti: stejná (vlevo) a různá (vpravo) velikost bloků 9.1.2 Dynamické dělení paměti Volná paměť není pevně rozdělena. Procesu se při startu přidělí tolik paměti, kolik potřebuje. Tím je odstraněna vnitřní fragmentace. Použito v IBM OS MVT (Multitasking with Variable number of Tasks). Při ukončení procesu vznikají v paměti díry (holes). Do takové oblasti lze umístit jen proces, který se tam ještě vejde. Podaří li se to, po umístění procesu obvykle zůstane mnohem menší díra, která je ještě obtížněji využitelná. Tento jev se označuje pojmem vnější fragmentace (external fragmentation). Pokud má vzniknout nový proces s takovými paměťovými nároky, že neexistuje souvislý volný blok paměti příslušné (nebo větší) velikosti, pak takový proces nelze do paměti zavést, a to i přesto, že součet velikostí volných bloků je větší než paměťové nároky procesu. Následující obrázky zobrazují situaci po alokaci paměti třem procesům, uvolnění paměti procesu 2, alokaci paměti procesu 4, uvolnění paměti procesu 1 a alokaci paměti procesu 5. Dynamické dělení paměti: uvolnění paměti a následná alokace http://fei-learn.upceucebny.cz/mod/page/view.php?id=5282 3/6

Dynamické dělení paměti: vznik vnější fragmentace Vnější fragmentace lze odstranit defragmentací relokací pamětí procesů tak, aby vznikla souvislá volná oblast setřesení (compaction). Setřesení lze použít pouze za předpokladu podpory relokace paměti za běhu. Dynamické dělení paměti: odstranění vnější fragmentace setřesením 9.1.2.1 Umisťovací algoritmy Pro alokaci paměťové oblasti pro proces lze použít následující čtyři základní algoritmy. Umisťovací algoritmus best fit Algoritmus best fit vybírá takovou nejmenší volnou oblast, do které se proces ještě vejde. Cílem je minimalizovat (vnější) fragmentaci. Důsledkem je však rychlé přibývání malých fragmentů, které lze jen velmi obtížně využít nutnost častého provádění setřesení. Díky nutnosti prohledávat celou paměť (hledání nejmenšího volného bloku) je tato metoda nejméně výkonná. Umisťovací algoritmus worst fit Algoritmus worst fit vybírá největší volnou oblast, do které je proces následně umístěn. Má tendenci dělit velké oblasti paměti na menší, což v důsledku vede k nemožnosti přidělení paměti procesu s velkou paměťovou náročností. Tato metoda alokace má nejhorší využití paměti (lowest memory utilization). Jelikož je třeba stejně jako u algoritmu best fit prohledat celou paměť, může se algoritmus modifikovat na variantu exact or worst fit, kdy se proces přednostně umístí do přesně vyhovující oblasti, je li taková nalezena. Umisťovací algoritmus first fit Algoritmus first fit hledá první vyhovující oblast, do které se proces vejde. Paměť je prohledávána vždy od začátku. Protože není potřeba prohledávat celou paměť, je tato metoda rychlejší než předchozí. Prohledávání zpomaluje výskyt velkého počtu obsazených oblastí na začátku paměti, tato část paměti se vždy zbytečně prohledává. Vylepšením v tomto ohledu je následující http://fei-learn.upceucebny.cz/mod/page/view.php?id=5282 4/6

algoritmus. Umisťovací algoritmus next fit Algoritmus next fit stejně jako first fit vybírá první volnou oblast, do které se proces vejde, ale paměť se prohledává vždy od oblasti, do které se naposledy umisťovalo. Je li po umístění procesu do volné oblasti zbytek oblasti ještě dostatečně velký pro další proces, umístí tento sem. Algoritmus má tendenci umisťovat častěji ke konci paměti, neboť je tam obvykle nejvíce volného místa. Na rozdíl od first fit má větší tendenci dělit velké oblasti paměti na menší. Jedná se o nejrychlejší metodu. Dynamické dělení paměti: porovnání umisťovacích algoritmů a stav po setřesení 9.2 Virtualizace paměti Velká část paměti procesu nemusí být trvale využívána. Dle principu lokality odkazů má proces tendenci v nejbližších okamžicích přistupovat do stejné paměťové oblasti, kam přistupoval nyní. To se týká dat (proměnné ve stejné datové části) i kódu (zejména při provádění cyklů a stejných podprogramů). Část paměti procesu se tedy může odložit na disk. Rozdělí li se adresový prostor procesu vhodně na části, stačí, aby pouze některé z nich byly ve fyzické operační paměti. Proces může běžet, i když nemá ve fyzické operační paměti celý svůj adresový prostor, který tak může být i větší než je dostupná paměť. Lze tak provádět více procesů současně a systém bude efektivnější. Díky principu lokality odkazů lze obvykle odvodit, kterou část paměti bude proces v nejbližší budoucnosti používat s nejvyšší pravděpodobností, a lze tedy dopředu načíst do operační paměti jen příslušné části procesu (z okolí právě využívaných oblastí). Procesor je obvykle schopen adresovat větší množství paměti, než je skutečně instalováno. Adresový prostor lze rozšířit tak, aby zahrnoval kromě skutečné fyzické paměti i část sekundární paměti (disku). Získáváme tak virtuální paměť. Část paměti procesu, která je držena ve fyzické operační paměti, se označuje pojmem resident set. Sekundární paměť využívaná pro odkládání (dočasně) nepoužívaných částí adresových prostorů procesů se nazývá swap. Přistoupí li proces k paměťovému místu (data, kód), které není ve fyzické operační paměti, generuje se přerušení. Operační systém proces zařadí mezi blokované, dokud nenahraje příslušnou část jeho adresového prostoru zpět do fyzické operační paměti. Po dokončení čtení je generováno přerušení a proces je následně zařazen opět mezi připravené. Při špatné organizaci odkládání částí paměti procesu na disk, může nastat tzv. thrashing. To je situace, kdy část paměti procesu je odložena na disk těsně před tím, než ji proces potřebuje. Tuto část paměti je pak třeba následně nahrát zpět do fyzické operační paměti. Proces tak zbytečně čeká v blokovaném stavu. Thrashing může být následkem špatné organizace operační paměti, nedostatku operační paměti, ale také neoptimalizovaného překladu programu kompilátorem, který nedostatečně dodržuje princip lokality odkazů. Aby se dala virtuální paměť efektivně spravovat, je nutná hardwarová podpora. Procesor musí umět pracovat s logickou (virtuální) http://fei-learn.upceucebny.cz/mod/page/view.php?id=5282 5/6

adresou, kterou předává paměťové jednotce MMU (Memory Management Unit), která převádí virtuální adresu na adresu skutečnou. Mezi dvě hlavní virtualizační metody patří stránkování a segmentace. 9.3 Opakování 1. Jmenujte výhody a nevýhody statického dělení paměti. 2. Popište možné způsoby alokace paměti při použití statického dělení s různě velkými bloky. 3. Popište metodu dynamické alokace paměti. 4. Uveďte, jak se dá odstranit vnější fragmentace. 5. Popište algoritmus first fit (best fit, worst fit, next fit). 6. Uveďte důvod, proč může proces běžet, i když nemá veškerý svůj alokovaný adresový prostor v operační paměti. 7. Definujte pojmy relokace, virtuální paměť, resident set, swap, overlaying, thrashing. Naposledy změněno: Pondělí, 7. říjen 2013, 15.27 http://fei-learn.upceucebny.cz/mod/page/view.php?id=5282 6/6