Memoria virtuala
Memoria virtuala presupune scrierea informatiilor de lucru pe hard-disc si nu īn memoria RAM fizica, emulānd astfel memoria RAM pe disc. Memoria virtuala este limitata ca dimensiune practic de marimea spatiului liber pe HDD si se utilizeaza de catre sistemul de operare īn momentul īn care memoria RAM nu este suficienta pentru a executa aplicatia curenta.
Sistemul de operare Windows 95/98 utilizeaza doua modele de administrare a memoriei: unul se refera la memoria segmentata si este folosit pentru a asigura compatibilitatea cu aplicatiile mai vechi; celalalt model se refera la memoria nediferentiata.
Pe scurt, modelul de memorie segmentata consta īn accesarea unei locatii de memorie folosind doua registre pe 16 biti. Un registru contine segmentul iar celalalt deplasarea (offset). Procesorul combina informatia din cele doua registre, formānd adresa completa. Dezavantajul modelului de memorie segmentat este dat de posibilitatea de a aloca numai intervale de 64 KB de memorie (segmentare). Memoria disponibila este epuizata foarte usor.
Modelul de memorie nediferentiat este folosit preponderent de sistemul de operare Windows 95/98 si este preluat de la sistemul de operare Windows NT. Modelul de memorie nediferentiat practic elimina segmentarea si poate fi folosit de procesoare 80386 sau superioare. Pentru adresarea unei anumite locatii de memorie necesare unei aplicatii, se folosesc adrese pe 32 biti. Pentru adresare, se folosesc pagini de memorie.
Bitii 22-31 din cei 32 biti ai adresei definesc directorul tabelei de pagini; pot exista īn total 1024 de intrari. Bitii 12-21 definesc o anumita pagina; pot exista īn total 1024 pagini. Bitii 0-11 definesc localizarea īn cadrul paginii;
o pagina are 4KB.
Deci, sistemul de operare Windows 95/98 poate adresa 1024x1024x4KB=4GB. Marimea memoriei virtuale este pāna la 4GB.
Īn concluzie, Windows 95/98 utilizeaza un model de memorie nediferentiat si liniar. Modul de adresare liniar mareste performantele sistemului de calcul, deoarece timpul necesar microprocesorului pentru a adresa o anumita locatie de memorie este mult mai mic.
Cānd o aplicatie are nevoie de memorie suplimentara, sistemul de operare ofera blocuri de memorie (de 4KB). Daca memorie RAM fizica a fost epuizata, aceste blocuri de memorie sunt stocate fizic pe disc, īn cadrul unui fisier special alocat denumit swap file.
Utilizānd mecanismul de memorie virtuala, īn memoria RAM fizica este tinuta evidenta tuturor paginilor din spatiul de adrese virtual de pe HDD. Spatiul de memorie virtual alocat este asociat cu aplicatiile care au solicitat memorie virtuala. Mecanismul de memorie virtuala previne conflictele īn alocarea memoriei virtuala aplicatiilor solicitante, separānd procesul de alocare a memoriei virtuale pentru fiecare aplicatie īn parte.
Īn mecanismul de memorie virtuala sunt īntālnite doua notiuni:
- memoria fizica: aceasta este data de memoria RAM fizic instalata pe calculator.
- memoria logica: aceasta este data de memoria fizica si fisierele swap create pe hard-disc īn urma utilizarii memoriei virtuala. Aplicatiile folosesc memoria logica īn momentul rularii.
De exemplu, daca un calculator dispune de 16MB memorie RAM fizica si un disc de 1.5GB, cu un spatiu disponibil de 250MB, īn acest caz pot fi rulate aplicatii ce folosesc 16MB+250MB memorie, datorita mecanismului de memorie virtuala.
Pentru a gestiona memoria virtuala īn Windows 95/98 se procedeaza astfel:
Start->Settings->Control Panel->System->pagina Performance.
Se apasa butonul Virtual Memory, moment īn care se deschide o fereastra similara cu cea din figura de sus, din dreapta.
Īn partea de sus a acestei ferestre (īn stānga semnului exclamarii) este afisata o sugestie: setarile privind utilizarea memoriei virtuale pot afecta performantele sistemului de calcul, de aceea se recomanda ca acestea sa efectuate de catre administratori de sistem, sau utilizatori ce au cunostinte avansate despre sistemul de operare Windows 95/98.
Sistemul de operare poate gestiona singur modul de alocare al memoriei virtuale. Pentru aceasta, se activeaza prima optiune: Let Windows manage my virtual memory settings. Aceasta este optiunea implicita, selectata la instalarea sistemului de operare.
Īn anumite cazuri, este necesara configurarea manuala a spatiului folosit pentru memoria virtuala. Un exemplu tipic de astfel de situatii, este utilizarea aplicatiilor care necesita o cantitate mare de memorie - aplicatii server de retele, aplicatiile de baze de date, etc. Astfel, este selectata a doua optiunea: Let me specify my own virtual settings. Trebuie precizata unitatea de hard-disc care va fi utilizata pentru fisierul swap. Se recomanda folosirea celui mai rapid disc (rubrica Hard disk) din dotarea calculatorului (īn cazul īn care calculatorul dispune de mai multe discuri). De asemenea, trebuie precizata dimensiunea minima folosita pentru memoria virtuala (rubrica Minimum) si dimensiune maxima (rubrica Maximum).
Exista si posibilitatea de a renunta la mecanismul de memorie virtuala. Acest lucru nu se recomanda, care si īn cazul īn care dispunem de un calculator dotat cu o cantitate foarte mare de memorie fizica instalata.
Totusi, daca doriti sa invalidati mecanismul de memorie virtuala, atunci trebuie activata optiunea Disable virtual memory.(Not recommanded). Uneori, daca calculatorul nu dispune de suficienta memorie fizica si are activata optiunea de mai sus, sistemul poate avea probleme la bootare.
Īn general, sistemul de operare Windows 95/98 este lasat sa-si gestioneze singur modul de alocare al memoriei virtuale.
Īn fisierul swap de memorie virtuala de pe hard-disc, sistemul de operare Windows 95/98 va īnscrie informatii īn momentul īn care se epuizeaza memoria RAM. Alocarea spatiul de pe disk pentru fisierul de swap este realizata la bootare si este marit sau micsorat īn functie de necesitate. Spatiul disc este eliberat la oprirea sistemului de operare. Fisierul swap al memoriei virtuale are un caracter dinamic si nu este necesar ca zona de pe hard-disc alocata īn acest scop sa fie contigua. Cei care au folosit Windows 3.x īsi aduc aminte ca fisierul swap era temporar sau permanent, ca aloca foarte mult spatiu pe disc comparativ cu spatiul propriu-zis folosit, toate aceste aspecte fiind īn dezavantajul utilizatorului. Windows 95/98 corecteaza aceste deficiente. Sistemele de operare Windows 95 si Windows 98 au cāteva īmbunatatiri īn ceea ce priveste gestionarea memoriei si rularea programelor, comparativ cu variantele anterioare de Windows.
Sub Windows 95, la rularea unui program, sistemul de operare realizeaza doua copii ale programului: una īn zona de cache de pe disk, iar alta īntr-o anumita zona de memorie. Copierea din cache-ul de pe disk īn memorie se realizeaza folosind blocuri de 4KB (care este marimea unei pagini de memorie). Dupa ce programul este copiat īn memorie, īn blocuri succesive de 4KB, atunci acesta este executat. Aceasta este o metoda care ofera siguranta, dar nu si rapiditate, īn rularea aplicatiilor.
Sub Windows 98, la rularea unui program, se face o copie pe disk cache. Daca dimensiunea acestei copii se afla īn limita de 4KB, atunci sistemul de operare poate rula programul direct de pe disk cache, ceea ce reduce timpul de lucru cu memoria si microprocesorul. Acest aspect poate fi folosit īn sistemul de operare Windows 98 pentru a mari viteza de rulare a programelor. Īn acest sens, programatorii creaza aplicatiile astfel īncāt acestea sa se īncadreze īn limita unor blocuri de 4KB. Sistemul de operare dispune de utilitarul WALIGN.EXE, stocat īn folderul aWINDOWSa SYSTEM, care poate realiza aceasta aliniere īn blocuri de 4KB. Procedura este usurata daca se foloseste sistemul de fisiere FAT32, ceea ce constituie un avantaj pentru acest sistem de fisiere.
|