Správa paměti v OS: Souvislá, Výměnaping, Fragmentace
⚡ Chytré shrnutí
Správa paměti je proces operačního systému, který řídí a koordinuje paměť počítače a přiřazuje bloky spuštěným programům za účelem optimalizace výkonu. tracukládá každé paměťové místo, přesouvá procesy mezi hlavní pamětí a diskem a chrání procesy jeden před druhým.

Co je Správa paměti?
Správa paměti je proces řízení a koordinace počítačové paměti, přiřazování částí známých jako bloky různým běžícím programům za účelem optimalizace celkového výkonu systému.
Je to nejdůležitější funkce operačního systému, která spravuje primární paměť. Pomáhá procesům přepínat mezi hlavní pamětí a spouštěcím diskem. Pomáhá operačnímu systému udržovat track každé paměťové lokace, bez ohledu na to, zda je alokována nějakému procesu, nebo zůstává volná.
Proč používat správu paměti?
Zde jsou důvody pro použití správy paměti:
- Umožňuje vám zkontrolovat, kolik paměti je třeba přidělit procesům, které rozhodují, který procesor by měl v jakém čase získat paměť.
- Tracks vždy, když se zásoby uvolní nebo nepřidělí, a podle toho aktualizuje stav.
- Přiděluje prostor aplikačním rutinám.
- Také zajišťuje, aby se tyto aplikace vzájemně nerušily.
- Pomáhá chránit různé procesy před sebou navzájem.
- Ukládá programy do paměti tak, aby byla paměť využita v plném rozsahu.
Techniky správy paměti
Zde jsou některé z nejdůležitějších technik správy paměti:
Jednotné souvislé přidělení
Jedná se o nejjednodušší techniku správy paměti. V této metodě jsou všechny typy paměti počítače, s výjimkou malé části, která je rezervována pro operační systém, k dispozici pro jednu aplikaci. Například operační systém MS-DOS alokuje paměť tímto způsobem. Vestavěný systém také běží na jedné aplikaci.
Dělená alokace
Rozděluje primární paměť na různé paměťové oddíly, které jsou většinou souvislými oblastmi paměti. Každý oddíl ukládá všechny informace pro konkrétní úlohu nebo úlohu. Tato metoda spočívá v přidělení oddílu úloze při jejím spuštění a jeho uvolnění po jejím ukončení.
Správa stránkované paměti
Tato metoda rozděluje hlavní paměť počítače na jednotky pevné velikosti známé jako rámce stránky. Tato hardwarová jednotka správy paměti mapuje stránky do rámců, které by měly být alokovány na základě stránky.
Správa segmentované paměti
Segmentovaná paměť je jedinou metodou správy paměti, která neposkytuje uživatelskému programu lineární a souvislý adresní prostor.
Segmenty potřebují hardwarovou podporu ve formě tabulky segmentů. Obsahuje fyzickou adresu sekce v paměti, velikost a další data, jako jsou bity ochrany přístupu a stav.
Co je to swapping?
výměnaping je metoda, při které by měl být proces dočasně přesunut z hlavní paměti do záložní paměti. Později bude do paměti vrácen pro další provádění.
Záložní úložiště je pevný disk nebo jiné sekundární paměťové zařízení, které by mělo být dostatečně velké, aby pojalo kopie všech obrazů paměti pro všechny uživatele. Je také schopno nabídnout přímý přístup k těmto obrazům paměti.
Výhody swapuping
Zde jsou hlavní výhody/klady swapuping:
- Nabízí vyšší stupeň multiprogramování.
- Umožňuje dynamické přemístění. Například pokud se používá vazba adresy v době provádění, lze procesy přesouvat na různá místa. V opačném případě by v případě vazeb v době kompilace a načítání měly být procesy přesunuty na stejné místo.
- Pomáhá k lepšímu využití paměti.
- Minimální plýtvání časem CPU při dokončení, takže jej lze snadno použít u metody plánování založené na prioritách pro zlepšení jejího výkonu.
Co je alokace paměti?
Alokace paměti je proces, při kterém je počítačovým programům přiřazena paměť nebo prostor.
Zde je hlavní paměť rozdělena do dvou typů oddílů:
- Nízká paměť - Operating systému se nachází v tomto typu paměti.
- Vysoká paměť – Uživatelské procesy jsou uloženy ve vysoké paměti.
Přidělení oddílu
Paměť je rozdělena do různých bloků nebo oddílů. Každý proces je přidělen podle požadavku. Alokace oddílů je ideální metodou, jak se vyhnout vnitřní fragmentaci.
Níže jsou uvedena různá schémata alokace oddílů:
- První fit: V tomto typu přizpůsobení je alokován oddíl, který je prvním dostatečným blokem od začátku hlavní paměti.
- Nejlepší fit: Přidělí proces oddílu, který je mezi volnými oddíly nejmenším dostatečným oddílem.
- Nejhorší střih: Alokuje proces na oddíl, který je největším dostatečně volně dostupným oddílem v hlavní paměti.
- Další Fit: Je to většinou podobné jako First Fit, ale toto Fit hledá první dostatečný oddíl z posledního alokačního bodu.
Co je stránkování?
Stránkování je mechanismus ukládání dat, který umožňuje operačnímu systému načítat procesy ze sekundárního úložiště do hlavní paměti ve formě stránek. V metodě stránkování je hlavní paměť rozdělena na malé bloky fyzické paměti s pevnou velikostí, které se nazývají rámce. Velikost rámce by měla být stejná jako velikost stránky, aby se maximálně využila hlavní paměť a zabránilo se externí fragmentaci. Stránkování slouží pro rychlejší přístup k datům a je to logický koncept.
Co je fragmentace?
Procesy se ukládají do paměti a odstraňují z paměti, což vytváří volné paměťové prostory, které jsou příliš malé na to, aby je mohly využít jiné procesy.
Po určité době tyto procesy nemohou být alokovány do paměťových bloků kvůli jejich malé velikosti a paměťové bloky zůstávají vždy nevyužité. Tomu se říká fragmentace. K tomuto typu problému dochází v systému dynamické alokace paměti, kdy jsou volné bloky poměrně malé, takže nejsou schopny splnit žádný požadavek.
Existují dva typy metod fragmentace:
- Vnější fragmentace
- Vnitřní fragmentace
- Externí fragmentaci lze snížit přeskupením obsahu paměti tak, aby byla všechna volná paměť umístěna do jednoho bloku.
- Vnitřní fragmentaci lze snížit přiřazením nejmenšího oddílu, který je stále dostatečně dobrý pro celý proces.
Co je segmentace?
Metoda segmentace funguje téměř podobně jako stránkování. Jediný rozdíl mezi nimi je, že segmenty mají proměnnou délku, zatímco u metody stránkování mají stránky vždy pevnou velikost.
Segment programu zahrnuje hlavní funkci programu, datové struktury, pomocné funkce atd. OS udržuje tabulku mapy segmentů pro všechny procesy. Obsahuje také seznam volných paměťových bloků spolu s jejich velikostí, čísly segmentů a umístěním paměti v hlavní paměti nebo virtuální paměť.
Co je dynamické načítání?
Dynamické načítání je rutina programu, která se nenačte, dokud ji program nezavolá. Všechny rutiny by měly být uloženy na disku v přemístitelném formátu. Hlavní program se načte do paměti a spustí. Dynamické načítání také umožňuje lepší využití paměťového prostoru.
Co je dynamické propojení?
Propojování je metoda, která pomáhá operačnímu systému shromažďovat a slučovat různé moduly kódu a dat do jednoho spustitelného souboru. Soubor lze načíst do paměti a spustit. Operační systém může propojit knihovny na systémové úrovni do programu, který tyto knihovny kombinuje v době načítání. V metodě dynamického propojování jsou knihovny propojeny v době provádění, takže velikost kódu programu může zůstat malá.
Rozdíl mezi statickým a dynamickým zatížením
| Statické načítání | Dynamické načítání |
|---|---|
| Statické načítání se používá, když chcete program načíst staticky. V době kompilace bude pak celý program linkován a kompilován bez nutnosti jakéhokoli externího modulu nebo závislosti na programu. | V dynamicky načítaném programu budou poskytovány reference a načítání bude provedeno v okamžiku spuštění. |
| Při načítání se celý program načte do paměti a spustí se. | Rutiny knihovny se načítají do paměti pouze tehdy, když jsou v programu vyžadovány. |
Rozdíl mezi statickým a dynamickým propojením
Zde jsou hlavní rozdíly mezi statickým a dynamickým propojováním:
| Statické propojení | Dynamické propojení |
|---|---|
| Statické linkování se používá ke sloučení všech ostatních modulů, které program vyžaduje, do jednoho spustitelného kódu. To pomáhá operačnímu systému zabránit jakékoli závislosti za běhu. | Při použití dynamického linkování není nutné linkovat samotný modul nebo knihovnu s programem. Místo toho se používá odkaz na dynamický modul poskytnutý v době kompilace a linkování. |

