Navidezni pomnilnik: definicija, delovanje, stranjenje, RAM in disk

Virtualni pomnilnik je uveljavljen pristop tehnologije, ki se uporablja v računalnikih. Strojna oprema (fizični del računalnika, na primer procesorjev ali grafična kartica) poganja programsko opremo. Ta programska oprema potrebuje računalniški pomnilnik, da deluje in opravlja svoje naloge. Večina računalnikov danes zmore več nalog hkrati in izvaja več aplikacij, kar imenujemo večopravilnost. V tem primeru si vsi programi, ki so zagnani hkrati, delijo iste strojne vire – računalnik nima na voljo več procesorjev ali več glavnega pomnilnika (RAM) samo zato, ker teče več programov.

Kaj je navidezni (virtualni) pomnilnik

Virtualni pomnilnik je zamisel, da vsaka aplikacija vidi velik, sklenjen blok naslovnega prostora (navidezni naslovni prostor), ki ga lahko uporablja, kot da bi bil njen lasten. Ta blok je virtualen, ker je v ozadju sestavljen iz različnih fizičnih delov: nekaj podatkov je v glavnem pomnilniku (RAM), nekaj pa lahko leži na disku. Preslikavo med navideznimi in fizičnimi naslovi izvaja posebna strojna enota procesorja, imenovana enota za upravljanje pomnilnika (MMU), ki uporablja tabele strani in hitri predpomnilnik prevodov (TLB). Pri tem tesno sodelujejo sodobni operacijski sistemi.

Kako deluje: strani, tabele strani in prevajanje naslovov

Navidezni naslovni prostor je razdeljen na majhne, enako velike enote, imenovane strani (angl. pages). Tipična velikost strani je nekaj kilobajtov (npr. 4 KB), obstajajo pa tudi večje »velike strani«. Operacijski sistem vodi tabele strani, kjer je zapisano, katera navidezna stran se trenutno nahaja v RAM in katera na disku, ter s kakšnimi dovoljenji (npr. samo za branje, izvajanje).

Stranjenje (paging) in zamenjava (swapping)

Ko program poskuša dostopati do bloka pomnilnika (strani), ki trenutno ni v RAM, nastane prelom strani (page fault). Program se za hip ustavi, operacijski sistem pa strani prebere z diska v RAM. Če v RAM ni prostega mesta, se izbere manj uporabljana stran in se po potrebi zapiše na disk (v t. i. datoteko strani/izmenjave) ter sprosti prostor za novo. Temu postopku pravimo stranjenje.

Izraz zamenjava (swapping) se včasih uporablja širše za premikanje večjih delov pomnilnika ali celotnih delovnih nizov procesov na disk in nazaj, medtem ko stranjenje opisuje delo s posameznimi stranmi. V praksi številni sistemi uporabljajo izraz »paging« za oba pojma.

RAM in disk: zakaj je to pomembno

RAM je hiter, a omejen vir. Disk (HDD ali SSD) je bistveno počasnejši, a mnogo večji. Virtualni pomnilnik omogoča, da aplikacije navidezno uporabljajo več pomnilnika, kot ga je fizično v RAM, s tem pa:

  • omogoča zagon in delo več programov hkrati,
  • varuje procese med seboj (pomnilniška izolacija in zaščita),
  • poenostavi programiranje, saj imajo procesi sklenjen naslovni prostor,
  • omogoča napredne tehnike, kot so pomnilniško preslikane datoteke, deljeni pomnilnik in copy-on-write.

Ker je disk počasnejši od RAM, dostop do podatkov, ki so morali biti prebrani z diska, traja občutno dlje. Pri SSD je to hitreje kot pri HDD, vendar še vedno precej počasneje kot neposreden dostop do RAM.

Učinki na zmogljivost in »thrashing«

Občasni prelom strani je normalen. Težave nastanejo, ko sistem stalno premika strani med RAM in diskom; temu pravimo thrashing. Simptomi vključujejo:

  • stalno visoko obremenitev diska,
  • zelo počasno odzivnost aplikacij,
  • kratke zastoje ob preklapljanju med programi ali zavihki.

Najboljši način za zmanjšanje stranjenja je več fizičnega RAM. Pomaga tudi zapiranje nepotrebnih aplikacij ali uporaba manj zahtevnih programov.

Zakaj nekateri sistemi ne uporabljajo virtualnega pomnilnika

Nekateri računalniški sistemi, kot so vgrajeni sistemi, ne uporabljajo navideznega pomnilnika, ker potrebujejo zelo hiter in predvidljiv odzivni čas (determinističnost). Pri navideznem pomnilniku je odziv težko strogo napovedati: aplikacija, ki mora stran naložiti z diska, bo imela drugačen odzivni čas kot aplikacija, ki dostopa do podatkov že v RAM. Zato se ta koncept v realnočasovnih vgrajenih okoljih pogosto izogne ali močno omeji.

Praktični primer

