O Windows Commit Charge é menor que o uso de RAM física?

4

Eu vi esta pergunta e não é uma duplicata , não obstante o título, já que a resposta dada não responde à minha pergunta.

Atualmente, tenho um sistema Windows XP que reporta o uso do Commit do sistema como menor que o uso da memória física. Meu entendimento era que System Commit era a quantidade total de arquivos de paginação mais o uso de RAM. Como expresso pela Wikipedia:

The amount of pagefile that would be used if all current contents of RAM had to be removed.

Então, como é possível ter um uso de RAM maior do que a soma de RAM e uso do arquivo de paginação?

    
por Unsigned 02.12.2011 / 06:02

1 resposta

7

O valor do encargo de confirmação não inclui toda a memória física; só conta toda a memória física que poderia ser paginada para o disco.

De Empurrando os limites do Windows - Memória Virtual ( Eu recomendaria ler o artigo inteiro)

As you’d expect from the description of the commit guarantee, the commit limit is the sum of physical memory and the sizes of the paging files. In reality, not quite all of physical memory counts toward the commit limit since the operating system reserves part of physical memory for its own use.

e

Not all the virtual memory that a process allocates counts toward the commit limit. As you've seen, reserved virtual memory doesn't. Virtual memory that represents a file on disk, called a file mapping view, also doesn't count toward the limit unless the application asks for copy-on-write semantics, because Windows can discard any data associated with the view from physical memory and then retrieve it from the file. The virtual memory in Testlimit's address space where its executable and system DLL images are mapped therefore don't count toward the commit limit. There are two types of process virtual memory that do count toward the commit limit: private and pagefile-backed.

Portanto, alguns usos de memória do sistema operacional não contam para esse limite, assim como para arquivos mapeados na memória. No Windows, todos os arquivos EXE e DLL são carregados como arquivos mapeados na memória. Eles são carregados na memória física, mas como não são modificados após o carregamento (geralmente), o Windows não faz o backup deles pelo arquivo de paginação, pois sabe que pode apenas relê-los a partir de seu arquivo de disco - e é por isso que eles não conte para o limite de confirmação.

    
por 02.12.2011 / 08:20