Large allocation of memory block and 4K blocks

View this quote from Mark Russiniovich’s books on the internal components of Windows. We are talking about mechanisms for allocating large pages, designed to allocate large blocks without memory in physical memory

http://books.google.com/books?id=CdxMRjJksScC&pg=PA194&lpg=PA194#v=onepage

Attempts to allocate large pages may fail after the operating system has been operating for a long period, since the physical memory for each large page should occupy a significant number (see Table 10-1) of physically adjacent small pages, and this degree of physical should also start with a large page border. (For example, physical pages 0 through 511 can be used as a large page on an x64 system, as well as physical pages 512 through 1023, but pages 10 through 521 could not.) Free physical memory becomes fragmented as the system works. This is not a problem for distributions using small pages, but may cause large pages to crash.

If I understand this correctly, he says that fragmentation created by scattered 4K pages can prevent the successful allocation of large 2M pages in physical memory. But why? Regular 4K physical pages are easy to navigate and can also be easily replaced. In other words, if we have a physical memory area that is not occupied by other 2M pages, we can always “clear” it: make it available by moving any interference from the 4K pages from this physical memory area to another location. That is, from a "naive" point of view, the allocation of 2M should "always succeed" if we have enough free physical RAM.

What is wrong with my logic? What exactly does Mark say when he says that fragmentation of physical memory caused by 4K pages can interfere with the successful placement of large pages?

+3
2

Windows XP. , Vista . , :

Windows Vista , , , , , " " , , , .

+4

, , . , , .NET . .

10 , 2, 4, 6 8 (), 3 , - ( ).

4k, .

+1

All Articles