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

⚡ Rezumat inteligent

Memoria virtuală este un mecanism de stocare care oferă utilizatorului iluzia unei memorii principale mari, tratând o parte din memoria secundară ca RAM. Permite rularea unor procese mai mari decât memoria fizică și este implementată cu paginare la cerere.

  • 🧠 Definiție: Memoria virtuală tratează o parte din memoria secundară ca memorie principală pentru a rula procese mai mari.
  • 🎯 De ce este necesar: Oferă memorie suplimentară atunci când memoria RAM fizică este insuficientă, utilizând un fișier swap pe disc.
  • 📥 Paginare la cerere: Paginile sunt încărcate de pe disc în RAM numai atunci când sunt efectiv referențiate.
  • 🔁 Înlocuire pagină: FIFO, Optimal și LRU decid ce pagină să fie eliminată în cazul unei erori de pagină.
  • ✅ Avantaj: Suportă multiprogramare și permite programelor să depășească dimensiunea memoriei fizice.
  • ⚠️ Dezavantaj: Este mai lentă decât memoria RAM și poate reduce performanța generală a sistemului.

Memoria virtuală în sistemul de operare

Ce este memoria virtuală?

Memorie virtuala este un mecanism de stocare care oferă utilizatorului iluzia că are o memorie principală foarte mare. Acest lucru se realizează prin tratarea unei părți din memoria secundară 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 utilizarea memoriei virtuale:

  • Ori de câte ori computerul nu are spațiu în memoria fizică, acesta scrie ceea ce trebuie să rețină pe hard disk într-un fișier swap ca memorie virtuală.
  • Dacă un computer rulează Windows necesită mai multă memorie/RAM decât este instalată în sistem, folosește o mică porțiune a hard disk-ului în acest scop.

Cum funcționează memoria virtuală?

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

Deci, în acest caz, în loc să împiedice paginile să intre în memoria principală, sistemul de operare caută spațiul RAM care este utilizat minim în ultima vreme sau care nu este referențiat și îl mută în memoria secundară pentru a face loc noilor pagini din 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ă în memoria RAM.

  • Sistemul de operare va configura apoi 250 MB de memorie virtuală și va utiliza un program numit Virtual Memory Manager (VMM) pentru a gestiona acei 250 MB.
  • Deci, în acest caz, VMM va crea un fișier pe hard disk cu dimensiunea de 250 MB pentru a stoca memoria suplimentară necesară.
  • Sistemul de operare va continua acum să adreseze memoria ca și cum ar considera 300 MB de memorie reală stocată în memoria RAM, chiar dacă sunt disponibili doar 50 MB de spațiu.
  • Sarcina VMM este de a gestiona 300 MB de memorie, chiar dacă sunt disponibili 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 schimbping, unde procesele sunt stocate în memoria secundară, iar paginile sunt încărcate doar la cerere, nu în avans.

Așadar, atunci când are loc o schimbare de context, sistemul de operare nu copiază niciodată paginile vechiului program de pe disc sau paginile noului program în memoria principală. În schimb, va începe executarea noului 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 înlocuită, atunci procesorul o consideră o referință de memorie invalidă. Acest lucru se datorează faptului că eroarea de pagină transferă controlul înapoi de la program la sistemul de operare, care solicită stocarea paginii înapoi în memorie.

Tipuri de metode de înlocuire a paginii

Iată câteva metode importante de înlocuire a paginilor:

  • 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.

Categorii

  • Ori de câte ori se încarcă o pagină nouă, pagina care a stat cel mai mult timp în memorie este eliminată. Prin urmare, este ușor să decideți ce pagină să eliminați, deoarece numărul său de identificare se află întotdeauna în partea de sus a stivei FIFO.
  • Cea mai veche pagină din memoria principală este cea care ar trebui selectată prima 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.

Categorii

  • Algoritmul Optimal are ca rezultat cel mai mic număr de erori de pagină. Acest algoritm este dificil de implementat.
  • Un algoritm optim de înlocuire a paginii are cea mai mică rată de erori de pagină dintre toți algoritmii. Acest algoritm există și ar trebui numit MIN sau OPT.
  • Înlocuiește pagina care este puțin probabil să fie utilizată pentru o perioadă mai lungă de timp. Folosește doar timpul în care o pagină trebuie utilizată.

Înlocuirea paginii LRU

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

Cum functioneaza?

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

Categorii

  • Metoda de înlocuire a LRU are cel mai mare număr. Acest contor este numit și registru de îmbătrânire, care specifică vârsta și cât de mult ar trebui referențiate și paginile asociate.
  • Pagina din memoria principală care nu a fost utilizată cel mai mult timp este cea care ar trebui selectată pentru înlocuire.
  • De asemenea, păstrează o listă și înlocuiește paginile privind înapoi în timp.

Rata defectelor

Rata de defecțiuni este frecvența cu care un sistem sau o componentă proiectată se defectează. Se exprimă în defecțiuni pe unitatea de timp. Se notează cu litera grecească λ (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.
  • Un proces poate deveni chiar mai mare decât toată memoria fizică.
  • Datele/codul ar trebui citite 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ă care 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 adrese virtuale disponibil este mai mare î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 să treci de la o aplicație la alta.
  • Oferă mai puțin spațiu pe hard disk pentru uz.
  • Reduce stabilitatea sistemului.
  • Permite rularea aplicațiilor mai mari în sisteme care nu oferă suficientă memorie RAM fizică pentru a le rula.
  • Nu oferă aceeași performanță ca memoria RAM.
  • Afectează negativ performanța generală a unui sistem.
  • Ocupă spațiu de stocare, care poate fi utilizat în alt scop pentru stocarea datelor pe termen lung.

Întrebări frecvente

O eroare de pagină apare atunci când un program face referire la o pagină care nu se află în memoria principală. Sistemul de operare întrerupe programul, preia pagina necesară de pe disc în memoria RAM, actualizează tabelul de pagini și apoi reia execuția.

Dezechilibrul se întâmplă atunci când sistemul petrece mai mult timp schimbând date.ping pagini între RAM și disc decât executarea proceselor. Aceasta este cauzată de un grad prea ridicat de multiprogramare și degradează sever performanța. Reducerea proceselor active sau adăugarea de RAM ajută.

Memoria RAM este un hardware fizic rapid în care sunt stocate datele active. Memoria virtuală este o tehnică ce extinde memoria RAM utilizând spațiul pe disc ca și cum ar fi memorie. Memoria virtuală este mult mai mare, dar mult mai lentă decât memoria RAM reală.

Inteligența artificială poate învăța modelele de acces la memorie ale unui program și poate prezice ce pagini vor fi necesare în curând. Acest lucru permite sistemului de operare să păstreze paginile utile în RAM și să le elimine pe cele corecte, apropiindu-se de algoritmul optim ideal și reducând erorile de pagină.

Da. Prin analizarea secvențelor de acces anterioare, modelele de inteligență artificială pot preîncărca paginile înainte ca acestea să fie solicitate și pot ajusta agresivitatea cu care sunt schimbate paginile. Acest lucru reduce erorile de pagină și suprasolicitarea, deși erorile de predicție și cheltuielile generale trebuie menținute la un nivel scăzut.

Rezumați această postare cu: