P: Porque, ao carregarmos um programa pesado após
o boot, ele leva um certo tempo para carregar e ao abri-lo imediatamente
após fecha-lo o tempo é menor?
R: Você é um sujeito observador.
Pouca gente se dá conta deste fato (que só ocorre
em Windows, não no DOS). O que acontece é que Windows
"guarda" informações sobre os programas
que carregou e sobre as posições ocupadas por eles
na memória. Quando se "fecha" um programa, simplesmente
informa-se ao sistema operacional que o programa não mais
está sendo executado. Mas o conteúdo da memória
não é alterado imediatamente (ou seja, o código
executável do programa permanece lá por algum tempo,
até que aqueles trechos de memória venham a ser ocupados
por dados ou pelo código do próximo programa carregado).
Se você "recarrega" o programa pouco depois de fechá-lo,
ou seja, se o executa novamente antes que seu código venha
a ser sobrescrito na memória, Windows não precisa
de lê-lo do disco: simplesmente "aponta" para aquele
trecho o registrador da CPU que contém o endereço
da próxima instrução a ser executada (o "Ponteiro
de Instruções) e manda ver. Parabéns por ter
percebido isto. É uma coisa evidente, mas quase ninguém
se dá conta que ocorre.
B.
Piropo