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

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

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 disku. +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. VAX rozděluje paměť na čtyři pevně určené oblasti, každá o velikosti 1 GiB. Jsou to:.

* P0 prostor: používá se pro všeobecné účely, jako jsou například haldy * P1 prostor (nebo také kontrolní prostor): obvykle se používá pro jádro * S0 prostor (nebo také systémový prostor): globální pro všechny procesy operačního systému * S1 prostor: nepoužitý, rezervovaný pro Digital.

Tabulky stránek jsou velké lineární pole. Za normálních okolností by to bylo velmi nehospodárné, pokud jsou třeba adresy na obou stranách možného rozsahu. +more Ovšem tabulka stránek pro aplikace je sama o sobě uložena v paměti stránkového linuxového jádra. Zde je dvouúrovňový strom, umožňující aplikacím použít rozložení paměti bez plýtvání místa na nevyužité položky stránkovací tabulky. VAX MMU se vyznačuje absencí přístupového bitu. Operační systémy, které implementují stránkování, musejí najít nějaký způsob, jak emulovat (napodobit) přístupový bit, jestliže má fungovat efektivně. OS nebude pravidelně mapovat stránky tak, že je stránka bez přítomnosti poruchy, a OS ji může použít, aby nastavil přístupový bit.

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

Související články

Virtuální paměť * Stránkování paměti

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