Por que o Windows mata processos ou não permite que eles aloquem mais memória, mesmo que haja alguma RAM livre

Por que o Windows mata processos ou não permite que eles aloquem mais memória, mesmo que haja alguma RAM livre

Esta questão segue a anteriorComo analiso com precisão o uso de memória no Windows 7?

Por que em um sistema onde os processos reais consomem apenas cerca de 40% da memória física (conjunto de trabalho privado) e o resto é de alguma forma misteriosamente consumido pelo sistema operacional, o kernel não permite que os processos aloquem mais memória, mesmo que ainda haja cerca de 800 MB de memória zerada? memória?

Memória

É possível alterar as configurações do kernel para que eu possa utilizar 100% da memória operacional? No momento, no gerenciador de tarefas, quando alcanço 80% de uso de memória, o kernel age como se estivesse 100%, porque essa é a vantagem quando o aplicativo começa a travar e não consegue alocar memória. Como libero esses 20% para poder utilizar toda a memória que tenho até 100%? Por que esses 20% estão “reservados” e para quê? O sistema é o Windows 7 de 64 bits com 4 GB de RAM no total. A troca está desabilitada por motivos de desempenho. (o disco rígido é terrivelmente lento e a ativação da troca torna o computador quase inutilizável)

Responder1

O conjunto de trabalho privado não é a totalidade da memória de um processo:

Bytes privados, conjunto de trabalho, tamanho virtual

O tamanho virtual é a quantidade total de memória que um programa pode precisar para executar. Muitos programas não usam toda a memória virtual alocada para eles, mas a solicitam para garantir que tenham o suficiente para realizar qualquer operação que você solicitar. Também é usado para arquivos mapeados em memória e outras coisas que são mais fáceis de fazer como memória (espaços de memória compartilhada, IPC), mas não estritamente relacionadas ao processo de solicitação de memória privada.

Para que isso funcione, o sistema operacional deve:

  • Forneça uma garantia para a memória de que ela estará disponível
  • Recusar a solicitação de memória (na maioria das vezes, isso retornará no travamento/encerramento do aplicativo)

Normalmente, o sistema alocará essa memória virtual não utilizada no arquivo de paginação e, então, apenas as partes realmente usadas ocuparão RAM física. No entanto, ao desabilitar seu arquivo de paginação, você está forçando o sistema operacional a usar memória física para fornecer essas garantias. Isso significa que você acabará com muitas páginas de memória zeradas que não poderão ser alocadas para outro processo.

Quando você tem um arquivo de paginação, um processo só precisa de algo entre a Working Setquantidade Private Bytesde memória física. Quando você desativa seu arquivo de paginação, o Windowsdevealoque a Virtual Sizequantidade total de memória ou recuse a solicitação de memória. (No Monitor de Recursos do Windows, esta é a Commitcoluna, porque o Windows éCometeressa quantidade de memória virtual para o processo.

Responder2

O Monitor de Recursos deve mostrar se você realmente tem memória livre.

Monitor de recursos

Veja tambémAlgum benefício ou prejuízo na remoção de um arquivo de paginação em uma máquina com 8 GB de RAM?

informação relacionada