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

3

Esta pergunta segue o como Eu analiso com precisão o uso de memória no Windows 7?

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

Épossívelalterarasconfiguraçõesdokernelparaqueeupossautilizar100%damemóriaoperacional?Agora,nogerenciadordetarefasquandoeualcanço80%dousodememória,okernelagecomosefosse100%,porqueessaéabordaquandooaplicativocomeçaatravarenãoconseguealocarmemória.Comofaçoparaliberaresses20%paraqueeupossautilizartodaamemóriaquetenhoaté100%?Porqueesses20%são"reservados" e para quê? O sistema é o windows 7 64 bit com 4gb de ram no total. A troca está desativada por motivos de desempenho. (disco rígido é terrivelmente lento e permitindo troca torna o computador quase inutilizável)

    
por Petr 02.11.2012 / 16:35

2 respostas

4

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

O tamanho virtual é a quantidade total de memória que um programa pode precisar executar. Muitos programas não usam toda a memória virtual alocada a eles, mas solicitam que eles tenham o suficiente para executar qualquer operação solicitada por eles. Ele também é usado para arquivos mapeados na 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 relacionados ao processo que solicita memória privada.

Para que isso funcione, o sistema operacional precisa:

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

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

Quando você tem um arquivo de paginação, um processo só precisa de algo entre a quantidade de Working Set e Private Bytes de memória física. Quando você desativa seu arquivo de paginação, o Windows deve alocar a quantidade total de Virtual Size de memória ou recusar a solicitação de memória. (No Monitor de Recursos do Windows, essa é a coluna Commit , porque o Windows está Compilando essa quantidade de memória virtual para o processo.

    
por 02.11.2012 / 16:58
1

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

Vejatambém Qualquer benefício ou prejuízo da remoção de um arquivo de paginação em uma máquina com 8 GB de RAM?

    
por 02.11.2012 / 16:58