Jednotka správy paměti

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Jednotka správy paměti je v informatice označení pro část paměti, která se používá pro ukládání a manipulaci s daty. V počítačích se jedná o nejběžnější druh paměti, který slouží k uchování programů a jejich dat během provozu. Jednotku správy paměti je možné rozdělit na menší bloky, které jsou přístupné jednotlivým programům nebo procesům. Každý blok má svou adresu, kterou lze použít k jeho lokalizaci a manipulaci. Jednotka správy paměti byla vyvinuta jako vylepšení původního systému jednotky správy paměti. Zatímco původní systém pracoval s jednotnou paměťovou oblastí, nový systém umožňuje efektivnější správu paměti pomocí rozdělení na menší bloky. To umožňuje lepší využití dostupné paměti a zvyšuje efektivitu procesů prováděných v počítači. Využití jednotky správy paměti je nezbytné pro správný chod počítačových systémů. Pomáhá optimalizovat využití paměti a zajišťuje, že každý proces má dostatečný prostor pro svou činnost. Jednotka správy paměti je součástí operačního systému a je spravována kernelovou částí. Procesy mohou komunikovat s jednotkou správy paměti pomocí příkazů a funkcí poskytovaných operačním systémem. Jednotka správy paměti je základní součástí počítačové architektury a je nezbytná pro běh většiny aplikací. Její správná konfigurace a efektivní využití jsou klíčové pro zajištění rychlého a spolehlivého běhu počítačových systémů.

Jednotka správy paměti pro mikroprocesor Motorola 68010 v podobě samostatného obvodu Motorola 68451 Memory management unit (MMU) je v informatice součást mikroprocesoru umožňující přístup do virtuální paměti (dříve samostatná hardwarová součást mimo procesor). Zajišťuje překlad virtuální adresy na fyzickou adresu, ochranu paměti, kontrolu koherence cache, arbitraci paměťové sběrnice a v závislosti na architektuře také přepínání mezi paměťovými bankami.

...
...

Funkce

Možné začlenění jednotky správy paměti do počítačového systému

MMU jednotky rozdělují virtuální adresní prostor na stránky. Velikost každé stránky se rovná mocnině čísla 2, obvykle několika KiB, nicméně může být i mnohem větší. +more Dolních n bitů z adresy (ofset bez čísla stránky) zůstává beze změny. Horní bity z adresy označují číslo virtuální stránky. MMU překládá číslo virtuální stránky na fyzickou stránku nejprve pomocí asociativní cache paměti, nazývané TLB (Translation Lookaside Buffer). Pokud se požadovaná stránka v TLB nevyskytuje, je spuštěn pomalejší mechanismus, vyhledávání v tabulce stránek (EAT). Fyzické číslo stránky je zkombinováno s číslem rámce stránky (hodnota v tabulce stránek), což vytvoří kompletní fyzickou adresu. Položka v tabulce stránek, nebo TLB může také obsahovat informaci, zdali je na vybrané stránce zapsána nějaká informace, doba posledního použití, či přístupová oprávnění (uživatelský, nebo privilegovaný mód). Tyto informace mohou být využity mechanismem pro plánování procesů.

Občas položka TLB nebo tabulka stránek neumožní přístup na virtuální stránku. To může být způsobeno tím, že na zvolené virtuální stránce není adresována žádná fyzická paměť (což bývá často důsledek softwarové chyby), anebo proto, že je požadovaná stránka odsunuta na disk. +more V tom případě vyšle MMU řadiči zprávu o výpadku stránky. Operační systém poté vykoná patřičnou obsluhu přerušení. Pokud ještě je v operační paměti volné místo, provede se přemapování a použité virtuální číslo stránky je nastaveno na novou fyzickou adresu. Pokud již volné místo v operační pamětí není, je pro účel přemapování zvolena „nahrazovacím“ algoritmem existující stránka s tím, že původní data jsou uložena na pevný disk.

Výhodná vlastnost MMU je také eliminace problému s fragmentovanou pamětí. Souvislý blok virtuálních adres může totiž být namapován na více bloků fyzické paměti, které nemusí být uloženy vcelku. +more Kromě toho může být každému procesu přidělen virtuální adresní prostor, do kterého nemají přístup ostatní procesy.

Přínos

