OS congelar quando o sistema operacional inicia a troca de memória

2

Antecedentes: tenho 16 GB de memória na minha máquina.

Quando minha máquina já usa 15 GB de memória e meu aplicativo aloca outro pedaço de 2 GB de memória, fico sem memória física e permito (deve) aparecer e usar o espaço em disco disponível. Em vez disso, o Windows congela completley. Por que isso acontece? Eu pensei que o Windows (um processo de usuário) nunca pague os processos relacionados à memória / threads / os-memory. Por que bloqueia então?

Eu esperaria que meu processo parasse, mas por que isso acontece com o sistema operacional inteiro? Uma ideia: está relacionado ao tamanho da memória de 2 GB que bloqueia o gerenciamento da memória interna até que seja bem-sucedido. Portanto, os outros processos também são bloqueados. Não tenho certeza se isso faz algum sentido. Quais são seus pensamentos sobre isso?

    
por seb-mtl 02.01.2015 / 20:16

2 respostas

2

Estou assumindo que o Windows é capaz de usar o arquivo de paginação (ele não está desabilitado e ainda há espaço no arquivo de paginação) e congelando significa que demora quase uma eternidade para mostrar a reação como minutos.

Se o Windows estiver sob pressão de memória (RAM insuficiente), ele iniciará a troca de dados da RAM para o disco rígido / arquivo de paginação. O algoritmo exato com o qual os dados são trocados é muito complexo, mas em geral é a memória menos usada recentemente que não está bloqueada pela troca (algumas páginas de kernel e drivers de disco rígido e assim por diante são bloqueados). Pode até trocar partes do explorer.exe e alguns outros processos importantes da GUI ou firewall / antivírus. Quando você tenta interagir com o GUI, ele tem que carregá-lo de volta do disco rígido, que é muito lento em comparação com a RAM e eu tenho visto casos, onde leva mais de 15 minutos para pelo menos parcialmente descongelar o desktop.

Se você quiser investigar mais, recomendo usar o monitor de desempenho. No Windows 8, você pode acessá-lo com o monitor de gerenciamento de desempenho, mas ele também é utilizável em sistemas Windows mais antigos. No Windows 8 você pode até ver qual processo e qual arquivo é o culpado.

    
por 02.01.2015 / 23:54
0

Depois de ler o Q e os comentários, acho que posso responder ...

É assim que todos os outros computadores Windows funcionam, pelo que você disse.

Sua resposta seria ... "Discos rígidos são lentos"

    
por 02.01.2015 / 21:59