Če imate odprtih veliko zavihkov v brskalniku in zaženete še urejevalnik videa, bo sistem manj aktivne zavihke morda premaknil na disk. Ko se vrnete na dolgo neuporabljen zavihek, utegnete zaznati kratek zamik – to je čas, ki je potreben, da se strani ponovno preberejo v RAM.

Koristni nasveti za uporabo in nastavitev

  • Pustite upravljanje operacijskemu sistemu. Večina sodobnih sistemov najbolje sama prilagaja velikost datoteke strani.
  • Ne izklapljajte datoteke strani. Nekateri programi in sistemske funkcije jo pričakujejo; popolna izključitev lahko povzroči napake.
  • Dodajte RAM, če pogosto opažate počasnost zaradi intenzivnega stranjenja.
  • Spremljajte porabo pomnilnika in zaprite programe, ki jih ne potrebujete.
  • SSD izboljša odzivnost pri stranjenju v primerjavi s HDD, a RAM še vedno ostaja bistveno hitrejši.

Dodatni pojmi in opombe

  • 32-bitni vs. 64-bitni procesi: 64-bitni programi imajo bistveno večji navidezni naslovni prostor kot 32-bitni, kar zmanjša verjetnost, da jim bo zmanjkalo naslovov, ne pa nujno fizičnega RAM.
  • Zaščita pomnilnika: virtualni pomnilnik omogoča, da napaka v enem programu ne pokvari pomnilnika drugega; nepravilni dostopi povzročijo napake, kot so »segmentation fault« ali »access violation«.
  • Ne vsa rezervacija porabi RAM: program lahko rezervira velik naslovni prostor, dejanski RAM pa se porablja le, ko strani resnično uporabljamo (po načelu »po potrebi«).

Sklepno: virtualni pomnilnik je temeljna tehnologija, ki omogoča, da sistemi učinkovito delijo omejen RAM med več programov, zagotavlja varnost in stabilnost ter poenostavi razvoj programske opreme. Razumevanje, kako deluje stranjenje med RAM in diskom, pomaga razložiti, zakaj računalnik včasih obremenjeno »melje« in kako s pravilnimi nastavitvami ter dovolj RAM izboljšamo odzivnost sistema.

Ko program poskuša dostopati do bloka pomnilnika, ki ni v sistemskem pomnilniku, se program ustavi, blok pa se naloži v sistemski pomnilnik. Kar je bilo v tem delu sistemskega pomnilnika, se zapiše na disk. To se običajno imenuje paging.



Program misli, da ima na voljo velik obseg neprekinjenih naslovov, v resnici pa so deli, ki jih trenutno uporablja, razpršeni po glavnem pomnilniku, neaktivni deli pa so shranjeni v datoteki na disku.Zoom
Program misli, da ima na voljo velik obseg neprekinjenih naslovov, v resnici pa so deli, ki jih trenutno uporablja, razpršeni po glavnem pomnilniku, neaktivni deli pa so shranjeni v datoteki na disku.

Vprašanja in odgovori

V: Kaj je virtualni pomnilnik?


O: Virtualni pomnilnik je način upravljanja računalniškega pomnilnika, ki aplikacijam omogoča dostop do bloka pomnilnika določene velikosti. Ta blok pomnilnika lahko prihaja iz različnih delov, na primer iz glavnega pomnilnika ali diska.

V: Kako deluje navidezni pomnilnik?


O: Navidezni pomnilnik deluje tako, da omogoča aritmetično-logični enoti procesorja, da izvaja prevode med aplikacijskimi in sistemskimi viri. Del tega dela opravijo tudi sodobni operacijski sistemi. Ko aplikacija poskuša dostopati do bloka pomnilnika, ki ni v sistemskem pomnilniku, se ustavi in blok se naloži v sistemski pomnilnik.

V: Kateri so primeri računalnikov, ki ne uporabljajo navideznega pomnilnika?


O: Vgrajeni sistemi so primer računalnikov, ki ne uporabljajo navideznega pomnilnika, ker potrebujejo hitre odzivne čase ali čase, ki so vedno enaki. Pri virtualnem pomnilniku je težko predvideti odzivni čas, zato se ne uporablja v vgrajenih sistemih.

V: Kaj je večopravilnost?


O: Večopravilnost je, kadar lahko računalnik počne več kot eno stvar naenkrat in hkrati izvaja več aplikacij, ki si delijo njegove vire.

V: Kaj se zgodi, ko aplikacija poskuša dostopati do bloka pomnilnika, ki ni v sistemskem pomnilniku?


O: Ko aplikacija poskuša dostopati do bloka pomnilnika, ki ni v sistemskem pomnilniku, se ustavi in blok se naloži v sistemski pomnilnik.

V: Kaj je paging?


O: Strani se nanašajo na to, kaj se zgodi, ko je treba tisto, kar je bilo v tem delu sistemskega Pomnilnika, zapisati nazaj na disk, ker aplikacija dostopa do drugega dela, ki tam prvotno ni bil shranjen.

AlegsaOnline.com - 2020 / 2025 - License CC3