Správa paměti v OS: Souvislá, Swapping, Fragmentace

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 pohybovat se zpět a vpřed mezi hlavní pamětí a prováděcím diskem. Pomáhá OS sledovat každé umístění paměti, bez ohledu na to, zda je přiděleno 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ěť.
  • Sleduje, kdykoli se inventář uvolní nebo nepřidělí. Podle toho bude aktualizován stav.
  • Přiděluje prostor aplikačním rutinám.
  • Také se ujistěte, že se tyto aplikace vzájemně neruší.
  • 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é nejdůležitější techniky správy paměti:

Jednotné souvislé přidělení

Je to nejjednodušší technika správy paměti. Při této metodě jsou všechny typy paměti počítače kromě malé části, která je vyhrazena pro operační systém, k dispozici pro jednu aplikaci. Například operační systém MS-DOS přiděluje paměť tímto způsobem. Vestavěný systém také běží na jedné aplikaci.

Dělená alokace

Rozděluje primární paměť do různých paměťových oddílů, což jsou většinou souvislé oblasti 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 k úloze při jejím spuštění a zrušení přidělení při 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 Swapping?

Swapping je metoda, při které by měl být proces dočasně přesunut z hlavní paměti do záložního úložiště. Později bude přenesen zpět do paměti pro pokračování v provádění.

Záložní úložiště je pevný disk nebo jiné sekundární úložné zařízení, které by mělo být dostatečně velké, aby se do něj vešly kopie všech obrazů paměti pro všechny uživatele. Je také schopen nabídnout přímý přístup k těmto obrázkům paměti.

Vyměňovat

Výhody výměny

Zde jsou hlavní výhody/klady swapování:

  • Nabízí vyšší stupeň multiprogramování.
  • Umožňuje dynamické přemístění. Pokud se například používá vazba adresy v době provádění, lze procesy zaměnit na různých místech. Jinak v případě vazeb doby kompilace a načítání by se procesy měly přesunout na stejné místo.
  • Pomáhá k lepšímu využití paměti.
  • Minimální plýtvání časem CPU po dokončení, takže jej lze snadno použít na metodu plánování založenou na prioritách a zlepšit její výkon.

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 na dva typy oddílů

  1. Nízká paměť - Operating systému se nachází v tomto typu paměti.
  2. 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 fit je oddíl alokován, což je první dostatečný blok od začátku hlavní paměti.
  • Nejlepší fit: Přiděluje proces oddílu, který je prvním nejmenším oddílem mezi volnými oddíly.
  • Nejhorší střih: Přiděluje proces k oddíl, což je největší dostatečný volně dostupný oddíl v hlavní paměti.
  • Další Fit: Většinou se podobá prvnímu Fit, ale toto Fit hledá první dostatečný oddíl od posledního alokačního bodu.

Co je stránkování?

Stránkování je mechanismus úložiště, který umožňuje OS získávat procesy ze sekundárního úložiště do hlavní paměti ve formě stránek. Při 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 bylo maximální využití hlavní paměti a aby se zabránilo externí fragmentaci. Stránkování slouží pro rychlejší přístup k datům a je to logický koncept.

Co je fragmentace?

Procesy jsou ukládány a odstraňovány z paměti, čímž vzniká volné místo v paměti, které je příliš malé na to, aby jej mohly využít jiné procesy.

Někdy se tomu, že procesy nejsou schopny alokovat paměťové bloky, protože její malá velikost a paměťové bloky zůstávají vždy nevyužity, říká fragmentace. Tento typ problému nastává během dynamického systému přidělování paměti, kdy jsou volné bloky poměrně malé, takže není schopen splnit žádný požadavek.

Existují dva typy metod fragmentace:

  1. Vnější fragmentace
  2. 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ý na to, aby unesl celý proces.

Co je segmentace?

Metoda segmentace funguje téměř podobně jako stránkování. Jediný rozdíl mezi těmito dvěma je, že segmenty mají proměnnou délku, zatímco při metodě 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 obsaženy na disku v přemístitelném formátu zatížení. Hlavní program bude načten do paměti a bude spuštěn. Dynamické načítání také poskytuje lepší využití místa v paměti.

Co je dynamické propojení?

Linking je metoda, která pomáhá OS shromažďovat a spojovat různé moduly kódu a dat do jednoho spustitelného souboru. Soubor lze načíst do paměti a spustit. OS může propojit knihovny na systémové úrovni do programu, který kombinuje knihovny při načítání. V metodě dynamického propojení jsou knihovny propojeny v době provádění, takže velikost programového kódu 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 svůj program načíst staticky. Poté v době kompilace bude celý program propojen a zkompilován bez potřeby jakéhokoli externího modulu nebo závislosti na programu. V dynamicky načítaném programu budou poskytnuty odkazy a načtení bude provedeno v době provádě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 propojením:

Statické propojení Dynamické propojení
Statické propojení se používá ke spojení všech ostatních modulů, které program vyžaduje, do jediného spustitelného kódu. To pomáhá OS zabránit jakékoli závislosti na běhovém prostředí. Při použití dynamického propojení není nutné propojovat skutečný modul nebo knihovnu s programem. Místo toho použijte odkaz na dynamický modul poskytnutý v době kompilace a propojení.

Shrnutí

  • Správa paměti je proces řízení a koordinace počítačové paměti, přiřazování částí nazývaných bloky různým běžícím programům za účelem optimalizace celkového výkonu systému.
  • 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ěť.
  • V Single Contiguous Allocation jsou všechny typy paměti počítače kromě malé části, která je vyhrazena pro operační systém, dostupné pro jednu aplikaci.
  • Partitioned Allocation metoda rozděluje primární paměť do různých paměťových oddílů, což jsou většinou souvislé oblasti paměti
  • Metoda správy stránkované paměti rozděluje hlavní paměť počítače na jednotky pevné velikosti známé jako rámce stránek
  • Segmentovaná paměť je jedinou metodou správy paměti, která neposkytuje uživatelskému programu lineární a souvislý adresní prostor.
  • Swapping je metoda, při které by měl být proces dočasně přesunut z hlavní paměti do záložního úložiště. Později bude přenesen zpět do paměti pro pokračování v provádění.
  • Alokace paměti je proces, při kterém je počítačovým programům přiřazena paměť nebo prostor.
  • Stránkování je mechanismus úložiště, který umožňuje OS získávat procesy ze sekundárního úložiště do hlavní paměti ve formě stránek.
  • Fragmentace označuje stav disku, ve kterém jsou soubory rozděleny na části roztroušené po disku.
  • Metoda segmentace funguje téměř podobně jako stránkování. Jediný rozdíl mezi těmito dvěma je, že segmenty mají proměnnou délku, zatímco při metodě stránkování mají stránky vždy pevnou velikost.
  • Dynamické načítání je rutina programu, která se nenačte, dokud ji program nezavolá.
  • Linking je metoda, která pomáhá OS shromažďovat a spojovat různé moduly kódu a dat do jednoho spustitelného souboru.