Memoria virtuală în sistemul de operare: ce este, paginarea la cerere, avantaje

Ce este memoria virtuală?

Memorie virtuala este un mecanism de stocare care oferă utilizatorului iluzia de a avea o memorie principală foarte mare. Se realizează prin tratarea unei părți a memoriei secundare ca memorie principală. În memoria virtuală, utilizatorul poate stoca procese cu o dimensiune mai mare decât memoria principală disponibilă.

Prin urmare, în loc să încarce un proces lung în memoria principală, sistemul de operare încarcă diferitele părți ale mai mult de un proces în memoria principală. Memoria virtuală este implementată în mare parte cu paginarea cererii și segmentarea cererii.

De ce aveți nevoie de memorie virtuală?

Iată motivele pentru a utiliza memoria virtuală:

  • Ori de câte ori computerul nu are spațiu în memoria fizică, scrie ceea ce trebuie să-și amintească pe hard disk într-un fișier de schimb ca memorie virtuală.
  • Dacă un computer rulează Windows are nevoie de mai multa memorie/RAM, apoi instalat in sistem, foloseste o mica portiune din hard disk in acest scop.

Cum funcționează memoria virtuală?

În lumea modernă, memoria virtuală a devenit destul de comună în zilele noastre. Este folosit ori de câte ori unele pagini necesită să fie încărcate în memoria principală pentru execuție, iar memoria nu este disponibilă pentru acele multe pagini.

Așadar, în acest caz, în loc să împiedice intrarea paginilor în memoria principală, sistemul de operare caută spațiul RAM care este minim utilizat în ultima perioadă sau care nu este referit în memoria secundară pentru a face spațiu pentru noile pagini în memoria principală.

Să înțelegem managementul memoriei virtuale cu ajutorul unui singur exemplu.

De exemplu

Să presupunem că un sistem de operare necesită 300 MB de memorie pentru a stoca toate programele care rulează. Cu toate acestea, în prezent există doar 50 MB de memorie fizică disponibilă stocată pe RAM.

  • Sistemul de operare va configura apoi 250 MB de memorie virtuală și va folosi un program numit Virtual Memory Manager (VMM) pentru a gestiona cei 250 MB.
  • Deci, în acest caz, VMM va crea un fișier pe hard disk cu o dimensiune de 250 MB pentru a stoca memoria suplimentară necesară.
  • Sistemul de operare va continua acum să adreseze memorie, deoarece consideră 300 MB de memorie reală stocată în RAM, chiar dacă este disponibil doar 50 MB spațiu.
  • Este sarcina VMM să gestioneze 300 MB de memorie chiar dacă sunt disponibile doar 50 MB de spațiu de memorie real.

Ce este paginarea cererii?

Paging la cerere

Un mecanism de paginare la cerere este foarte asemănător cu a sistem de paginare cu swapping unde procesele stocate în memoria secundară și paginile sunt încărcate numai la cerere, nu în avans.

Deci, atunci când are loc o schimbare de context, sistemul de operare nu copia niciodată paginile vechiului program de pe disc sau oricare dintre paginile programului nou în memoria principală. În schimb, va începe să execute noul program după încărcarea primei pagini și va prelua paginile programului, la care se face referire.

În timpul execuției programului, dacă programul face referire la o pagină care poate să nu fie disponibilă în memoria principală deoarece a fost schimbată, atunci procesorul o consideră ca o referință de memorie invalidă. Acest lucru se datorează faptului că eroarea paginii și transferurile trimit controlul înapoi de la program la sistemul de operare, care necesită stocarea paginii înapoi în memorie.

Tipuri de metode de înlocuire a paginii

Iată câteva metode importante de înlocuire a paginii

  • FIFO
  • Algoritmul optim
  • Înlocuirea paginii LRU

Înlocuirea paginii FIFO

FIFO (First-in-first-out) este o metodă simplă de implementare. În această metodă, memoria selectează pagina pentru o înlocuire care a fost în adresa virtuală a memoriei pentru cel mai mult timp.

DESCRIERE

  • Ori de câte ori este încărcată o pagină nouă, pagina care a intrat recent în memorie este eliminată. Deci, este ușor să decideți ce pagină trebuie eliminată, deoarece numărul său de identificare este întotdeauna la stiva FIFO.
  • Cea mai veche pagină din memoria principală este cea care ar trebui mai întâi selectată pentru înlocuire.

Algoritmul optim

Metoda optimă de înlocuire a paginii selectează pagina respectivă pentru o înlocuire pentru care timpul până la următoarea referință este cel mai lung.

