Metoda správy paměti pomocí stránkování a stránkování na žádost

Důvodem pro využití stránkování nebo stránkování na žádost (virtuální paměť) je odstranění problému vnitřní a vnější fragmentace (viz kapitola 2.3.2).

Stránkování

Máme paměť, do které chceme zavést aplikaci. Tuto paměť rozdělíme na stránky a naši aplikaci také rozdělíme na stránky o stejné velikosti a poté jednotlivé stránky zavedeme do paměti - stránku na stránku. Tato metoda je hojně užívána.

Výhody

  • pokud aplikace potřebuje více místa, přidělíme ji další stránku
  • odstranění vnitřní fragmentace

Nevýhody

  • musíme udržovat přehled, jaká stránka patří jaké aplikaci
  • musíme hlídat hranice jednotlivých stránek
  • pomalá metoda
  • stále jsme omezeni celkovou velikostí paměti

Virtuální paměť (Stránkování na žádost)

Vezmeme si úložiště, z něho si sebereme kus a použijeme ho jako nástavec pro paměť RAM. Tuto paměť rozdělíme na stránky. Když chceme přistoupit k paměti na disku, přehodíme požadovanou stránku z disku do operační paměti. Velmi používané v moderních OS.

Výhody

  • odstranění vnitřní a vnější fragmentace
  • odpadá omezení velikostí paměti

Nevýhody

  • přístup k úložišti je pomalejší než přístup k operační paměti (Klidně až 100x pomalejší)
  • OS si musí udržovat přehled o volných nebo využitých stránkách
  • nelze zavést virtuální stránku, pokud máme plnou operační paměť (musíme vybrat stránku, která půjde pryč z operační paměti)
    • stránka, která byla nejdéle v paměti, jde ven (FIFO)
    • Nejčastěji se používá hodinový algoritmus. Pokud je stránka používaná, nastaví se stavový bit stránky na 1. Algoritmus prochází stránky a nastavuje 0, pokud není používaná. Pokud přijde požadavek na přidělení stránky, algoritmus přidělí první stránku, kde nalezne 0.
      • Dnes se používá místo 1 bitu 8 bitů, které se dekrementují o 3. Zabere 3 průchody než se na stránce objeví příznak nuly.

Virtuální paměť se děli na soubor nebo oddíl.

  • na disku je vyhrazen prostor, který je vyhrazen pro virtuální paměť

Oddíl: Používá se pro Linux nebo MacOS

  • lze měnit za běhu
  • pokud máme stránku, kterou budeme jen číst, tak se nezavádí do operační paměti
  • na MacOS se mění velikost virtuální paměť v závislosti na požadavcích aplikace

Soubor: Používá se na Windows

  • jedná se o soubor pagefile.sys nacházející se v kořenovém adresáři Windows

Segmentace

Segmentace spočívá v tom, že část paměti je rozdělena na jednotlivé části, v jedné části jsou knihovny v druhé data, ve třetí programy apod. Aplikace poté sdílí přístup k jednotlivým částem a datům. Nepoužívá se.

Nevýhody

  • aplikace si navzájem mění data v částech, ke kterým přistupovali

Segmentace se stránkováním

Se segmentací se používá zároveň stránkování. Používalo se ve starších Windows (pro částí, kde je to bezpečné - dynamicky linkované knihovny).

Citace