win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

1. win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

Vinícius dos Santos Oliveira
vinipsmaker

(usa Arch Linux)

Enviado em 29/11/2009 - 16:40h

No linux, quando um programa aloca memória e é finalizado a memória por ele alocado é liberada, certo?
E no windows?


  


2. MELHOR RESPOSTA

Denis Doria
thuck

(usa Debian)

Enviado em 30/11/2009 - 12:24h

Ok, entendi aonde vc quer chegar, essa parte sempre será "apagada" quando um software sair da memória, mas independente de ser usando malloc ou int var, pois isso faz parte da pilha de dados do software, como falei antes vc precisa imaginar que ele possui duas partes uma estática e outra dinâmica, mas isso não é relacionado a alocação dinâmica de memória, mas sim ao código e a execução.


3. não!!!

djobi gambino
djobix

(usa Arch Linux)

Enviado em 29/11/2009 - 22:01h

se entendi bem não. por isso que tem um monte de prog para limpar mem win


4. Re: win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 29/11/2009 - 22:25h

Todo sistema operacional moderno libera memória alocada para determinado programa ou processo quando esses são finalizados, ou seja, se programa A é encerrado e programa B precisa que seja alocado memória para prosseguir, se o espaço que A ocupava for o suficiente para B prosseguir, é possível alocar para B o espaço que antes estava alocado para A. O que pode diferenciar os sistemas operacionais são os algorítimos de particionamento, com certeza dinâmico nos SOs modernos, ou o algorítimo de fragmentação das posições livres em memória.


5. Re: win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 29/11/2009 - 23:08h

se me lembro, é como disse wdmatheus....quando vc fecha o aplicativo.... a memo que ele gastava, fica desalocada e livre...
se me lmebro ainda, nos modernos SO, tem alocação dinâmica de memória, até de vídeo...
sua NVIDIA troca memo com a CPU!


6. Re: win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

Vinícius dos Santos Oliveira
vinipsmaker

(usa Arch Linux)

Enviado em 30/11/2009 - 00:32h

Valeu galera, na verdade eu perguntei porque estava fazendo um processador de texto e nos estágios iniciais eu não poderia ter certeza que ele desalocaria tudo que alocou, mas aí a memória poderia encher e eu teria de reiniciar para continuar trabalhando.

Na verdade eu queria perguntar se o linux desalocava a memória, mas eu confio muito no linux e fiquei curioso para saber se o windows também fazia isso.

O processador será em ncurses e vai salvar em bbcode (talvez em versões posteriores ele salve em odf). Valeu mesmo. Até.


7. Re: win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/11/2009 - 07:12h

Sam. L, porcure por Sistemas Operacionais Modernos de Tanenbaum.


8. Re: win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

Denis Doria
thuck

(usa Debian)

Enviado em 30/11/2009 - 08:06h

Bem, na verdade o Linux não libera memória quando um programa é encerrado, ou pelo menos ele não libera tudo o que o programa usou; e isso é algo saudável. Se você reparar um programa abre muito mais rápido na segunda vez, isso ocorre devido ao uso da memória cache.
Vamos dizer que existem 3 tipos de memória, ocupada, livre e cache. O comando 'free -m' mostra muito bem isso.
Desalocar memória é uma tarefa muito ruim para um SO; então o Linux marca como cache a memória "liberada" pelo programa, assim se vc usar o mesmo novamente ele não precisa carregar tudo em memória de novo, e o acesso fica mais rápido.


9. Re: win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

Vinícius dos Santos Oliveira
vinipsmaker

(usa Arch Linux)

Enviado em 30/11/2009 - 08:52h

Realmente isso é interessante. Btw, eu não falava da memória normal, mas da alocada dinamicamente.


10. Re: win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

Sergio Teixeira - Linux User # 499126
Teixeira

(usa Linux Mint)

Enviado em 30/11/2009 - 09:08h

O que faz o windows liberar um pouco menos de memória é o fato de ele precisar iniciar muitos suplementos para poder rodar um determinado aplicativo.
São esses suplementos que não são liberados de imediato, e depois de um certo tempo ficam realmente pesando.
Então ele libera a memória usada pelo aplicativo, porém guarda tudo aquilo que seja necessário para chamá-lo de volta o mais rápido possível.
Isso pode ser muito bom, ou em alguns casos até mesmo tornar-se um inconveniente.
Windows também faz uso concomitante e massivo de memória virtual (leia-se "HD") e quando essa memória é pequena todo o sistema se ressente em termos de desempenho.


11. Re: win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/11/2009 - 09:17h

Hã Tuck, desculpe descordar, mas a menos que eu esteja enganado, não é isso que acontece não. Para que um programa/procsso ganhe CPU, ele tem que estar obrigatoriamente alocado na memória principal. Ai sim pode entra a memória cache, que é memória de processador, seja Level 1, 2 ou 3, que carrega partes de instruções que estão na memória principal para que o acesso da CPU fique mais rápido. Existe ainda a TLB, que é uma espécie de cache. Estas armazenam um resumo da tabela de página e agiliza o mapeamento de memória, pois os endereços na memória que precisarem ser usados, referenciados ou modificados serão encontrados mais fácil e rápido. Mas quando um programa/processo é encerrado, a região que o mesmo ocupava na memória é liberado para uso posterior. Ai entra a fragmentação interna (um programa pode precisar alocar uma região maior que os blocos que estão livres, ocorrendo assim uma fragmentação interna) e o particionamento dinâmico (cada programa irá usar o espaço que precisa passando a ser essa região a ser sua partição).

Se falei alguma besteira me corrijam por favor.


12. Re: win também joga fora a memória não desalocada por aplicativos? [RESOLVIDO]

Denis Doria
thuck

(usa Debian)

Enviado em 30/11/2009 - 09:51h

Olá wdmatheus ;

Vc está confundindo as memórias. Estou falando de cache em memória ram, faça 'free -m':

total used free shared buffers cached
Mem: 2017 1246 770 0 220 632
-/+ buffers/cache: 393 1623
Swap: 909 0 909

Cache de memória do processador é outra tipo de memória.
Quando um software é carregado a primeira vez na memória é feito uma cópia do binário, depois é criado uma heap que armazena as variáveis, e o estado do processo. Imagine que existem duas partes do processo uma estática, e outro dinâmica; quando um processo termina ou é morto, o kernel retira da memória a parte dinâmica, mas mantêm a parte estática; e isso é a memória cache. Claro que estou simplificando; mas basicamente é isso.

vinipsmaker não entendi oq vc quer dizer; td é alocado dinamicamente; oq vc quer dizer com memória normal???





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts