Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • OS
  • Pentru ce este memoria virtuală? Ce este memoria virtuală

Pentru ce este memoria virtuală? Ce este memoria virtuală

comunicare între hardware și software. Aspectele hardware vor fi discutate mai întâi. memorie virtuala, iar apoi întrebările care apar în timpul implementării software-ului.

Conceptul de memorie virtuală

Dezvoltatorii de software trebuie adesea să se ocupe de problema găzduirii de programe mari în memorie, care sunt mai mari decât cantitatea de RAM disponibilă. Una dintre soluțiile la această problemă - organizarea structurilor cu suprapunere - a fost luată în considerare în prelegerea anterioară. În acest caz, sa presupus participarea activă a programatorului la procesul de formare a părților suprapuse ale programului. Dezvoltarea arhitecturii computerului și extinderea capacităților de gestionare a memoriei ale sistemului de operare au făcut posibilă mutarea soluției acestei probleme la computer. Una dintre principalele realizări a fost apariția memorie virtuala(memorie virtuala). A fost implementat pentru prima dată în 1959 pe computerul Atlas dezvoltat la Universitatea din Manchester.

Esența conceptului memorie virtuala este după cum urmează. Informațiile cu care lucrează un proces activ trebuie să fie localizate în memoria principală. În scheme memorie virtuala procesului i se oferă iluzia că toate informațiile de care are nevoie se află în memoria principală. Pentru a face acest lucru, în primul rând, memoria ocupată de proces este împărțită în mai multe părți, cum ar fi pagini. În al doilea rând, adresa logică (pagina logică) accesată de proces este tradusă dinamic într-o adresă fizică (pagina fizică). Și, în sfârșit, în acele cazuri în care pagina accesată de proces nu se află în memoria fizică, trebuie să-i organizați paginarea de pe disc. Pentru a controla prezența unei pagini în memorie, este introdus un bit de prezență special, care face parte din atributele paginii din tabelul de pagini.

Astfel, nu este nevoie să aveți toate componentele unui proces în memoria principală. O consecință importantă a acestei organizări este că cantitatea de memorie ocupată de un proces poate fi mai mare decât dimensiunea memoriei principale. Principiul localității oferă acestei scheme eficiența dorită.

Capacitatea de a executa un program care se află doar parțial în memorie are o serie de avantaje evidente.

  • Programul nu este limitat de cantitatea de memorie fizică. Dezvoltarea programului este simplificată deoarece spațiile virtuale mari pot fi utilizate fără a vă face griji cu privire la cantitatea de memorie utilizată.
  • Deoarece devine posibilă încadrarea parțială a unui program (proces) în memorie și realocarea memoriei între programe într-o manieră flexibilă, mai multe programe pot fi plasate în memorie, ceea ce crește sarcina procesorului și debitul sistemului.
  • Cantitatea de I/O pentru schimbarea unei părți a programului pe disc poate fi mai mică decât în ​​opțiunea clasică de swap, ca urmare, fiecare program va funcționa mai rapid.

Astfel, posibilitatea de a asigura (cu suportul sistemului de operare) programului „vizibilitate” practic nelimitată (dimensiune tipică pentru arhitecturi pe 32 de biți 2 32 = 4 GB) memorie adresabilă utilizatorului (logică). spatiu de adresare) în prezența memoriei principale de dimensiuni semnificativ mai mici (fizice spatiu de adresare) este un aspect foarte important.

Dar introducerea memorie virtuala vă permite să rezolvați o altă sarcină, nu mai puțin importantă - asigurarea controlului accesului la segmentele individuale de memorie și, în special, protejarea programelor utilizatorului între ele și protejarea sistemului de operare de programele utilizatorului. Fiecare proces are al lui adrese virtuale, care sunt traduse în cele fizice de hardware-ul computerului. În acest fel, procesul utilizatorului incapabil să acceseze direct paginile memoriei principale ocupate de informații legate de alte procese.

De exemplu, un computer PDP-11/70 pe 16 biți cu 64 KB de memorie logică ar putea avea până la 2 MB de memorie RAM. Sistem de operare acest computer a suportat totuși memorie virtuala, care asigura protecția și redistribuirea memoriei principale între procesele utilizatorului.

Amintiți-vă că în sistemele cu memorie virtuala acele adrese pe care programul le generează (adrese logice) se numesc virtuale și formează un virtual spatiu de adresare. Termenul " memorie virtuala„ înseamnă că programatorul are de-a face cu o altă memorie decât memoria reală, a cărei dimensiune este potențial mai mare decât dimensiunea RAM.