V některých případech může být chyba stránky využita pro detekci chyby v programu. Klíčovým přínosem MMU je ochrana paměti: jádro operačního systému může použít MMU k ochraně proti chybám v programech, když detekuje (či znemožní) přístup do paměti, která danému procesu nepatří. +more Znamená to, že OS přiděluje každému programu svůj vlastní adresový prostor. MMU také zmírňuje problém fragmentace paměti. Potom, co byly přiděleny bloky paměti a následně uvolněny, volná paměť může začít s fragmentací (přerušovanou) tak, že největší souvislý blok volné paměti může být mnohem menší než celková velikost uvolněné paměti. Souvislý rozsah adres virtuální paměti, může být mapován na několik nesousedících bloků fyzické paměti. U prvních návrhů mikroprocesorů se správa paměti prováděla v samostatném integrovaném obvodu, jako je VLSI VI475 (1986), Motorola 68851 (1984). Později mikroprocesory (Motorola 68030 a Zilog Z280) umístily MMU spolu s CPU na stejný integrovaný obvod, stejně jako Intel 80286 a později x86 mikroprocesory.

Příklady

Většina moderních systémů rozdělí paměť na stránky, které jsou 4-64 KiB velké, často s možností využití velké stránky od 2 MiB do 512 MiB. Stránka překladů je uložena v tzv. +more Translation Lookaside Buffer (TLB). Některé systémy, zejména starší RISC, byly v pasti, když nemohly najít stránku s překladem v TLB. Většina systémů povoluje vypnutí MMU.

VAX

Stránky VAX jsou velké 512 B, jsou tedy velmi malé. OS tak může zacházet s více stránkami jako s jednou velkou. +more Například Linux má VAX skupiny po osmi stránkách. To znamená, že systém pracuje se 4 KiB stránkou. Virtuální adresní prostor procesu je v operačním systému VMS rozdělen na čtyři pevně určené oblasti, každá o velikosti 1 GiB. Jsou to:.

* P0 prostor : obsahuje kód programu a data procesu * P1 prostor : obsahuje řídicí data procesu a zásobník procesu * S0 prostor : zpřístupňuje kód a data operačního systému * S1 prostor: rezervovaný prostor.

Tabulky stránek jsou velká lineární pole. Pokud by se používaly adresy z obou konců adresního prostoru, bylo by to velmi nehospodárné, ale tabulka stránek pro aplikace je sama uložena ve stránkované paměti jádra OS. +more Díky použití dvouúrovňového stromu mohou mít aplikace rozsáhlé oblasti nepoužité paměti bez toho, že by nevyužité položky stránkovací tabulky zabíraly nějaký prostor. Nevýhodou VAX MMU je, že postrádá bit indikující přístup ke stránce. Aby operační systém, který implementuje stránkování, fungoval efektivně, musí přístupový bit nějakým způsobem emulovat (napodobit jeho funkci). Obvykle OS pravidelně odmapovává stránky, takže výpadky stránek mohou operačnímu systému posloužit k nastavování přístupového bitu.

MIPS

MIPS architektura podporuje až 64 záznamů v TLB. Počet záznamů je konfigurovatelný v konfiguraci CPU před syntézou. +more TLB záznamy jsou dvojí. Každá položka TLB mapuje číslo virtuální stránky (VPN2) do jednoho ze dvou rámců (PFN0 nebo PFN1), v závislosti na nejmenším významovém bitu virtuální adresy. Tento bit a bitová maska stránky nejsou uloženy v VPN2. Každá položka má vlastní velikost stránky, která může být libovolně velká od 1 KiB do 256 MiB v násobcích po 4. Každý PFN v TLB záznamu má atribut cache a status bit. VPN2 má globální status bit a OS přiřazené ID, které je součástí záznamu do TLB v případě že je tento bit v nule.

X86-64

Architektura x86-64 je 64bitové rozšíření x86, které téměř úplně odstranilo segmentaci. Je to použito téměř ve všech operačních systémech pro procesory 386 nebo novější. +more V dlouhodobém režimu jsou všechny segmentové posuny ignorovány s výjimkou částí FS a GS. Při použití 4 KiB stránek má tabulkový strom čtyři úrovně místo tří. Virtuální adresy jsou rozděleny takto: 16 bitů nepoužité, 9 bitů pro každou ze čtyř úrovní stromu (celkem 36) a 12 nejnižších bitů se přímo zkopíruje do výsledků. Při použití 2 MiB stránek má tabulkový strom pouze tři úrovně pro celkově 27 bitů. Některé novější CPU podporují 1 GB stránky s dvěma úrovněmi pro 30 bitů.

Odkazy

Reference

Literatura

Související články

Virtuální paměť

Externí odkazy

Kategorie:Správa paměti

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top