Î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 _______________________________________________ http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
