memoria virtuală este o zonă a spațiului de stocare secundar al memoriei unui sistem informatic (cum ar fi un hard disk sau o unitate SSD) care acționează ca și cum ar fi o parte a memoriei RAM sau a memoriei primare a sistemului.
în mod ideal, datele necesare pentru a rula aplicații sunt stocate în RAM, unde pot fi accesate rapid de CPU. Dar când se execută aplicații mari sau când multe aplicații rulează simultan, memoria RAM a sistemului poate deveni plină.
pentru a rezolva această problemă, unele date stocate în memoria RAM care nu sunt utilizate în mod activ pot fi mutate temporar în memoria virtuală (care este localizată fizic pe un hard disk sau pe alt dispozitiv de stocare). Acest lucru eliberează spațiu în RAM, care poate fi apoi utilizat pentru a găzdui date pe care sistemul trebuie să le acceseze iminent.
prin schimbarea datelor între memoria RAM și memoria virtuală atunci când nu este necesară și înapoi de la memoria virtuală la memoria RAM atunci când este necesară, un sistem poate continua să funcționeze fără probleme cu mult mai puțină memorie RAM fizică decât ar necesita altfel.
memoria virtuală permite unui sistem să ruleze aplicații mai mari sau să ruleze mai multe aplicații în același timp, fără a rămâne fără RAM. Mai exact, sistemul poate funcționa ca și cum resursele sale RAM totale ar fi egale cu cantitatea de memorie RAM fizică, plus cantitatea de memorie RAM virtuală.
de ce este nevoie de memorie virtuală?
memoria virtuală a fost dezvoltată atunci când memoria RAM fizică era foarte scumpă, iar memoria RAM este încă mai scumpă pe Gigabyte decât mediile de stocare, cum ar fi hard disk-urile și unitățile SSD. Din acest motiv, este mult mai puțin costisitor să folosiți o combinație de memorie RAM fizică și memorie virtuală decât să echipați un sistem informatic cu mai multă memorie RAM.
deoarece utilizarea memoriei virtuale (sau creșterea memoriei virtuale) nu are costuri financiare suplimentare (deoarece utilizează spațiul de stocare existent), oferă o modalitate pentru un computer de a utiliza mai multă memorie decât este disponibilă fizic pe sistem.
un alt driver cheie pentru utilizarea memoriei virtuale este că toate sistemele informatice au o limită (dictată de hardware și software) asupra cantității de memorie RAM fizică care poate fi instalată. Utilizarea memoriei virtuale permite sistemului să continue să funcționeze dincolo de aceste limite fizice RAM.
memorie virtuală vs.memorie fizică
deoarece memoria RAM este mai scumpă decât memoria virtuală, s – ar părea – toate lucrurile fiind egale-că computerele ar trebui să fie echipate cu cât mai puțină memorie RAM și cât mai multă memorie virtuală posibil.
dar, de fapt, caracteristicile memoriei virtuale sunt diferite de cele ale memoriei fizice. Diferența cheie dintre memoria virtuală și memoria fizică este că memoria RAM este mult mai rapidă decât memoria virtuală.
deci, un sistem cu 2 GB RAM fizic și 2 GB memorie virtuală nu va oferi aceeași performanță ca un sistem similar cu 4 GB RAM fizic. Pentru a înțelege de ce, este necesar să înțelegem cum funcționează memoria virtuală.
Cum Funcționează Memoria Virtuală?
când o aplicație (inclusiv sistemul de operare) rulează, stochează locația firelor de program și a altor date la o adresă virtuală, în timp ce datele sunt stocate efectiv la o adresă fizică în RAM. Dacă mai târziu spațiul RAM este necesar mai urgent de un alt proces, atunci datele pot fi schimbate din RAM și în memoria virtuală.
responsabilitatea pentru urmărirea tuturor acestor date, deoarece sunt schimbate între memoria fizică și cea virtuală, revine managerului de memorie al computerului. Managerul de memorie menține un tabel care mapează adresele virtuale utilizate de sistemul de operare și aplicații la adresele fizice în care sunt stocate datele. Când datele sunt schimbate între memoria RAM și memoria virtuală, tabelul este actualizat astfel încât o anumită adresă virtuală să indice întotdeauna locația fizică corectă.
un computer poate rula doar fire și manipula datele stocate în RAM, mai degrabă decât în memoria virtuală. Și este nevoie de o cantitate neglijabilă de timp pentru a schimba datele necesare în memoria RAM. În consecință, rezultă că utilizarea memoriei virtuale implică o lovitură de performanță.
altfel spus, un sistem cu 4 GB RAM va oferi, în general, performanțe mai mari decât un sistem cu 2 GB RAM și 2 GB memorie virtuală din cauza loviturii de performanță cauzate de schimbarea și, din acest motiv, se spune că memoria virtuală este mai lentă decât RAM.
o problemă potențială cu memoria virtuală este că, dacă cantitatea de memorie RAM prezentă este prea mică în comparație cu cantitatea de memorie virtuală, atunci un sistem poate ajunge să cheltuiască o mare parte din resursele sale CPU schimbând date înainte și înapoi. Între timp, performanța muncii utile se oprește aproape – un proces cunoscut sub numele de bătaie.
pentru a preveni bătaia, este de obicei necesar să se reducă numărul de aplicații rulate simultan sau pur și simplu să se mărească cantitatea de memorie RAM din sistem.
sistemele de operare, cum ar fi majoritatea versiunilor de Windows, recomandă în general utilizatorilor să nu crească memoria virtuală dincolo de 1,5 ori cantitatea de memorie RAM fizică prezentă. Deci, un sistem cu 4 GB RAM ar trebui să aibă o memorie virtuală de cel mult 6 GB.
pentru a minimiza impactul de performanță cauzat de schimbarea între memoria fizică și cea virtuală, este mai bine să utilizați cel mai rapid dispozitiv de stocare conectat la sistem pentru a găzdui memoria virtuală și pentru a localiza zona de stocare a memoriei virtuale pe propria partiție.
memoria virtuală poate acționa împreună cu memoria principală a computerului pentru a permite operații mai rapide și mai fluide.
cum se mărește memoria virtuală într-un sistem
majoritatea sistemelor de operare permit utilizatorilor să mărească memoria virtuală dintr-o pagină de configurare.
- în Windows, utilizatorii pot permite, de asemenea, sistemului să gestioneze cantitatea de memorie virtuală furnizată dinamic.
- în mod similar, în Mac OS, utilizatorii pot utiliza panoul Preferințe pentru a aloca memorie virtuală.
tipuri de memorie virtuală: Paginarea și segmentarea
memoria virtuală pot fi gestionate în mai multe moduri diferite de către sistemul de operare al unui sistem, iar cele mai frecvente două abordări sunt paginarea și segmentarea.
paginarea memoriei virtuale
într – un sistem care utilizează paginarea, memoria RAM este împărțită într – un număr de blocuri-de obicei 4K în dimensiune-numite pagini. Procesele sunt apoi alocate doar suficiente pagini pentru a-și îndeplini cerințele de memorie. Asta înseamnă că va exista întotdeauna o cantitate mică de memorie irosită, cu excepția cazului neobișnuit în care un proces necesită exact un număr întreg de pagini.
în cursul normal al operațiunilor, paginile (adică blocuri de memorie de dimensiune 4K) sunt schimbate între RAM și un fișier de pagină, care reprezintă memoria virtuală.
segmentarea memoriei virtuale
segmentarea este o abordare alternativă a gestionării memoriei, unde în loc de pagini cu o dimensiune fixă, procesele sunt alocate segmente de lungime diferită pentru a îndeplini exact cerințele lor. Asta înseamnă că, spre deosebire de un sistem paginat, nicio memorie nu este irosită într-un segment.
segmentarea permite, de asemenea, aplicațiilor să fie împărțite în spații de adrese independente logic, ceea ce le poate face mai ușor de partajat și mai sigure.
dar o problemă cu segmentarea este că, deoarece fiecare segment este o lungime diferită, aceasta poate duce la memorie „fragmentare.”Aceasta înseamnă că, pe măsură ce segmentele sunt alocate și de-alocate, bucăți mici de memorie pot fi lăsate împrăștiate în jurul cărora sunt prea mici pentru a fi utile.
pe măsură ce aceste bucăți mici se acumulează, pot fi alocate din ce în ce mai puține segmente de dimensiuni utile. Și dacă sistemul de operare începe să utilizeze aceste segmente mici, atunci există un număr foarte mare de urmărit și fiecare proces va trebui să utilizeze mai multe segmente diferite, ceea ce este ineficient și poate reduce performanța.
avantajele și dezavantajele memoriei virtuale
chiar dacă memoria RAM este acum relativ ieftină în comparație cu costul său atunci când memoria virtuală a fost dezvoltată pentru prima dată, este încă extrem de utilă și este încă folosită în multe, poate Cele mai multe, sisteme informatice. Problema cheie cu memoria virtuală se referă la performanță.
avantajele memoriei virtuale
- permite rularea mai multor aplicații în același timp.
- permite aplicațiilor mai mari să ruleze în sisteme care nu au suficientă memorie RAM fizică pentru a le rula.
- oferă o modalitate de a crește memoria, care este mai puțin costisitoare decât cumpărarea mai multă memorie RAM.
- oferă o modalitate de a crește memoria într-un sistem care are cantitatea maximă de RAM pe care hardware-ul și sistemul de operare îl pot suporta.
dezavantajele memoriei virtuale
- nu oferă aceeași performanță ca memoria RAM.
- poate afecta negativ performanța generală a unui sistem.
- ocupă spațiu de stocare care altfel ar putea fi utilizat pentru stocarea datelor pe termen lung.