Fără a fi expertul lui pește, iată cum înțeleg eu treaba.
Memoria virtuală este exact ceea ce se înțelege din denumire: un spațiu de memorie virtual - adică inexistent fizic per ansamblu - cu care sistemul lucrează pentru a depăși limitările impuse de cantitatea redusă de RAM disponibil. Sistemul stochează memoria virtuală în RAM și pe hard disc.
Ce se întâmplă în Mac OS X: un program cere o anumită cantitate de memorie, iar sistemul îi spune “OK, ți-am alocat cantitatea de memorie cerută”. În realitate însă, fizic vorbind, sistemul scrie în RAM sau pe hard disc numai datele de memorie efectiv utilizate de program. Asta înseamnă sparse allocation: din punct de vedere virtual sistemul alocă (să zicem) 1 GB pentru un program, dar în mod real programul utilizează doar 5 MB, așa că sistemul scrie numai 5 MB de memorie “reală”.
Făcând suma tuturor spațiilor de memorie cerute de procesele care rulează la un moment dat, se poate ajunge la aceste sume amețitoare care depășesc cu mult RAM-ul și spațiul disponibil pe disc. De aia se cheamă memorie virtuală: pentru că nu există toată în realitate, ci numai în “imaginația” programelor care rulează.
Și nu, memoria virtuală NU înseamnă strict “memoria care este scrisă pe hard disc, în swap files”, așa cum tindem noi să interpretăm.
Corect ... acum am priceput ce vrei să spui ... deci totuşi, ceva din VM se regăseşte şi în RAM sau pe disc (după caz) ... mi-am permis sa bolduiesc din postul tău părţile de care m-am legat şi în intervenţiile mele anterioare, încercând să subliniez că ceva din această mare sumă (acel ceva fiind memoria “reală” de care spuneai) se regăseşte şi fizic undeva ...
Totuşi îmi fac şi mea culpa căci poate nu m-am exprimat corect pentru a se putea înţelege exact ceea ce doream ...
Deși logic ar fi cum spune Tudor, e o problemă care decurge tocmai din alocarea dinamică a memoriei. S-a observat că, dacă nu închizi calculatotul și accesezi tot mai multe pagini (în Safari, să zicem), VM crește, deci nu rămîne fixă. Doi: a aloca un spațiu VM (virtual, dar alocat pe disc, ceci NEACCESABIL de către alte aplicații) înseamnă a bloca acel spațiu, ceea ce, iar nu e adevărat. Trei: e o prostie ca o aplicație care va accesa spații imense să își rezerve un spațiu fix.
Nu spun prin asta că Tudor n-ar avea dreptate, ci numai că dreptatea lui pare oarecum forțată din punctul de vedere al logicii formale (cu care lucrează calculatorul). Eu continuu să cred că explicația e în altă parte.
Iată, spre exemplificare, ce zice Tiger despre aceeasi VM, în termeni mai exacți, măsurabili pe hard!
Memoria virtuală variază în timp. Ca să compari direct Tiger cu Leopard, bazându-te doar pe ceea ce vezi în Activity Monitor, ar trebui ca cele două sisteme de operare să lucreze concomitent pe același computer, cu aceleași programe, în exact aceleași condiții, lucru imposibil.
Eee - abia acum am găsit o bubă Apple. Mă uit în helpul de la Activity Monitor și la VM size scrie așa:
VM size: Virtual memory, or VM, is hard disk space that can be used as memory. VM size is the amount of disk space memory being used.
Din două, una:
- Apple a greșit din start definiția “VM size” din help. De exemplu eu acum am liber pe disc 20 GB, iar VM size = 40 GB. Păi ajung la vorbele lui Iaru, dacă mă iau după ce debitează Apple în help.
- Apple a modificat în Leopard semnificația “VM size”, uitând să corecteze helpul. Poate că în Tiger “VM size” chiar însemna strict spațiul pe disc ocupat de memorie?
Da, oameni buni, zice corect că poate folosi cît găsește – și chiar atîta are la mine liber: 48 GB (dacă nu pun VM deja scrisă pe disc). Problema mea e de ce să mă f… la icre cu o informație pe care deja o cunosc și nu exprimă realitatea momentului? Eu sînt interesat de cît OCUPĂ fizic, nu de cît AR PUTEA ocupa.
Uitați-vă mai sus, la specificații, să vedeți CÎT alocă fiecărei aplicații deschise (fie ea activă sau inactivă) și o să vă luați de păr!
Acum, la lucru, sînt în Tiger, și nu vă pot arăta!
Dar, tanda pe manda, nu pot sa ma pling. Leo merge bine. E drept ca a crapat in doua aplicatii pe acre nu le-am putut opri cu nici un chip! Asta NU E BINE!
(Una a fost Firefox!)
Da, oameni buni, zice corect că poate folosi cît găsește – și chiar atîta are la mine liber: 48 GB (dacă nu pun VM deja scrisă pe disc). Problema mea e de ce să mă f… la icre cu o informație pe care deja o cunosc și nu exprimă realitatea momentului? Eu sînt interesat de cît OCUPĂ fizic, nu de cît AR PUTEA ocupa.
Uitați-vă mai sus, la specificații, să vedeți CÎT alocă fiecărei aplicații deschise (fie ea activă sau inactivă) și o să vă luați de păr!
Acum, la lucru, sînt în Tiger, și nu vă pot arăta!
Dar, tanda pe manda, nu pot sa ma pling. Leo merge bine. E drept ca a crapat in doua aplicatii pe acre nu le-am putut opri cu nici un chip! Asta NU E BINE!
(Una a fost Firefox!)
Mai patesc si eu dinastea - cu aplicatii crapate dar o dau pe seama incompatibilitatii softurilor cu Leo - Adobe (PS IL IN) de ex merge uns.
nu totdeauna cifrele reprezinta ce am crede noi…
la mine, abia pornit calculatorul, doar cu adium si browser, VM este 12 GB…
de obicei nici nu bag in seama valoarea afisata acolo, nu ma intereseaza decit culoarea vede si albastra - memoria inactiva si cea free
Face Activity Monitor refresh gresit, dupa Mac-I pe un proces veti vedea cum valoarea din coloana ‘Virtual Memory’ scade brusc.
Am facut refresh pana m-am plitisit, sper ca pozele sunt edificatoare.