Memoria virtuală este o tehnologie concepută pentru a crește cantitatea totală de memorie, a organiza mai multe spații de adrese de memorie, a le proteja și a automatiza procesul de mutare a codului mașinii și a datelor între memoria principală a computerului și stocarea secundară.

În prezent, tehnologia memoriei virtuale are suport hardware pe toate procesoarele moderne.

În cazul locației datelor pe dispozitive de stocare externe, memoria poate fi reprezentată printr-un fișier separat sau o secțiune specială pe hard disk.

Există și termenul de swap, adică de memorie virtuală (mai precis, de modul în care este reprezentată) sau de fișierul de swap.

    Utilizarea tehnologiei memoriei virtuale permite:
  • simplificați adresarea memoriei de către software-ul client;
  • gestionați rațional memoria RAM a computerului (stocați în ea doar zonele de memorie utilizate în mod activ);
  • izola procesele unul de celălalt (procesul consideră că are proprietatea exclusivă asupra întregii memorie).

Există mai multe moduri de implementare a memoriei virtuale: schimbarea, precum și organizarea de pagini și segmente a memoriei virtuale.

Schimbarea este una dintre metodele de implementare a memoriei virtuale, în care procesele individuale, de regulă, inactive sunt mutate de la RAM pe hard disk, eliberând astfel RAM pentru încărcarea altor procese. Procesele sunt mutate în întregime între RAM și hard disk, așa că uneori unele procese pot fi complet absente din RAM. Dacă procesul este din nou necesar pentru lucru, atunci este returnat de managerul de memorie în RAM. Există diferiți algoritmi pentru selectarea proceselor de încărcare și descărcare, precum și diverse modalități de a aloca RAM și memorie de disc unui proces încărcat.

Schimbarea este cea mai eficientă atunci când rulează o mulțime de aplicații interactive care folosesc multă memorie RAM, dar ocupă puțin sau deloc timp CPU.

Unul dintre dezavantajele mecanismului de swap poate fi fragmentarea fișierului swap (fișier swap). Când citiți și scrieți date de pagină dintr-un fișier de paginare fragmentat, va dura mult timp pentru a repoziționa capetele hard disk-ului la începutul zonei următoare, ceea ce poate duce la o scădere a performanței sistemului.

    Pentru organizarea cât mai eficientă a schimbului și îmbunătățirea performanței, se folosesc următoarele tehnici:
  • 1. Pentru fișierul de swap este alocat un spațiu, a cărui cantitate este egală cu cantitatea de RAM înmulțită cu 1, 2 sau 3.
  • 2. Dacă există mai multe hard disk-uri într-un computer sau laptop, atunci trebuie să plasați fișierul de paginare pe cel mai puțin încărcat dintre ele.
  • 3. Așezați fișierul de paginare pe un disc cu cele mai mari viteze de citire/scriere și cât mai aproape posibil de începutul discului.
  • 4. Când lucrați în Windows, este mai bine să plasați fișierul swap pe o partiție cu sistemul de fișiere FAT32, fără a uita că este mai puțin fiabil decât NTFS.
  • 5. Dacă aveți o cantitate suficient de mare de RAM (mai mult de 2 GB) pe un sistem puțin încărcat, puteți refuza în general fișierul de paginare.

Paginarea memoriei virtuale

În paginarea memoriei virtuale, memoria RAM este împărțită în regiuni de memorie cu lungime fixă ​​numite pagini de memorie. O pagină este cea mai mică unitate de memorie alocată.

Un proces accesează memoria utilizând o adresă de memorie virtuală, care conține numărul paginii și decalajul în cadrul paginii. Sistemul de operare convertește adresa virtuală într-o adresă fizică, încărcând pagina de pe hard disk în RAM dacă este necesar.

Familia de sisteme de operare Microsoft Windows utilizează fișierul pagefile.sys pentru a stoca paginile evacuate. Spațiul pentru fișier trebuie alocat în prealabil, puteți specifica singur dimensiunea sau încredința alegerea sistemului de operare.

Organizarea pe segmente a memoriei virtuale

Un alt mecanism pentru implementarea memoriei virtuale, în care spațiul virtual este împărțit în părți de dimensiune arbitrară - segmente, care permite, de exemplu, împărțirea datelor de proces în blocuri logice.

