Virtuálna pamäť: Rozdiel medzi revíziami

Smazaný obsah Přidaný obsah
d →‎Pozadie: jazyk
Riadok 11:
 
== Pozadie ==
Väčšina počítačov obsahuje štyri základné druhy pamäte: registre v procesore a cache pamäť procesoru (priamo spojené s procesorom), operačnú pamäť (umožnujúcuumožňujúcu procesoru zapisovať a čítať pomerne rýchlo) a diskový odkladací priestor (zápis a čítanie je rádovo pomalšie, ale priestor je väčší).
 
Použitie registrov procesora je zvyčajne ovládané kompilátorom. Rozhodnutie kedy bude použitá cache pamäť a kedy hlavná operačná pamäť je ovládané zväčša harware-omhardvérom počítača, pretože obidva druhy pamäte sú považované za fyzickú pamäť.
 
Veľa aplikácií však požaduje prístup k informáciám (kód alebo dáta), ktoré nemôžu byť uložené vo fyzickej pamäti. Toto je častý jav pri operačných systémoch, ktoré dovoľujú súčasný viacnásobný beh procesov (multitasking). Existuje viacero spôsobov, ako zabezpečiť riešenie tohto problému:
 
# Jednou z možností je nechať rozhodnutie o druhu použitej pamäte pre konkrétnu informáciu a proces manipulácie s ňou priamo na samotnú aplikáciu. Nevýhodou tohto prístupu je že programátor aplikácie musí stráviť čas a úsilie na návrh, implementáciu a odstráňovanieodstraňovanie chýb správy pamäte namiesto toho, aby sa sa zameriaval na vlastnú aplikáciu, čo veľmi znižuje efektivitu jeho práce. Taktiež môže dochádzať ku konfliktom programov, ktoré chcú používať fyzickú pamäť v rovnakom čase.
# Inou možnosťou je nepracovať s dátami priamo vo forme smerníkov, ale prideliť im istú formu handlerov a nechať operačný systém swapovať dáta združené s týmito handlermi medzi odkladacou oblasťou a fyzickou pamäťou. Problémom je, že tento postup komplikuje aplikačný kód a vyžaduje isté formy správania od aplikácie – dáta je potrebné uzamknúť do fyzickej pamäte, aby sa snimis nimi mohlo pracovať, pričom sa obchádzajú jazykové jazykové knižnice, ktoré robia vlastné pridelovanieprideľovanie pamäte vo forme veľkých blokov, čo urýchlujeurýchľuje beh systému. Príkladom takéhoto druhu uporiadaniausporiadania je 16 bitovabitová verzia operačného systému WindowsuWindows.
# Moderné riešenie je v použití virtuálnej pamäte, v ktorej kombinácia špeciálneho hardvéru a operačného systému dovoľuje použiť oba druhy pamäte tak, že vytvárajú dojem väčšej fyzickej pamäte. Pre programy sa táto pamäť javí spločnespoločne ako jedna súčasť. Teoreticky poskytuje schopnosť napodobniť hlavnú pamäť ľubovolnej veľkosti, v praxi je hranica veľkosti limitovaná adresným priestorom (pre 32 bitové operačné systémy 4 GB, pre 64 bitové operačné systémy to môže byť oveľa viac).
 
Virtuálna pamäť robí prácu programátorov oveľa jednoduchšou. NezáležiNezáleží na tom, koľko pamäte aplikácia potrebuje, bude sa správať ako keby mala prístup k hlavnej pamäti požadovanej veľkosti a jej dáta budú uložené do virtuálneho pamäťového priestoru. Programátor možemôže kompletne ignorovať potrebu správy presunu dát medzi rôznymi druhmi pamäte. Ak však programátor chce zabrániť častému swapovaniu, mal by venovať pozornosť minimalizáciu počtu blokov, ku ktorým sa pristupuje často.
 
Virtuálna pamäť býva zvyčajne implementovaná dvoma spôsobmi: