virtuální paměť je oblast sekundárního paměťového prostoru počítačového systému (jako je pevný disk nebo jednotka SSD), která se chová, jako by byla součástí paměti RAM nebo primární paměti systému.
v ideálním případě jsou data potřebná ke spuštění aplikací uložena v paměti RAM, kde k nim CPU rychle přistupuje. Ale když jsou spuštěny velké aplikace nebo když běží mnoho aplikací najednou, může se paměť RAM systému zaplnit.
Chcete-li tento problém vyřešit, mohou být některá data uložená v paměti RAM, která se aktivně nepoužívá, dočasně přesunuta do virtuální paměti (která je fyzicky umístěna na pevném disku nebo jiném úložném zařízení). Tím se uvolní místo v paměti RAM, které pak lze použít k uložení dat, ke kterým systém potřebuje okamžitý přístup.
výměnou dat mezi RAM a virtuální pamětí, když to není potřeba, a zpět z virtuální paměti do RAM, když je to potřeba, systém může pokračovat v hladké práci s mnohem méně fyzickou RAM, než by jinak vyžadovalo.
virtuální paměť umožňuje systému spouštět větší aplikace nebo spouštět více aplikací současně bez vyčerpání paměti RAM. Konkrétně může systém fungovat, jako by se jeho celkové zdroje RAM rovnaly množství fyzické paměti RAM plus množství virtuální paměti RAM.
proč je potřeba virtuální paměť?
virtuální paměť byla vyvinuta, když fyzická RAM byla velmi drahá a RAM je stále dražší na gigabajt než paměťová média, jako jsou pevné disky a SSD disky. Z tohoto důvodu je mnohem méně nákladné používat kombinaci fyzické paměti RAM a virtuální paměti než vybavit počítačový systém více paměti RAM.
vzhledem k tomu, že použití virtuální paměti (nebo zvýšení virtuální paměti) nemá žádné další finanční náklady (protože využívá stávající úložný prostor), nabízí počítač způsob, jak používat více paměti, než je fyzicky k dispozici v systému.
dalším klíčovým ovladačem pro použití virtuální paměti je to, že všechny počítačové systémy mají limit (diktovaný hardwarem a softwarem) na množství fyzické paměti RAM, kterou lze nainstalovat. Použití virtuální paměti umožňuje systému pokračovat v provozu nad rámec těchto fyzických limitů paměti RAM.
virtuální paměť vs. fyzická paměť
vzhledem k tomu, že RAM je dražší než virtuální paměť, zdá se – všechny věci jsou stejné–, že počítače by měly být vybaveny co nejméně RAM a co nejvíce virtuální paměti.
ale ve skutečnosti jsou vlastnosti virtuální paměti odlišné od vlastností fyzické paměti. Klíčový rozdíl mezi virtuální pamětí a fyzickou pamětí spočívá v tom, že RAM je mnohem rychlejší než virtuální paměť.
takže systém s 2 GB fyzické paměti RAM a 2 GB virtuální paměti nenabízí stejný výkon jako podobný systém se 4 GB fyzické paměti RAM. Abychom pochopili, proč je nutné pochopit, jak virtuální paměť funguje.
Jak Funguje Virtuální Paměť?
když je spuštěna aplikace (včetně operačního systému), ukládá umístění programových vláken a dalších dat na virtuální adresu, zatímco data jsou ve skutečnosti uložena na fyzické adrese v paměti RAM. Pokud je později tento prostor RAM naléhavěji potřebný jiným procesem, mohou být data vyměněna z paměti RAM a do virtuální paměti.
odpovědnost za sledování všech těchto dat při jejich výměně mezi fyzickou a virtuální pamětí spadá do Správce paměti počítače. Správce paměti udržuje tabulku, která mapuje virtuální adresy používané operačním systémem a aplikacemi na fyzické adresy, ve kterých jsou data skutečně uložena. Při výměně dat mezi RAM a virtuální pamětí se tabulka aktualizuje tak, aby daná virtuální adresa vždy ukazovala na správné fyzické umístění.
počítač může spouštět pouze vlákna a manipulovat s daty uloženými v paměti RAM spíše než ve virtuální paměti. Výměna dat, která jsou potřebná do paměti RAM, trvá nezanedbatelné množství času. Z toho vyplývá, že použití virtuální paměti zahrnuje výkonový zásah.
jinak řečeno, systém se 4 GB RAM bude obecně nabízet vyšší výkon než systém s 2 GB RAM a 2 GB virtuální paměti kvůli výkonovému zásahu způsobenému výměnou, a proto se říká, že virtuální paměť je pomalejší než RAM.
jedním z potenciálních problémů s virtuální pamětí je to, že pokud je množství přítomné paměti RAM příliš malé ve srovnání s množstvím virtuální paměti, může systém nakonec utratit velkou část svých zdrojů CPU, které si vyměňují data tam a zpět. Mezitím se výkon užitečné práce téměř zastaví-proces známý jako mlácení.
aby se zabránilo mlácení, je obvykle nutné snížit počet spuštěných aplikací současně nebo jednoduše zvýšit množství paměti RAM v systému.
operační systémy, jako je většina verzí systému Windows, obecně doporučují, aby uživatelé nezvyšovali virtuální paměť nad 1,5 násobek přítomné fyzické paměti RAM. Takže systém se 4 GB RAM by měl mít virtuální paměť nejvýše 6 GB.
Chcete-li minimalizovat zásah do výkonu způsobený výměnou mezi fyzickou a virtuální pamětí, je nejlepší použít nejrychlejší paměťové zařízení připojené k systému k hostování virtuální paměti a lokalizovat oblast úložiště virtuální paměti na svém vlastním oddílu.
virtuální paměť může jednat ve shodě s hlavní pamětí počítače, aby umožnila rychlejší a plynulejší operace.
jak zvýšit virtuální paměť v systému
většina operačních systémů umožňuje uživatelům zvýšit virtuální paměť z konfigurační stránky.
- v systému Windows mohou uživatelé také umožnit systému dynamicky spravovat množství poskytované virtuální paměti.
- podobně v systému Mac OS mohou uživatelé pomocí panelu předvoleb přidělit virtuální paměť.
typy virtuální paměti: Stránkování a segmentace
virtuální paměť může být řízena mnoha různými způsoby operačním systémem systému a dva nejběžnější přístupy jsou stránkování a segmentace.
stránkování virtuální paměti
v systému, který používá stránkování, je RAM rozdělena do několika bloků-obvykle 4k velikosti-nazývaných stránky. Procesům je pak přiděleno jen tolik stránek, aby splňovaly jejich požadavky na paměť. To znamená, že vždy dojde k plýtvání malým množstvím paměti, s výjimkou neobvyklého případu, kdy proces vyžaduje přesně celý počet stránek.
během běžného provozu jsou stránky (tj. paměťové bloky velikosti 4K) vyměňovány mezi RAM a stránkovým souborem, který představuje virtuální paměť.
segmentace virtuální paměti
segmentace je alternativní přístup ke správě paměti, kde místo stránek s pevnou velikostí jsou procesům přiděleny segmenty s různou délkou, aby přesně splňovaly jejich požadavky. To znamená, že na rozdíl od stránkovaného systému není v segmentu zbytečná paměť.
segmentace také umožňuje rozdělení aplikací do logicky nezávislých adresních prostorů, což jim umožňuje snadnější sdílení a bezpečnější.
ale problém se segmentací je, že protože každý segment má jinou délku, může vést k fragmentaci paměti.“To znamená, že jako segmenty jsou přiděleny a de-přiděleny, malé kousky paměti mohou být ponechány rozptýlené kolem, které jsou příliš malé, aby byly užitečné.
jak se tyto malé kousky hromadí, lze přidělit méně a méně segmentů užitečné velikosti. A pokud OS začne používat tyto malé segmenty, pak existuje obrovské množství, které je třeba sledovat, a každý proces bude muset použít mnoho různých segmentů, což je neefektivní a může snížit výkon.
výhody a nevýhody virtuální paměti
přestože je RAM nyní relativně levná ve srovnání s náklady, kdy byla virtuální paměť poprvé vyvinuta, je stále velmi užitečná a stále se používá v mnoha, možná většině počítačových systémů. Klíčový problém s virtuální pamětí se týká výkonu.
výhody virtuální paměti
- umožňuje spouštět více aplikací současně.
- umožňuje větším aplikacím běžet v systémech, které nemají dostatek fyzické paměti RAM, aby je mohly spustit.
- poskytuje způsob, jak zvýšit paměť, která je méně nákladná než nákup více paměti RAM.
- poskytuje způsob, jak zvýšit paměť v systému, který má maximální množství paměti RAM, kterou může jeho hardware a operační systém podporovat.
nevýhody virtuální paměti
- nenabízí stejný výkon jako RAM.
- může negativně ovlivnit celkový výkon systému.
- zabírá úložný prostor, který by jinak mohl být použit pro dlouhodobé ukládání dat.