Când un proces este încărcat, unele dintre segmente sunt plasate în RAM, iar altele sunt plasate pe disc. Segmente ale unui program pot ocupa zone necontigue din RAM. La boot, sistemul creează un tabel de segmente de proces (similar unui tabel de pagină), în care pentru fiecare segment adresa fizică de pornire a segmentului în RAM, dimensiunea segmentului, regulile de acces, un flag de modificare, un steag pentru accesare. acest segment în ultimul interval de timp și alte informații sunt indicate.

Dacă spațiile de adrese virtuale ale mai multor procese includ același segment, atunci tabelele de segmente ale acestor procese fac referiri la aceeași secțiune RAM în care acest segment este încărcat într-o singură instanță. Un sistem cu organizare de segmente funcționează similar unui sistem cu organizare de paginare: din când în când apar întreruperi din cauza lipsei segmentelor necesare în memorie, dacă memoria trebuie eliberată, unele segmente sunt descărcate, cu fiecare acces la RAM, adresa virtuală este convertită într-una fizică. În plus, la accesarea memoriei, se verifică dacă accesul de tipul necesar este permis la acest segment.

O adresă virtuală cu o organizare a memoriei segmentată poate fi reprezentată printr-o pereche (g, s), unde g este numărul segmentului și s este decalajul în segment. Adresa fizică se obține prin adăugarea adresei fizice de început a segmentului, găsită în tabelul de segmente la numărul g, și a offset-ului s.

Dezavantajul acestei metode de alocare a memoriei este fragmentarea la nivel de segment și traducerea mai lentă a adresei în comparație cu paginarea.

RAM virtuală este folosită în toate sistemele de operare moderne. Vă permite să simulați mai multă memorie RAM decât este instalată de fapt pe computer.

Dar, să vedem cum funcționează. Aplicațiile și datele lor, pentru a fi utilizate de procesor, trebuie preluate de pe hard disk, unde sunt stocate, în RAM, de pe care vor fi disponibile direct procesorului. Prin urmare, pentru funcționarea corectă a sistemului, este nevoie de o cantitate suficientă de RAM.

Acum câțiva ani era o marfă foarte scumpă. Dacă adăugați la aceasta faptul că nu toate aplicațiile care rulează sunt utilizate în același timp, devine necesar să controlați utilizarea memoriei a sistemului însuși.

Deși memoria RAM a fost scumpă, dar există un hard disk. Deci hard disk-ul a fost folosit pentru a mări memoria. Procedura a fost simplă, o parte din memoria RAM neutilizată în prezent a fost transferată pe hard disk.

Această metodă simulează o dimensiune mai mare a memoriei. Într-un sistem de operare normal, simularea atinge de două ori dimensiunea RAM-ului instalat. Care, la rândul său, uneori poate încetini puțin sistemul.

Problema este că viteza de accesare a datelor aflate pe hard disk este de mii de ori mai mică decât accesarea memoriei RAM. Dacă o parte din memorie este pe disc, este nevoie de timp pentru ca sistemul să o preia și să o returneze în memoria principală, deoarece acesta este singurul loc care poate fi folosit de procesor.

RAM este organizat pe niveluri. În primul rând, procesorul folosește datele din memoria cache situată în apropierea procesorului, apoi în RAM și, în sfârșit, pe hard disk. Cu cât este mai aproape de procesor, cu atât viteza este mai mare.

Dacă nu există suficientă memorie, este imposibil să porniți alte programe, iar cele care rulează pot avea probleme atunci când lucrați cu cantități mari de date. Dar, din cauza utilizării memoriei RAM virtuale, computerul poate funcționa mai lent. Acest lucru se va întâmpla dacă trebuie să folosească memoria de pe hard disk. Ca întotdeauna, există un compromis între viteza și cantitatea de date procesate de sistem.

Niciodată nicio opțiune de memorie virtuală nu poate fi mai bună decât extinderea memoriei RAM. Mai mult decât atât, în mod ideal, este mai bine să ai un computer în care această caracteristică este dezactivată.

Utilizarea RAM virtuală în sistemele de operare moderne.

Cu fiecare nouă versiune de sisteme de operare, managementul memoriei și algoritmii s-au îmbunătățit. Cu toate acestea, utilizarea din ce în ce mai mare a interfețelor grafice și instrumentele din ce în ce mai sofisticate fac din sistemul un consumator de memorie RAM.

O modalitate de a crește viteza sistemului este utilizarea unui SSD. Dar rețineți că chiar și o astfel de îmbunătățire nu foarte eficientă a vitezei de acces la date poate ajuta foarte mult un computer cu lipsă de memorie.

Merită să dezactivați memoria RAM virtuală.

