In diesem Zeitalter werden Ihre Handheld-Geräte immer besser und leistungsfähiger. Wir haben ständig Upgrades in der Speicherabteilung bekommen (mehr als wir eigentlich brauchen). Wenn Sie unseren früheren Beitrag „Wie viel RAM ist zu viel RAM?“ gelesen haben, werden Sie wissen, wie viel RAM Ihr Smartphone tatsächlich braucht, um reibungslos zu funktionieren, und wie viel darüber hinaus einfach zu viel ist.
Wenn Ihr Telefon heutzutage langsamer wird, brauchen Sie vielleicht ein Upgrade. Aber haben Sie sich schon einmal gefragt, warum das so ist und vor allem, wie es dazu kommt? In diesem Beitrag werden wir dekodieren, wie das passiert. Und noch viel mehr. Lesen Sie weiter!
Warum sich unsere Welt um den Arbeitsspeicher dreht?
Das Herzstück des Android-Betriebssystems ist ein Linux-Kernel. Jedes Mal, wenn Sie eine neue App starten, erstellen Sie einen Prozess innerhalb von Linux. Ein Prozess ist nun für all die verschiedenen Ressourcen verantwortlich, die der Kernel den verschiedenen Anwendungen zuweisen kann. CPU-Zeit, Input- und Output-Prozesse und RAM werden alle als Ressourcen betrachtet.
CPU-Zeit und I/O werden meist als unendliche Ressourcen betrachtet. Wenn Sie eine belegte CPU haben und einen neuen Task starten wollen, wird Ihr Task auch einen Teil dieser CPU-Zeit bekommen. Es ist sicher, dass die Aufgabe ausgeführt wird, aber sie könnte sich aufgrund der Überlastung der CPU-Zeit verzögern. Ebenso kann Ihre Aufgabe etwas schneller ausgeführt werden, wenn die CPU weniger ausgelastet ist.
Im Falle von E/A kann das Herunterladen einer großen Datei, das Schreiben von Daten in den internen Speicher oder das gleichzeitige Ausführen anderer Prozesse deren Abschluss verlangsamen, aber es wird schließlich geschehen.
Der Arbeitsspeicher ist jedoch in einem Gerät in einer festen Menge vorhanden. Er ist endlich. Wenn einem der Arbeitsspeicher ausgeht, gibt es keinen Zauber, der den Arbeitsspeicher wieder frei macht, wenn man etwas länger wartet. Deshalb brauchten Android und Linux ein System, das ihnen hilft, diese Beschränkung zu überwinden.
Wie funktioniert RAM in einem Smartphone?
Wann immer Sie eine App auf Ihrem Gerät starten, wird ein neuer Prozess gestartet, der vom Linux-Kernel verlangt, dass er (sagen wir) „X“ Mengen an RAM benötigt, nur um die Anwendung zu laden. Im Anschluss daran kann die Anwendung noch mehr Arbeitsspeicher anfordern, um weitere Dateien zu laden oder etwas aus dem Internet herunterzuladen, und der Linux-Kernel stellt den erforderlichen Speicher zur Verfügung. So funktioniert die grundsätzliche Zuweisung von RAM.
Ihr Gerät verfügt über einen Pool an verfügbarem Speicher, der sich von freiem Speicher unterscheidet. Der verfügbare Speicher ist der Speicher, der für den Start neuer Anwendungen oder die Verarbeitung anderer Anwendungen zur Verfügung steht, ohne Swapping. In einem Multitasking-Betriebssystem ist freier Speicher eine schlechte Sache, da der Speicher ungenutzt bleibt; er kann immer bei dem einen oder anderen Prozess helfen.
Zum Beispiel kann freier Speicher zur Verbesserung der Datei-E/A, der Netzwerk-E/A für das Caching verwendet oder an andere Programme weitergegeben werden, die diesen zusätzlichen Speicher nützlich machen können. Gleichzeitig wird er auch als verfügbarer Speicher gekennzeichnet. Daher kann er jederzeit nicht mehr als Puffer oder zum Zwischenspeichern verwendet werden, sondern kann von einem Prozess genutzt werden.
Bei einem Gerät mit 4 GB RAM wird ein Teil des Speichers von Hardware-Treibern und ein anderer Teil von Android verwendet. Der verbleibende verfügbare Speicher nach dem Neustart eines neuen Systems beträgt etwa 1,7 GB. Wenn eine Anwendung gestartet wird, schaut sich das Gerät den verfügbaren Speicher an und stellt einige Teile zur Verfügung, die für Prozesse verwendet werden können.
Es teilt den Speicher in Seiten auf, wobei eine Seite etwa 4 KB groß ist. Diese Seiten können vom System je nach Bedarf an verschiedene Prozesse delegiert werden. Alle Prozesse funktionieren gut, wenn viel Speicher vorhanden ist. Aber wenn der verfügbare Speicher mit der steigenden Anzahl von Anwendungen abnimmt, fängt es an, Probleme zu verursachen. Irgendwann reicht der verfügbare Speicher nicht mehr aus, um einen neuen Prozess zu starten.
An diesem Punkt haben Linux und Android ein Problem. Um damit umzugehen, können sie entweder Swapping betreiben oder eine App beenden, um Speicher freizugeben. Das Konzept des Swappings kennen wir von Servern und Desktops. Wenn Sie nicht genug Speicher haben, können Sie einen Teil des aktiven Speichers, der sich derzeit im RAM befindet, auf die Festplatte auslagern. Auf diese Weise wird dieser Speicherblock/diese Speicherseite wieder freigegeben. Wenn diese Seite später wieder benötigt wird, können Sie sie von der Festplatte zurückholen. Android arbeitet jedoch etwas anders und speichert den Speicher nicht auf der Festplatte.
Android verwendet ZRAM („Z“ ist in der Unix-Sprache ein Symbol für komprimiertes RAM). ZRAM-Swap kann die Menge des im System verfügbaren Speichers erhöhen, indem Speicherseiten komprimiert und in einen dynamisch zugewiesenen Swap-Bereich des Speichers gelegt werden. Sobald etwas in diesen komprimierten Speicher geschrieben wurde, kann man nicht mehr darauf zugreifen, und er wird sozusagen zu einer ZIP-Datei. Wenn Sie sie verwenden wollen, müssen Sie sie dekomprimieren und zurück in den Hauptspeicher schreiben. Dieser Vorgang ist das Auslagern und Zurücklagern. Dieser endlose Zyklus des Auslagerns wird „Thrashing“ genannt. Android hat kein Problem mit Thrashing, denn wenn der Speicher gesättigt ist, d.h. kein Platz mehr zum Auslagern vorhanden ist, beginnt es einfach, Prozesse zu beenden.
Es wählt eine Anwendung aus der Liste aus, die Sie eine Zeit lang nicht benutzt haben, und beendet sie. Dadurch wird der von dieser Anwendung belegte Speicherplatz freigegeben, und es steht nun Platz für eine neue Anwendung oder die Erweiterung einer vorhandenen Anwendung zur Verfügung. Alle Apps sind so konzipiert, dass, wenn eine App in den Hintergrund geht, immer die Möglichkeit besteht, dass sie nie wieder geöffnet wird. Daher wird ihr aktueller Zustand gespeichert.
Wenn Sie die App erneut öffnen, wird sie neu geladen. Manchmal ist dieser Vorgang nicht nahtlos. Wenn Sie zum Beispiel ein Spiel gespielt haben, beginnt es nicht dort, wo Sie aufgehört haben, sondern vielleicht im selben Level. Wie gut die App mit dieser Situation zurechtkommt, hängt von der App und der Person ab, die diese App geschrieben hat. Wenn Sie einen größeren Arbeitsspeicher benötigen, können mehrere Prozesse abgebrochen werden.
Häufiges Nachladen führt zu einer schlechten Benutzererfahrung. Deshalb ist ein größerer Arbeitsspeicher aus Sicht des Benutzers vorzuziehen. Zwar sind die Feinheiten des Swapings und der Zeitpunkt des Swaps etwas komplizierter. Aber wenn Ihr Telefon überlastet ist, wird es zwangsläufig einige Anwendungen beenden, damit Ihr Telefon weiterläuft und nicht einfriert. Das Killen ist im Grunde ein notwendiges Übel, das vom Android-System übernommen wird. Bleiben Sie dran für weitere Artikel dieser Art, die auf Sie zukommen. Viel Spaß beim Lesen!