Virtuali atmintis yra saugojimo schema, kuri suteikia vartotojui iliuziją, kad turi labai didelę pagrindinę atmintį. Tai daroma pagrindine atmintimi traktuojant antrinės atminties dalį.
Pagal šią schemą vartotojas gali įkelti didesnio dydžio procesus nei turima pagrindinė atmintis, turėdamas iliuziją, kad atmintis yra skirta procesui įkelti.
Užuot įkėlusi vieną didelį procesą į pagrindinę atmintį, operacinė sistema įkelia įvairias daugiau nei vieno proceso dalis į pagrindinę atmintį.
Taip bus padidintas kelių programavimo laipsnis, taigi ir procesoriaus panaudojimas.
Kaip veikia virtuali atmintis?
Šiuolaikiniu žodžiu virtuali atmintis šiais laikais tapo gana įprasta. Pagal šią schemą, kai kai kuriuos puslapius reikia įkelti į pagrindinę atmintį, kad būtų galima vykdyti, o atmintis nėra prieinama tiems puslapiams, tokiu atveju, užuot sustabdžiusi puslapių patekimą į pagrindinę atmintį, OS ieško RAM sritis, kuri pastaruoju metu buvo mažiausiai naudojama arba kurios nėra nurodytos, ir nukopijuokite ją į antrinę atmintį, kad pagrindinėje atmintyje būtų vietos naujiems puslapiams.
Kadangi visa ši procedūra vyksta automatiškai, todėl kompiuteris jaučiasi tarsi turintis neribotą RAM.
Paklausos paieška
Paklausos paieška yra populiarus virtualios atminties valdymo metodas. Paklausos ieškos metu mažiausiai naudojami proceso puslapiai išsaugomi antrinėje atmintyje.
Puslapis nukopijuojamas į pagrindinę atmintį, kai jo reikalaujama arba atsiranda puslapio klaida. Yra įvairių puslapių pakeitimo algoritmų, kurie naudojami norint nustatyti, kurie puslapiai bus pakeisti. Kiekvieną iš jų išsamiai aptarsime vėliau.
Virtualios atminties valdymo sistemos momentinė nuotrauka
Tarkime, kad 2 procesai, P1 ir P2, turi po 4 puslapius. Kiekvieno puslapio dydis yra 1 KB. Pagrindinėje atmintyje yra 8 kadrai po 1 KB. OS yra pirmuosiuose dviejuose skaidiniuose. Trečiame skyriuje 1ŠvIšsaugomas P1 puslapis, o kiti kadrai taip pat rodomi užpildyti skirtingais procesų puslapiais pagrindinėje atmintyje.
Abiejų puslapių puslapių lentelės yra 1 KB dydžio, todėl jas galima sutalpinti į vieną kadrą. Abiejų procesų puslapių lentelėse yra įvairios informacijos, kuri taip pat rodoma paveikslėlyje.
CPU yra registras, kuriame yra puslapio lentelės bazinis adresas, kuris yra 5 P1 ir 7 P2 atveju. Šis puslapio lentelės bazinis adresas bus pridėtas prie loginio adreso puslapio numerio, kai reikės pasiekti faktinį atitinkamą įrašą.
Virtualios atminties privalumai
- Bus padidintas daugiafunkcinio programavimo laipsnis.
- Vartotojas gali paleisti didelę programą su mažiau realios RAM.
- Nereikia pirkti daugiau RAM.
Virtualios atminties trūkumai
- Sistema tampa lėtesnė, nes pakeitimas užtrunka.
- Perjungiant programas reikia daugiau laiko.
- Vartotojas turės mažiau vietos standžiajame diske.