Mir ist aufgefallen, dass wenn man ein Programm öffnet, schließt und dann wieder öffnet, es beim zweiten Mal viel schneller zu öffnen scheint.
Liegt das daran, dass es beim zweiten Mal bereits im RAM ist?
Anders ausgedrückt: Ich gehe davon aus, dass der Speicherplatz eines Programms nach dem Schließen als unbenutzt markiert wird. Wenn das Programm erneut geöffnet wird, bevor der alte Speicherplatz verbraucht ist, muss das Programm dann vollständig von der Festplatte neu geladen werden?
Antwort1
Wenn eine Anwendung geschlossen/beendet wird, wird der von ihr belegte Speicher im Allgemeinen sofort freigegeben, und wenn Sie die Anwendung neu starten, wird sie erneut von der Festplatte in den „neuen“ Speicher geladen.
Die größte Ausnahme hiervon sind einige „Smartphones“, bei denen eine Anwendung manchmal nicht sofort beendet wird, wenn Sie sie „beenden“, sondern einfach für eine gewisse Zeit „im Hintergrund“ bleibt, in der Annahme, dass Sie sie in naher Zukunft neu starten können. Wenn Sie die Anwendung jedoch eine Zeit lang nicht verwenden, wird sie schließlich vom Betriebssystem beendet und der Speicher freigegeben. (Soweit ich weiß, wird dieses Schema nicht auf normalen Microsoft- oder Apple-Computern verwendet, sondern nur auf Telefonen.)
Eine weitere Ausnahme, die etwas technischer ist, besteht darin, dass das Disk-Image des Programms (oder zumindest Teile davon) trotz Beendigung des Programms und Freigabe seines Speichers möglicherweise noch im Disk-Cache vorhanden ist und beim zweiten Mal leichter aufgerufen werden kann als beim ersten Mal. Dies kann der Grund dafür sein, dass Sie den Start beim zweiten Mal als schneller empfinden.
Es gibt jedoch einen anderen, einfacheren Grund für den schnelleren Start. Wenn Sie eine Anwendung beenden und sie dann sofort wieder starten, entsteht dieses praktische „Loch“ im Speicher, das genau zu Ihrem Programm passt. Wenn Sie es später starten, nachdem Sie andere Dinge ausgeführt haben, muss das Betriebssystem nach freiem Speicher suchen, und das bedeutet oft, dass es andere Daten im RAM „auslagern“ muss, ein zeitaufwändiger Prozess.
Antwort2
Es wird nicht mehr verwendet oder ungenutzt, wenn das Programm geöffnet ist, als wenn das Programm geschlossen ist. Der Speicher istgebrauchtwenn es nützliche Informationen enthält. Es enthält nützliche Informationen sowohl während der Ausführung des Programms als auch wenn das Programm nicht mehr ausgeführt wird.
Tatsächlich berücksichtigen die meisten Betriebssysteme nicht einmal, ob das Programm überhaupt ausgeführt wird. Warum sollte man etwas im Speicher behalten, wenn nicht darauf zugegriffen wird, nur weil ein Programm ausgeführt wird? Und warum sollte man etwas aus dem Speicher löschen, nur weil kein gerade ausgeführtes Programm es verwendet?
Betriebssysteme richten sich nach dem Zugriff auf Daten. Natürlich gilt Speicher, der Daten enthält, auf die nie zugegriffen werden kann, als frei.