Merită să dezactivați funcția RAM virtuală și va aduce o îmbunătățire a performanței. În principiu, nu este recomandat unui utilizator obișnuit să dezactiveze funcția RAM virtuală. Dacă aveți multă memorie în computer, nu folosiți multe aplicații în același timp, dar aveți probleme de performanță, atunci puteți încerca să dezactivați această funcție.

Pe scurt, RAM virtuală vă permite să vă creșteți capacitatea de a rula mai multe programe în același timp, dar poate și încetini performanța computerului.

Salutări, dragi cititori.

Viteza computerului dvs. depinde de mulți parametri. Acest lucru este afectat atât de hardware, cât și de software. Și în articolul de mai jos, vă voi spune ce este memoria virtuală Windows 7, cum este configurată și toate punctele principale. Următoarele informații vă vor ajuta să vă îmbunătățiți interacțiunea cu computerul și să vă accelerați sarcinile. În plus, multe erori care apar din cauza lipsei de megaocteți liberi ar trebui să dispară.

Deci ce este? Memoria virtuală este combinația dintre RAM și fișierul de pagină. Și dacă totul este clar despre primul element, vă voi spune puțin mai multe despre al doilea.

Sistemele de operare Microsoft oferă un mecanism special care vă permite să creșteți programatic numărul de megaocteți necesari procesării datelor curente. Deci, utilizatorul sau sistemul alocă o anumită zonă pe hard disk, care este adăugată la RAM la momentul potrivit. Pe de o parte, acest lucru ajută memoria RAM, dar, pe de altă parte, există o încărcare suplimentară pe hard disk. Fișierul este responsabil pentru acest segment. pagefile.sys.

Setare( )


Parametrii corecti( )

Cum se pornește pagefile.sysștim deja. Acum să începem configurarea. Există multe recomandări diferite cu privire la depanarea corectă a elementului de care avem nevoie.

Deci, de exemplu, experții de la Microsoft recomandă includerea acestui element. În acest caz, cantitatea minimă trebuie să fie egală cu memoria RAM fizică minus megaocteții utilizați în timpul sarcinii de vârf. Și parametrul maxim este același număr înmulțit cu doi.

De asemenea, de multe ori pe Internet puteți găsi informații care spun că ambele limite ar trebui să fie aceleași. Acest lucru va elimina fragmentarea elementului de swap, ceea ce va crește doar performanța. Adevărat, acest lucru este mai bine să nu se aplice memoriei SSD.

Cât de mult să pariezi dacă computerul are mai mult de 8 GB de RAM instalat? Totul este simplu - pagefile.sys Este mai bine să-l oprești complet. În caz contrar, acest lucru nu ar trebui făcut, deoarece pot apărea probleme cu funcționarea unui software separat. Și în viitor, nu mulți își vor aminti că mai devreme utilizatorii au fost cei care au oprit un instrument important.

Dacă vorbim despre creșterea suprafeței pentru jocuri, totul depinde direct de aceeași cantitate reală de RAM. În general, atunci când instalați o aplicație, este important să revizuiți în prealabil setările recomandate. În cazul unui nivel insuficient de componente de pe computer, ar putea merita să abandonați programul cu totul, în loc să utilizați instrumente suplimentare. La urma urmei, până la urmă s-ar putea să nu fie de ajuns.

Transferați pe o altă unitate( )

Anterior, mulți experți recomandau mutarea fișierului swap de pe SSD pe HDD pentru a prelungi durata de viață a primului. Această abordare este mai aplicabilă modelelor mai vechi cu capacitate redusă. Drept urmare, utilizatorii vor pierde semnificativ performanța, dar durata de viață va crește cu un număr neglijabil.

Experienta personala( )

Dacă computerul dvs. este proiectat pentru sarcini speciale și are 4Gb sau 6 RAM instalat pe el, dimensiunea fișierului de swap trebuie specificată exact. Și de multe ori este mai bine să-l opriți complet. Când decideți să utilizați fișierul de pagină oricum, " original" și " Maxim» Volumele trebuie să fie aceleași. În acest caz, este mai bine să indicați aproximativ 3 GB.

Cu o memorie mare încorporată, fără a utiliza software special, puteți încerca complet să dezactivați această secțiune.

Dar este important să rețineți că unele aplicații mai vechi pot să nu ruleze fără el și chiar să raporteze resurse insuficiente.

