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.

  • 🧠 Definice: Správa paměti alokuje a tracks paměťových bloků pro spouštění programů pro maximalizaci výkonu.
  • 🗂️ Techniky: Jednoduchá souvislá, dělená, stránkovaná a segmentovaná alokace spravují paměť odlišně.
  • 🔄 výměnaping: Procesy se dočasně přesouvají mezi hlavní pamětí a záložní pamětí, aby se podpořilo multiprogramování.
  • 📑 Stránkování vs. segmentace: Stránkování používá rámce s pevnou velikostí; segmentace používá segmenty s proměnnou délkou.
  • 🧩 Fragmentace: Vnitřní a externí fragmentace plýtvá pamětí v malých, nepoužitelných blocích.
  • 🔗 Načítání a propojení: Dynamické načítání a linkování šetří paměť tím, že načítá rutiny pouze v případě potřeby.

Správa paměti v OS

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ýměnaping

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ů:

  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 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:

  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ý 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í.

Nejčastější dotazy

Stránkování rozděluje paměť na rámce s pevnou velikostí a je pro programátora neviditelné, zatímco segmentace rozděluje paměť na segmenty s proměnnou délkou na základě logické struktury programu. Stránkování může způsobit vnitřní fragmentaci; segmentace může způsobit externí fragmentaci.

Vnitřní fragmentace je plýtvání prostorem uvnitř alokovaného bloku, když proces využívá méně prostoru, než je velikost bloku. Externí fragmentace je rozdělení volné paměti na malé rozptýlené bloky, které jsou dohromady dostatečně velké, ale nemohou uspokojit požadavek.

Logickou (virtuální) adresu generuje CPU během provádění programu. Fyzická adresa je skutečné umístění v hlavní paměti. Jednotka správy paměti (MMU) převádí logické adresy na fyzické adresy za běhu programu.

Umělá inteligence dokáže předpovědět, které stránky bude program potřebovat dále, a předem je načíst, čímž zlepšuje rozhodování o ukládání do mezipaměti a nahrazování stránek. Pomáhá také detekovat úniky paměti a dynamicky ladit alokační politiky, čímž snižuje swapování.ping a zlepšit celkový výkon systému.

Ano. Umělá inteligence se dokáže naučit alokační vzorce a zvolit velikosti bloků nebo načasování zhutňování, které minimalizují fragmentaci. Předpovídáním doby životnosti alokací seskupuje podobné objekty, čímž snižuje rozptýlený volný prostor a potřebu nákladného zhutňování paměti.

Shrňte tento příspěvek takto: