O espaço virtual pode acomodar um único processo?

4

Pelo que entendi, o espaço de troca pode ser usado para trocar processos inativos para liberar memória. Mas um único processo pode aproveitar o espaço de troca? Por exemplo, se meu sistema tiver pouca memória, mas um disco rígido grande com grande espaço de troca, um processo que requer grandes quantidades de memória ainda pode ser executado (embora lentamente) aproveitando o grande espaço de troca de disco? Alguma ação é necessária da minha parte ou o Linux automaticamente cuidará disso?

    
por Tosh 09.05.2015 / 05:58

1 resposta

4

Você não precisa fazer nada especial, além de fornecer espaço para troca e montá-lo.

Para processadores com uma MMU (unidade de gerenciamento de memória, ou seja, a maioria dos processadores desde o início dos anos 90), o espaço de endereçamento completo pode ser usado, embora não haja memória real (RAM) em todos os locais de intervalo de endereços. Se alguma localização de memória for endereçada, a RAM será "anexada" usando um mecanismo de pesquisa. Se nenhuma RAM livre estiver disponível, algum bloco será liberado gravando seu conteúdo no espaço de troca.

É claro que o processador rastreia qual intervalo de endereços de memória foi gravado, de modo que quando algum endereço nesse intervalo é mais uma vez necessário, o bloco correto é "trocado" (na maioria das vezes depois de liberar alguma RAM escrevendo conteúdo para fora).

O detalhe real de cada sistema operacional é diferente, e o artigo na wikipedia sobre paginação é um bom começo se você quiser mais informações.

Esteja avisado com o que você está tentando, os aplicativos de troca concorrentes tornam seu sistema mais lento em algumas ordens de magnitude, fazendo com que pareça que sua máquina está inoperante.

    
por 09.05.2015 / 06:18

Tags