Os aplicativos são removidos da RAM quando são fechados?

Os aplicativos são removidos da RAM quando são fechados?

Percebi que quando você abre um programa, fecha-o e abre-o novamente, ele parece abrir muito mais rápido na segunda vez.

É porque na segunda vez já está na RAM?

Dito de outra forma, presumo que quando um programa é fechado, seu espaço de memória é marcado como não utilizado. Se esse programa for aberto novamente antes que o espaço de memória antigo seja usado, será necessário recarregar o programa por completo a partir do disco?

Responder1

Em geral, quando um aplicativo fecha/termina o armazenamento que ocupava é liberado instantaneamente e, se você reiniciar o aplicativo, ele será carregado novamente do disco, para o "novo" armazenamento.

A maior exceção a isso seria em alguns "smartphones", onde às vezes, quando você "encerra" um aplicativo, ele não é encerrado imediatamente, mas simplesmente fica "em segundo plano" por um período de tempo, supondo que você possa reiniciá-lo no próximo futuro. Mas se você não usar o aplicativo por um período de tempo, ele será encerrado pelo sistema operacional e o armazenamento será recuperado. (Até onde eu sei, esse esquema não é usado em computadores normais da Microsoft ou Apple, apenas em telefones.)

Outra exceção, um pouco mais técnica, é que mesmo que o programa seja encerrado e seu armazenamento liberado, a imagem de disco do programa (ou pelo menos partes dela) ainda pode existir no "cache" do disco, podendo ser acessada mais facilmente uma segunda vez do que a primeira vez. Esta pode ser a causa do que você considera uma inicialização mais rápida na segunda vez.

No entanto, há outra razão mais simples para essa inicialização mais rápida. Quando você encerra um aplicativo e o reinicia imediatamente, há um "buraco" conveniente no armazenamento que se ajusta exatamente ao seu programa. Se você iniciá-lo mais tarde, depois de executar outras coisas, o sistema operacional terá que procurar o armazenamento disponível, e isso geralmente significa que ele deve "paginar" outros dados na RAM, um processo demorado.

Responder2

Não é mais usado ou não usado quando o programa está aberto do que quando o programa está fechado. A memória éusadose contiver informações úteis. Ele contém informações úteis enquanto o programa está em execução e quando o programa não está mais em execução.

Na verdade, a maioria dos sistemas operacionais nem mesmo considera se o programa está sendo executado. Por que manter algo na memória se não está sendo acessado apenas porque um programa está em execução? E por que descartar algo da memória só porque nenhum programa em execução naquele instante o está utilizando?

Os sistemas operacionais passam pelo acesso aos dados. É claro que a memória que contém dados que nunca poderão ser acessados ​​é considerada livre.

informação relacionada