![Os aplicativos são removidos da RAM quando são fechados?](https://rvso.com/image/1303066/Os%20aplicativos%20s%C3%A3o%20removidos%20da%20RAM%20quando%20s%C3%A3o%20fechados%3F.png)
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.