Questão teórica sobre uso de memória

0

Estou pensando sobre o seguinte problema:

Obteve alguns abc console (não importa se bash , zsh ou algo assim) em algum sistema * nix. Se eu iniciar algum processo stuff que usa 2MB de memória e depois lançar a segunda instância do processo stuff , quanta memória será usada no total?

É verdade que 4MB de memória serão usados agora?

    
por micgeronimo 09.02.2015 / 11:18

1 resposta

2

Se os processos forem lançados independentemente, devemos assumir que cada processo seria executado como se nenhum outro processo "gêmeo" fosse iniciado (contanto que eles não precisem controlar os mesmos recursos, por exemplo, arquivos). Eu acho que este é o caso da maioria dos programas simples sem interface gráfica ou qualquer necessidade de se preocupar com várias instâncias.

No entanto, o sistema pode evitar isso e compartilhar dados estáticos constantes entre todas as instâncias do processo. Esses dados podem consistir no código binário, constantes, bibliotecas compartilhadas, etc ...

Além disso, quando você se preocupa apenas com o uso físico da RAM, também precisa pensar na troca. O Linux vai empurrar dados raramente usados para a partição / arquivo de swap no disco rígido para liberar alguma RAM mais rápida como cache.

Então, para concluir: É difícil dizer quanta memória será usada por muitos processos iguais, porque o kernel otimiza o uso compartilhando dados constantes entre as diferentes instâncias, mas você pode ter quase certeza de que será menor que n vezes o uso de um único processo.

    
por Byte Commander 09.02.2015 / 11:54