Stapelrahmen

Definition - Was bedeutet Stack Frame?

Ein Stapelrahmen ist eine Speicherverwaltungstechnik, die in einigen Programmiersprachen zum Generieren und Eliminieren temporärer Variablen verwendet wird. Mit anderen Worten, es kann als Sammlung aller Informationen auf dem Stapel betrachtet werden, die sich auf einen Unterprogrammaufruf beziehen. Stapelrahmen sind nur während des Laufzeitprozesses vorhanden. Stapelrahmen helfen Programmiersprachen bei der Unterstützung rekursiver Funktionen für Unterprogramme.

Ein Stapelrahmen, der auch als Aktivierungsrahmen oder Aktivierungsdatensatz bezeichnet wird.

Technische.me erklärt Stack Frame

Ein Stapelrahmen besteht aus:

  • Lokale Variablen
  • Gespeicherte Kopien von Registern, die durch Unterprogramme geändert wurden, die möglicherweise wiederhergestellt werden müssen
  • Argumentparameter
  • Absender

Ein einzelner Stapelrahmen bietet Platz für Aktualparameter, temporäre Speicherorte, lokale Variablen und aufrufende Unterprogramminformationen. Wenn die spezifischen Routinen, die diese Parameter, Positionen oder Variablen aufrufen, die Ausführung abgeschlossen haben, wird der relevante Stapelrahmen aus dem Stapel entfernt. Die Reihenfolge der Packinformationen im Stapelrahmen ist in den meisten Fällen unabhängig von den Spezifikationen der Programmiersprache.

Eines der hervorstechenden Merkmale des Stapelrahmens ist, dass für ein bestimmtes Unterprogramm die Größe des Stapelrahmens festgelegt ist. Damit eine Programmiersprache einen Stapelrahmen verwenden kann, müssen ein Programmzähler und ein Thread mit zwei Zeigern verfügbar sein: dem Basiszeiger und dem Stapelzeiger. Der Basiszeiger zeigt immer auf die Oberseite des Rahmens, während der Stapelzeiger auf die Oberseite des Stapels zeigt. Der Programmzähler hilft beim Zeigen auf die nächste ausführbare Anweisung. Ein Stapelrahmen für eine bestimmte Prozedur enthält alle relevanten Informationen zum Speichern und Wiederherstellen des Status der spezifischen Prozedur.