Die Speicherzuweisung kann als ein Vorgang beschrieben werden, bei dem der physische oder der virtuelle Speicheradressraum einem Programm (seinen Anweisungen und Daten) zugewiesen wird. Die zwei grundlegenden Methoden der Speicherzuweisung sind:
Contents
Statische Speicherzuweisung ist die Zuweisung von Speicher zur Kompilierzeit, bevor das zugehörige Programm ausgeführt wird. Bei der statischen Speicherzuweisung muss die Größe der vom Prozess benötigten Daten bekannt sein, bevor die Ausführung des Prozesses initiiert wird. Wenn die Datengrößen vor der Ausführung des Prozesses nicht bekannt sind, müssen sie erraten werden. Wenn die geschätzte Datengröße größer als die erforderliche ist, führt dies zu Speicherverschwendung. Wenn die geschätzte Größe kleiner ist, führt dies zu einer unangemessenen Ausführung des Prozesses.
Bei der statischen Speicherzuweisung bleiben die Variablen nach der Zuweisung dauerhaft. Nach der anfänglichen Zuweisung kann der Programmierer die Größe des Speichers nicht ändern. Der Speicher kann nicht vergrößert oder verkleinert werden.
Die statische Speicherzuweisungsmethode erfordert keine Speicherzuweisungsoperation während der Ausführung des Prozesses. Da alle für den Prozess erforderlichen Speicherzuweisungsoperationen durchgeführt werden, bevor die Ausführung des Prozesses begonnen hat. Daher führt dies zu einer schnelleren Ausführung eines Prozesses. Die statische Speicherzuweisung ist fest, aber die Implementierung ist einfach und leicht und geht auch schnell.
Die dynamische Speicherzuweisung bezieht sich auf die Verwaltung des Systemspeichers zur Laufzeit. Dabei wird der Speicher den Instanzen des Programms zugewiesen, wenn diese zum ersten Mal während des Programmablaufs verwendet werden sollen. Die tatsächliche Größe der benötigten Daten ist zur Laufzeit bekannt und daher weist der Prozess dem Programm den genauen Speicherplatz zu und reduziert so die Speicherverschwendung, ein Faktor, der die Leistung des Systems verbessert.
Die dynamische Speicherzuweisung erzeugt normalerweise einen Overhead für das System. Einige Zuweisungsoperationen werden während der Programmausführung wiederholt ausgeführt, was zu mehr Overhead führt, was zu einer langsamen Ausführung des Programms führt.
Die dynamische Speicherzuweisung bietet Flexibilität bei der Speicherzuweisung, denn wenn das Programm groß genug ist, führt es Speicherzuweisungsoperationen an verschiedenen Programmteilen durch und reduziert die Speicherverschwendung.
Lesen Sie auch: Unterschied zwischen statischem RAM und dynamischem RAM
VERGLEICHSGRUNDLAGE | STATISCHE SPEICHERZUWEISUNG | DYNAMISCHE SPEICHERZUWEISUNG |
Zuteilungszeit | Speicher wird zugewiesen, bevor die Ausführung des Programms beginnt (während der Kompilierung). | Speicher wird während der Ausführung des Programms zugewiesen. |
Art der Zuteilung | Variablen bleiben fest zugewiesen. | Speicher kann jederzeit zugewiesen und jederzeit wieder freigegeben werden. |
Bei der Zuweisung verwendeter Speicherbereich | Es verwendet Stack zum Verwalten der statischen Speicherzuweisung. | Es verwendet Heap für die Verwaltung der dynamischen Speicherzuweisung. |
Änderung der Speichergröße | Bei der statischen Speicherzuweisung kann sich die Speichergröße nach der Zuweisung des Speichers nicht mehr ändern. | Bei der dynamischen Speicherzuweisung kann bei der Speicherzuweisung die Speichergröße geändert werden. |
Ausführungsgeschwindigkeit | Beim statischen Speicherzuweisungsschema ist die Ausführung schneller als bei der dynamischen Speicherzuweisung. | Beim dynamischen Speicherzuweisungsschema ist die Ausführung langsamer als bei der statischen Speicherzuweisung. |
Effizienz | Es ist weniger effizient als ein dynamisches Zuweisungsschema. | Es ist effizienter als ein statisches Zuweisungsschema. |
Implementierung | Die Implementierung der statischen Speicherzuweisung ist einfach. | Die Implementierung der dynamischen Speicherzuweisung ist komplex. |
Größenänderung | Bei dieser Art der Zuweisung kann die Größe des Speichers nach der anfänglichen Zuweisung nicht geändert werden. | Bei dieser Art der Zuweisung kann der Speicher bei Bedarf dynamisch erweitert und verkleinert werden. |
Speicher | Speicher kann nicht wiederverwendet werden, wenn er nicht mehr benötigt wird. | Speicher kann freigegeben werden, wenn er nicht mehr benötigt wird, und während der Ausführung wiederverwendet oder neu zugewiesen werden. |
Verwenden | Es wird in einem Array verwendet. | Es wird in einer verknüpften Liste verwendet. |
Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…
Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…
In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…
Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…
Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…
Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…