Ce dimensiune să setați dacă pentru utilizatori calculele matematice, procesarea grafică, lucrul cu videoclipuri și fotografii sunt activități zilnice comune? În acest caz, este mai bine să alegeți elementul care oferă Windows posibilitatea de a se instala, indiferent de RAM. Desigur, dacă nu folosiți 32 GB - doar în acest caz vă puteți gândi la o oprire completă.

Nu este întotdeauna posibil să se determine imediat câte resurse sunt necesare. Pentru a calcula, puteți utiliza o schemă simplă:


Când utilizați aceste sfaturi, cel mai probabil nu veți întâlni o situație în care pe ecran să apară brusc un semn de lipsă de memorie și aplicația să refuze pornirea.

Ca întotdeauna, un videoclip pe tema care este descrisă:

Sper că sfaturile de mai sus vă vor ajuta să rezolvați problema lipsei de memorie RAM. Abonează-te și spune-le prietenilor tăi!

Un element tipic al majorității sistemelor de operare este memoria virtuală. A devenit foarte răspândită datorită costului său scăzut cu avantaje semnificative. Să ne uităm la ce este și unde să-l folosim?

În prezent, computerele moderne folosesc de obicei aproximativ un gigabyte de memorie pentru munca lor. De obicei, această sumă nu este suficientă pentru funcționarea eficientă și rapidă a programelor care necesită memorie virtuală. De exemplu, dacă descărcați o aplicație foto și un browser în același timp, există șanse mari ca această cantitate de memorie să nu fie suficientă, ceea ce va face computerul să încetinească, sau poate fi necesar să închideți unul dintre programe. Și cu absența completă a memoriei virtuale, nu există multitasking, adică lansarea simultană a mai multor programe diferite. Într-un astfel de caz, mașina ar oferi să încheie programul curent pentru a deschide unul nou.

memorie virtuala?

Funcționarea sa este foarte simplă: computerul caută date care se află în RAM, dar nu sunt utilizate, apoi le plasează pe hard disk. Acest lucru vă permite să eliberați memoria virtuală, ceea ce face posibilă rularea de noi aplicații și programe. Acest proces se desfășoară automat, dar cel mai adesea utilizatorul nici măcar nu îl observă, i se poate părea că computerul are o memorie RAM mare, chiar dacă are doar 512 megaocteți instalați. Dacă sistemul de operare accesează resursele de memorie virtuală mai des decât de obicei, atunci acest lucru afectează viteza de lucru, adică scade semnificativ, se întâmplă în mod similar cu performanța.

Deci, dacă înțelegeți deja ce este memoria virtuală, atunci merită să spuneți că funcționarea confortabilă a sistemului de operare poate fi asigurată doar într-un singur caz: dacă cantitatea de RAM instalată este de câteva ori mai mare decât cantitatea necesară în prezent pentru funcționare .

Ce să faci dacă memoria virtuală Windows este aproape plină? Sistemul de operare în sine vă va informa despre acest lucru, mai sus unde va fi indicat că nu este suficientă memorie sau este aproape de terminat. Volumul său poate fi mărit dacă este necesar, fișierul swap este responsabil pentru aceasta, care poate fi editat prin intermediul sistemului de operare însuși, dacă apare o astfel de nevoie.

Creșterea memoriei virtuale

Pentru a face acest lucru, va trebui să intrați în meniul principal, unde găsiți „Panou de control”, apoi elementul „Sistem”. În fila „Avansat”, ar trebui să găsiți elementul „Performanță”, apoi deschideți fereastra de setări. În secțiunea numită „Memorie virtuală” veți vedea cantitatea de memorie disponibilă în momentul actual. Puteți modifica setările folosind butonul „Schimbare”. Merită să setați o valoare care să fie de două ori mai mare decât cantitatea de RAM.

Deci, ați înțeles deja ce este memoria virtuală și acum merită să vorbiți despre cum să o ștergeți. Această procedură este necesară pentru a păstra confidențialitatea datelor aflate în fișierul de paginare. Acest lucru se face printr-o funcție specială care este de obicei dezactivată. Pentru a-l activa, va trebui să găsiți folderul „Administrare” în „Panoul de control”, unde să deschideți „Politica de securitate locală”. În această fereastră, va trebui să faceți clic dreapta pe elementul „Ștergeți fișierul memoriei virtuale”, unde selectați „Proprietăți”. Acolo va trebui să activați opțiunea „Opriți”, apoi faceți clic pe „Aplicați”, apoi pe „OK”. Apoi, va trebui să reporniți computerul de două ori, acesta va fi șters după a doua oară.

Top articole similare