[so] [Windows] Dimensiunea unei pagini

Dan Filimon dangeorge.filimon at gmail.com
Fri Apr 13 13:59:45 EEST 2012


În codul de test pentru tema 3, am văzut că se obține o pagină
folosind câmpul dwAllocationGranularity din structura SYSTEM_INFO [1]
obținută cu GetSystemInfo (common_win.c:21).
Nu mă uitasem pe acel cod cu atenție și când mi-am scris eu o funcție
pentru asta, mi s-a părut rezonabil să folosesc câmpul dwPageSize, dar
testele corespunzătoare pică.

Din documentație,

dwAllocationGranularity (=64K)
The granularity for the starting address at which virtual memory can
be allocated. For more information, see VirtualAlloc.
dwPageSize (=4K)
The page size and the granularity of page protection and commitment.
This is the page size used by the VirtualAlloc function.

eu înțeleg că adresele de start de la care se poate aloca memorie sunt
multipli de 64K, dar că dimensiunea unei pagini folosite este 4K (atât
e câmpul acela pe mașina virtuală).

De ce e considerată deci dimensiunea unei pagini 64K atunci?

Am găsit threaduri din anii trecuți în legătura cu dimensiunea unei
pagini în anii trecuți [2] și deși nu mi-e clar ce probleme avea
autorul mesajului, se pare c-au fost discuții legate de asta. Bănuiesc
că de-asta s-a schimbat între timp politica... ?

[1] http://msdn.microsoft.com/en-us/library/windows/desktop/ms724958(v=vs.85).aspx
[2] http://thread.gmane.org/gmane.education.region.romania.operating-systems/512/focus=514


More information about the so mailing list