Memória com fio vs. Memória ativa no OS X

13

Estou tendo problemas para entender a diferença entre memória com fio e memória ativa no OS X.

Não fale sobre os quatro tipos de memória (não fale sobre memória livre ou inativa, porque eu já sei o que são). Basta comparar e contrastar a memória com fio à memória ativa para que eu possa entender melhor essas duas.

tony_sid
fonte

Respostas:

26

Lembrete gentil: para fornecer uma resposta melhor para o resto da comunidade, não diga algo como “Não fale sobre os quatro tipos de memória”. Mesmo que você o conheça bem, pode haver mil e um cidadãos da Internet chegando aqui esperando uma resposta colateral. :)

"Paginação" é o termo exato para a ação a seguir. "Trocar" é usado coloquialmente para "paginação", no entanto, de forma intercambiável atualmente. “Trocar” originalmente se referia à movimentação do espaço de memória de um programa completamente para “armazenamento secundário” (em oposição a “armazenamento principal”, que é um termo arcaico para ... RAM, de certa forma). O limite entre paginação e troca é consideravelmente obscurecido pelos sistemas Windows e Unix que chamam de troca de espaço de paginação.

E então, é preciso conhecer a paginação para entender o conceito de memória ativa, com fio e inativa. Paginação significa que a página da memória é movida para fora da memória de acesso aleatório (ou seja, a RAM) e para o disco rígido ou outro dispositivo de armazenamento secundário. Isso permite que o aplicativo em execução solicite mais memória do que a quantidade total de RAM do sistema disponível.

Observe que, embora paginar para fora signifique uma enorme penalidade de desempenho para acessar esse bit específico de informações novamente, a paginação pode ocorrer em dois casos diferentes: (Fazendo uma citação: Desvantagens de não ter uma partição de swap )

  1. Quando não há memória suficiente para todos os aplicativos - no caso em que isso acontece com um sistema sem espaço de troca, causará uma falha na alocação de memória para novos aplicativos que solicitam novas páginas de memória - e isso geralmente resulta no encerramento do programa.
  2. Quando algumas páginas de memória (a memória é dividida em “páginas”) são usadas há algum tempo, mas não são mais usadas agora, elas são transferidas para o arquivo de troca e a memória restante pode ser usada para fazer outra coisa que poderia ser mais útil (por exemplo, até armazenamento em cache!) - quando isso acontece em um sistema sem espaço de troca, isso resulta em páginas ociosas que ficam na memória. Isso não é nada sério, pois temos uma quantidade bastante grande de memória hoje em dia.

Os quatro tipos de memória são classificados da seguinte maneira:

  • Com fio: Usado por um aplicativo que afirma que o pedaço de memória alocada deve permanecer fisicamente na RAM e não ser trocado no disco, independentemente de ser usado recentemente ou não, ou seja, outro aplicativo NÃO pode solicitar esse pedaço de memória específico. Exemplos fazem parte da memória utilizada pelo sistema e usada pelas máquinas virtuais.

  • Ativa e inativa: são as memórias usadas geralmente por aplicativos no modo de usuário, nas quais são trocáveis ​​em discos. "Ativo" significa que foi usado recentemente e "Inativo" significa que não foi usado recentemente. O sistema operacional trocaria primeiro as páginas inativas e depois as páginas ativas mais tarde, se necessário.

  • Memória livre: memória que não é usada. Isso é usado para outros fins, como armazenamento em cache do disco rígido.

Se sua pergunta for: "Em uma situação terrível em que a memória é inadequada, em que ordem o sistema tentaria alocar memória para um novo aplicativo?", A sequência seria alocar

memória livre → memória inativa → memória ativa

De certa forma, até a memória usada recentemente pode ser paginada. A parte "com fio" é o que não seria paginado a todo custo.

Nos sistemas modernos, porém, é pouco provável que a memória ativa seja paginada, pois temos bastante RAM disponível.

bubu
fonte
Agora você tornou essa pergunta mais complicada do que deveria, falando sobre os outros tipos de memória. Então agora eu tenho que perguntar sobre memória ativa versus inativa. Ouvi dizer que a memória inativa é realmente memória livre. Sobre o que é isso. A memória ativa também é memória livre? Compare e contraste a memória ativa com a memória inativa.
21411 Tiny_sid #
11
Ouvi dizer que a memória inativa é simplesmente cache, no caso de um programa fechado ser reiniciado. Se isso é verdade, por que ele precisa ser colocado no disco?
Tbm03
11
Você ouviu algo errado. O aplicativo fechado terá sua memória liberada, a menos que algo esteja errado com a arquitetura da memória.
bubu
2
resposta fantástica! 1
posdef
11
@tony_sid uma discussão antiga, mas o que você ouviu está correto. Conforme mencionado no suporte da Apple "No entanto, se você abrir o Mail antes que sua memória inativa seja usada por um aplicativo diferente, o Mail abrirá mais rapidamente porque sua memória inativa é convertida em memória ativa, em vez de carregá-la na unidade mais lenta".
Gaurav