Was ist eine Speicherverwaltungseinheit? (Mit Bildern)
Die Computerhardware, die für die Verwaltung des Speichersystems des Computers verantwortlich ist, wird als Speicherverwaltungseinheit (Memory Management Unit, MMU) bezeichnet. Diese Komponente dient als Puffer zwischen der CPU und dem Systemspeicher. Die von der Speicherverwaltungseinheit ausgeführten Funktionen können typischerweise in drei Bereiche unterteilt werden: Hardwarespeicherverwaltung, Betriebssystemspeicherverwaltung und Anwendungsspeicherverwaltung. Obwohl die Speicherverwaltungseinheit eine separate Chipkomponente sein kann, ist sie üblicherweise in die Zentraleinheit (CPU) integriert.
Im Allgemeinen umfasst die mit der Speicherverwaltung verbundene Hardware Direktzugriffsspeicher (RAM) und Speichercaches. RAM ist das physische Speicherfach auf der Festplatte. Es ist der Hauptspeicherbereich des Computers, in dem Daten gelesen und geschrieben werden. Speicher-Caches dienen zum Speichern von Kopien bestimmter Daten aus dem Hauptspeicher. Die CPU greift auf diese Informationen im Speichercache zu, wodurch die Verarbeitungszeit verkürzt wird.
Wenn der physische Arbeitsspeicher oder der RAM-Speicher nicht mehr ausreicht, verwendet der Computer automatisch den virtuellen Arbeitsspeicher von der Festplatte, um das angeforderte Programm auszuführen. Die Speicherverwaltungseinheit weist Speicher vom Betriebssystem verschiedenen Anwendungen zu. Der virtuelle Adressbereich, der sich in der Zentraleinheit befindet, besteht aus einem Adressbereich, der in Seiten unterteilt ist. Seiten sind gleich große sekundäre Speicherblöcke. Durch den automatisierten Paging-Vorgang kann das Betriebssystem den auf der Festplatte verstreuten Speicherplatz nutzen.
Anstatt dass der Benutzer eine Fehlermeldung erhält, dass nicht genügend Speicher vorhanden ist, weist die MMU das System automatisch an, genügend virtuellen Speicher für die Ausführung der Anwendung zu erstellen. Der zusammenhängende virtuelle Speicherbereich wird aus einem Pool von gleich großen virtuellen Speicherblöcken zum Ausführen der Anwendung erstellt. Diese Funktion ist ein wichtiger Schlüssel, damit dieser Prozess effektiv und effizient abläuft, da das System nicht einen Teil des virtuellen Speichers erstellen muss, um die Programmanforderungen zu erfüllen. Das Erstellen von Speicherplatz unterschiedlicher Größe für Programme unterschiedlicher Größe verursacht ein Problem, das als Fragmentierung bezeichnet wird. Dies könnte dazu führen, dass nicht genügend Speicherplatz für größere Programme zur Verfügung steht, wenn der verfügbare Gesamtspeicherplatz tatsächlich ausreicht.
Die Anwendungsspeicherverwaltung umfasst das Zuweisen des zum Ausführen eines Programms erforderlichen Speichers aus den verfügbaren Speicherressourcen. In größeren Betriebssystemen können viele Kopien derselben Anwendung ausgeführt werden. Die Speicherverwaltungseinheit weist einer Anwendung häufig die Speicheradresse zu, die ihren Anforderungen am besten entspricht. Es ist einfacher, diesen Programmen die gleichen Adressen zuzuweisen. Außerdem kann die Speicherverwaltungseinheit Speicherressourcen nach Bedarf auf Programme verteilen. Wenn der Vorgang abgeschlossen ist, wird der Speicher zur Verwendung an anderer Stelle wiederverwendet.
Eine der größten Herausforderungen für die Speicherverwaltungseinheit besteht darin, festzustellen, wann Daten nicht mehr benötigt werden und verworfen werden können. Dies gibt Speicher für die Verwendung in anderen Prozessen frei. Die automatische und manuelle Speicherverwaltung ist aufgrund dieses Problems zu einem separaten Fachgebiet geworden. Ineffiziente Speicherverwaltung ist ein Hauptproblem, wenn es um die optimale Leistung von Computersystemen geht.