GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi virtuální stránkou a rámcem stránky?

Fyzická paměť je organizována do PAGE FRAMES. Velikost rámce stránky je mocnina 2 v bajtech a liší se mezi systémy.

Logická paměť je organizována do STRÁNEK. Velikost stránky odpovídá rámci stránky.

Logická adresa je rozdělena na selektor stránky a offset stránky.

Logické stránky jsou mapovány na rámce stránek pomocí tabulek stránek. Struktura tabulky stránek se mezi systémy liší. Selektor stránek logické adresy slouží jako index do tabulky stránek.

Ve většině systémů mohou tabulky stránek specifikovat platné logické adresy, které nemají přidružený rámec stránky. Toto je systém virtuální paměti. Pokud se aplikace pokusí o přístup k takové stránce, spustí výjimku chyby stránky. Obslužný program poruchy stránky operačního systému musí přidělit fyzický rámec stránky, načíst rámec stránky pomocí dat ze sekundárního úložiště, aktualizovat tabulku stránek, aby namapovala logickou stránku na nově přidělený fyzický rámec stránky, a nakonec restartovat instrukci, která chybu způsobila.

Operační systém spravuje tabulky stránek. CPU (transparentně vůči aplikaci) převádí logické rámce stránek na fyzické rámce stránek pomocí tabulky stránek.


Rámec stránky je fyzická vlastnost hlavní paměti. Zatímco virtuální stránka je... virtuální.

frame 0  frame 1  frame 2  frame 3  frame 4
----------------------------------------------
|        |        |        |        |        |
|        |        |        |        |        |
---------------------------------------------- Main Memory

Stránka (nebo paměťová stránka, virtuální stránka nebo logická stránka) je souvislý blok virtuální paměti s pevnou délkou.

Rámec (nebo paměťový rámec nebo fyzická stránka nebo rámec stránky) je blok paměti RAM s pevnou délkou (tj. fyzická paměť existuje – jako ve „fyzické“. Virtuální paměť je vynalezena, aby naše matematika fungovala správně a efektivně za účelem bezpečné správy paměti).

Všimněte si, že rámeček nemusí být souvislý, ale stránka ano. Chceme, aby se proces, operační systém zabýval po sobě jdoucími adresami, protože to všechno usnadňuje. Nechte vyhrazený hardwarový čip (MMU) odpovídat virtuální adrese správné fyzické adrese a naopak.

Virtuální adresy jsou využívány procesem, zatímco fyzické adresy jsou využívány hardwarem, tzn. CPU (umístění adresy do své adresové sběrnice pro vyžádání přístupu do paměti) a podsystém RAM (MMU, tabulky stránek atd.). Když je program zkompilován, překladač převede kód programu na strojově srozumitelný kód a mezi tímto procesem adresy prostory jsou nastaveny ve formě virtuálních adres. Při zpracování procesorem jsou pomocí MMU opět mapovány do fyzických umístění dostupných v paměti, ať už by to byla RAM nebo HDD.

PS. Neschvaluji použití termínu rámec stránky. Pravděpodobně si uvědomujete, že je to zdroj zmatků. Držte se „stránky“ a „rámce“, dvou velmi jednoduchých slov s jasným významem.


Linux
  1. Rozdíl mezi přihlašovacím prostředím a nepřihlašovacím prostředím?

  2. Rozdíl mezi 2>&-, 2>/dev/null, |&, &>/dev/null A>/dev/null 2>&1?

  3. Jaký je rozdíl mezi Sudo Su – a Sudo Su –?

  1. Rozdíl mezi Eot a Eof?

  2. Rozdíl mezi [0-9], [[:digit:]] a D?

  3. Rozdíl mezi velikostí bloku a velikostí clusteru?

  1. Rozdíl mezi potrubím a rozšířením příkazů?

  2. Rozdíl mezi Nss a Pam?

  3. Rozdíl mezi $HOME a '~' (tilda)?