DESCRIERE

  • Algoritmul optim are ca rezultat cel mai mic număr de erori de pagină. Acest algoritm este dificil de implementat.
  • O metodă optimă a algoritmului de înlocuire a paginii are cea mai mică rată a erorilor de pagină dintre toți algoritmii. Acest algoritm există și care ar trebui să fie numit MIN sau OPT.
  • Înlocuiți pagina care, spre deosebire de a fi folosită pentru o perioadă mai lungă de timp. Folosește doar timpul când o pagină trebuie utilizată.

Înlocuirea paginii LRU

Forma completă a LRU este pagina cea mai puțin utilizată recent. Această metodă ajută sistemul de operare să găsească utilizarea paginii într-o perioadă scurtă de timp. Acest algoritm ar trebui implementat prin asocierea unui contor cu o pagină pare.

Cum functioneaza?

  • Pagina, care nu a fost folosită cel mai mult timp în memoria principală, este cea care va fi selectată pentru înlocuire.
  • Ușor de implementat, păstrați o listă, înlocuiți paginile privind înapoi în timp.

DESCRIERE

  • Metoda de înlocuire a LRU are cel mai mare număr. Acest contor se mai numește și registre de vechime, care specifică vârsta lor și cât de mult ar trebui să se refere și paginile asociate.
  • Pagina care nu a fost folosită cel mai mult timp în memoria principală este cea care ar trebui să fie selectată pentru înlocuire.
  • De asemenea, păstrează o listă și înlocuiește paginile privind înapoi în timp.

Rata defectelor

Rata defecțiunilor este o frecvență cu care un sistem sau o componentă proiectată defectează. Se exprimă în eșecuri pe unitatea de timp. Este notat cu litera greacă ? (lambda).

Avantajele memoriei virtuale

Iată avantajele/beneficiile utilizării memoriei virtuale:

  • Memoria virtuală ajută la câștigarea vitezei atunci când este necesar doar un anumit segment al programului pentru execuția programului.
  • Este foarte util în implementarea unui mediu de multiprogramare.
  • Vă permite să rulați mai multe aplicații simultan.
  • Vă ajută să încadrați multe programe mari în programe mai mici.
  • Datele comune sau codul pot fi partajate între memorie.
  • Procesul poate deveni chiar mai mare decât toată memoria fizică.
  • Datele/codul ar trebui citit de pe disc ori de câte ori este necesar.
  • Codul poate fi plasat oriunde în memoria fizică fără a necesita relocare.
  • Mai multe procese ar trebui menținute în memoria principală, ceea ce crește utilizarea eficientă a procesorului.
  • Fiecare pagină este stocată pe un disc până când este necesară după aceea, va fi eliminată.
  • Permite rularea mai multor aplicații în același timp.
  • Nu există o limită specifică a gradului de multiprogramare.
  • Ar trebui scrise programe mari, deoarece spațiul de adresă virtual disponibil este mai mult în comparație cu memoria fizică.

Dezavantajele memoriei virtuale

Iată dezavantajele/dezavantajele utilizării memoriei virtuale:

  • Aplicațiile pot rula mai lent dacă sistemul utilizează memorie virtuală.
  • Probabil că durează mai mult timp pentru a comuta între aplicații.
  • Oferă mai puțin spațiu pe hard disk pentru utilizarea dvs.
  • Reduce stabilitatea sistemului.
  • Permite rularea aplicațiilor mai mari în sisteme care nu oferă suficientă memorie RAM fizică pentru a le rula.
  • Nu oferă aceleași performanțe ca RAM.
  • Afectează negativ performanța generală a unui sistem.
  • Ocupați spațiul de stocare, care poate fi utilizat altfel pentru stocarea datelor pe termen lung.

Rezumat

  • Memoria virtuală este un mecanism de stocare care oferă utilizatorului iluzia de a avea o memorie principală foarte mare.
  • Memoria virtuală este necesară ori de câte ori computerul nu are spațiu în memoria fizică
  • Un mecanism de paginare la cerere este foarte asemănător cu un sistem de paginare cu schimbare în care procesele stocate în memoria secundară și paginile sunt încărcate numai la cerere, nu în avans.
  • Metodele importante de înlocuire a paginii sunt 1) FIFO 2) Algoritmul optim 3) Înlocuirea paginii LRU.
  • În metoda FIFO (primul intrat, primul ieșit), memoria selectează pagina pentru un înlocuitor care a fost în adresa virtuală a memoriei pentru cel mai mult timp.
  • Metoda optimă de înlocuire a paginii selectează pagina respectivă pentru o înlocuire pentru care timpul până la următoarea referință este cel mai lung.
  • Metoda LRU ajută sistemul de operare să găsească utilizarea paginii într-o perioadă scurtă de timp.
  • Memoria virtuală ajută la câștigarea vitezei atunci când este necesar doar un anumit segment al programului pentru execuția programului.
  • Aplicațiile pot rula mai lent dacă sistemul utilizează memorie virtuală.