Prezentare generală a ferestrelor cu mecanisme de memorie virtuală

În articolul meu anterior, sa menționat că site-urile VAS pot fi imediat legate de memoria fizică sau după utilizarea API-ului VirtualAlloc. La fel ca majoritatea sistemelor de operare, Windows leagă memoria fizică la cerere, prima dată o pagină pe zona VAS (acest comportament diferă ușor față de acele ocazii, atunci când nu utilizați fișierul de swap, și pagina de VAS imediat legat la pagina de memorie fizică). Se atașează o singură pagină la un moment dat. Când primul acces la memorie provine de la hardware, se aruncă o excepție, numită lipsa unei pagini. Excepția este gestionată de Windows, iar sistemul de operare verifică dacă patch-ul VAS actual a fost atribuit folosind Descriptorul de adrese virtuale (VAD) corespunzător acestui site. În cazul în care site-ul desemnat, și are loc primul apel, sistemul de operare va găsi pagina fizică în memorie, care pot fi utilizate în acest scop (ar trebui să se țină seama de faptul că această pagină va fi pre-umplut cu zerouri înainte va fi utilizat, din motive de securitate) . În cele din urmă, după care va lega site-ul SAV într-o pagină care este umplut cu structurile de date corespunzătoare, iar aceste informații vor fi încărcate în procesor, care ar continua să lucreze cu momentul în care defecțiunea pagină a fost detectată.







Datorită insuficienței RAM, Windows poate decide să selecteze paginile fizice din proces. Folosind politica de auto-reparare, sistemul de operare va căuta pagini gratuite. Pentru a face acest lucru, verifică dacă imaginea curentă a paginii este prezentă în fișierul de paginare de pe disc și, dacă este necesar, inițiază paginarea paginilor pentru ao muta în fișierul de paginare. Imediat ce pagina intră pe disc, sistemul de operare poate configura structurile de date necesare, astfel încât data viitoare când pagina să fie accesată, se știe unde să o găsească. După aceasta, pagina fizică este umplută cu zerouri și este marcată în lista de pagini gratuite, care este utilizată pentru cererile de memorie ulterioare.

Mecanismul de memorie virtuală folosit în Windows vă permite să afișați aceleași pagini fizice la momente diferite pe diferite VAS-uri în diferite locuri. Paginile fizice care pot fi cartografiate numai într-un singur VAS se numesc pagini fizice private, deoarece nu pot fi partajate între VAS multiple. Paginile fizice care sunt afișate simultan pe mai multe VAS sunt denumite pagini fizice partajate.







Toate VIA-urile alocate de VAS sunt legate de acele pagini fizice care nu pot fi partajate între VAS diferite. Ele pot fi considerate pagini fizice private. Suma tuturor paginilor fizice private în memorie și pe disc este numit bytes private (bytes private), dacă utilizați terminologia System Monitor, sau dimensiunea unei memorii virtuale (sau alocate), în conformitate cu terminologia din Managerul de activități. Suma tuturor paginilor fizice private care sunt în memorie, numit setul de lucru, care este afișat ca o valoare de „Alocarea memoriei“ (utilizarea memoriei), în bara de stare a Task Manager.

După cum am menționat mai devreme, dependența Windows de nevoia de memorie fizică conduce la faptul că sistemul de operare poate elimina paginile fizice din setul de lucru al procesului. De obicei, acest lucru se manifestă sub forma paginării. Sistemul de operare are capacitatea de a preveni răsturnarea acestor secțiuni VAS. Pentru aceasta, mecanismul de blocare a porțiunilor VAS în RAM fizic este responsabil. Așa cum ați putea ghici, o aplicație care încearcă să blocheze site-urile sale VAS poate destabiliza întregul sistem. Pentru a diminua acest efect, în Windows, privilegiul "Blocarea paginilor în memorie" este dezactivat în mod implicit, astfel încât numai acele aplicații pe care administratorul le-a permis să le blocheze pot bloca paginile din memorie. În plus, sistemul de operare are capacitatea, dacă este necesar, de a defila setul de lucru al întregului proces.

Unele aplicații de utilizator trebuie să aibă un VAS mai mare de 2 GB. În Windows, puteți crește VAS pentru o aplicație personalizată de până la 3 GB. Acest mod are un dezavantaj serios. În acest mod, volumul de VAS disponibil pentru kernel va fi limitat la 1 GB. Măriți dimensiunea VAS pentru utilizator adăugând comutatorul / 3GB în fișierul boot.ini. După efectuarea unor astfel de modificări, sistemul trebuie să fie repornit.

Restricționarea VAS pentru un kernel de până la 1 GB afectează întregul computer, nu doar o aplicație care are nevoie de o cantitate mare de VAS. De exemplu, setarea comutatorului / 3GB afectează cantitatea de memorie disponibilă sistemului de operare, dacă modul PAE este activat, acesta scade de la 64 GB la 16 GB. Comutatorul / 3GB afectează toate componentele kernelului, inclusiv toate driverele. Activarea / 3GB poate provoca astfel de efecte negative ca degradarea performanțelor și eșecurile de alocare a memoriei cu oprirea sistemului. Opinia mea este de a evita utilizarea cheii / 3GB dacă nu este prea mare nevoie de ea.

API-ul AWE poate fi folosit chiar și pe computerele cu o memorie de proces VAS mai mică. De fapt, AWE poate fi folosit pentru a scăpa de orice tip de paginare (amintiți-vă că, atunci când blocați pagini în memorie, folosind mecanisme VirtualLock, Windows rămâne în continuare posibilitatea de a expune întreaga flipping întregul proces). Când utilizați același mecanism AWE, sistemul de operare nu va putea interfera. Această flexibilitate creează unele dificultăți. Utilizarea necorespunzătoare a mecanismului AWE poate duce la întreruperea întregului computer, ceea ce poate fi depășit numai prin repornirea acestuia.

Fiecare proces are propriul domeniu VAS.

Dezvoltatorii de multe ori nu iau în considerare caracteristicile VAS.

VAS este o resursă limitată, chiar și pe o platformă pe 64 de biți.

Windows gestionează VAS în același mod în care gestionează hip (memorie dinamică).







Trimiteți-le prietenilor: