Definition

Laufzeit (Runtime)

Was ist Laufzeit (Runtime)?

Als Laufzeit wird die Dauer bezeichnet, die ein Programm zur Abarbeitung einer Aufgabe benötigt.

Außerdem ist die Laufzeit der Zeitpunkt, an dem ein Programm läuft. Das heißt, wenn Sie ein Programm auf einem Computer starten, beginnt die Laufzeit bis zur Beendigung dieses Programms. In einigen Programmiersprachen werden bestimmte wiederverwendbare Programme oder Routinen erstellt und als Laufzeitbibliothek verpackt. Diese Routinen können mit jedem Programm verknüpft und von diesem verwendet werden, wenn es läuft.

Programmierer unterscheiden manchmal zwischen dem, was in ein Programm eingebettet wird, wenn es kompliziert wird, und dem, was eingebettet oder zur Laufzeit verwendet wird. Ersteres wird manchmal als Kompilierzeit bezeichnet.

Funktionsweise der Laufzeit

Die Laufzeit ist eine Phase im Lebenszyklus der Programmierung. Es ist die Zeit, in der ein Programm zusammen mit allen externen Anweisungen läuft, die für eine ordnungsgemäße Ausführung erforderlich sind. Einige dieser externen Anweisungen werden als Laufzeitsysteme oder Laufzeitumgebungen bezeichnet und sind integraler Bestandteil der Programmiersprache.

Ein Laufzeitsystem bildet eine Schicht über dem Betriebssystem (Operating System, OS), die andere Programme enthält, welche Aufgaben übernehmen, die für die Ausführung des Hauptprogramms erforderlich sind. Diese anderen Programme übernehmen Aufgaben wie die Zuweisung von Speicherplatz für das Hauptprogramm und dessen Zeitplanung.

Wenn sich eine Anwendung in der Laufzeitphase befindet, wird die ausführbare Datei des Programms in den Arbeitsspeicher geladen, zusammen mit allen Dateien, auf die das Programm verweist. Dazu kann auch Code gehören, den der Benutzer nicht geschrieben hat, der aber im Hintergrund arbeitet, um das Programm zum Laufen zu bringen. Dieser Code wird an den Prozessor des Computers gesendet, um in Maschinencode umgewandelt zu werden. Dieser sorgt dafür, dass die Hardware das Programm ausführt.

Der Lebenszyklus der Programmierung
Abbildung 1: Die letzte Phase des Programmierungslebenszyklus ist die Laufzeit. Hier führt die Maschine den Programmcode aus.

Hier ist ein einfaches Beispiel für ein Laufzeitsystem, das in der Programmiersprache BASIC (Beginner’s All-purpose Symbolic Instruction Code) geschrieben wurde:

] 10 PRINT „HALLO“
] 20 GOTO 10

Das obige Beispiel ist Quellcode. BASIC ist eine interpretative Programmiersprache, das heißt die Anweisungen können ausgeführt werden, ohne dass der Code vorher in eine Laufzeitversion kompiliert werden muss. Um das Programm auszuführen und das Wort Hallo zu drucken, würde der Programmierer einen weiteren BASIC-Befehl einzufügen.

] RUN

Das ist das Laufzeitsystem. Es ist ein eigenes Programm, das eine Schicht zwischen dem Betriebssystem des Benutzers und dem Quellcode bildet. Es schafft die Laufzeitumgebung, die notwendig ist, damit der Quellcode mit dem Betriebssystem interagieren kann. Diese Schicht teilt dem Computer mit, wie der Quellcode zu analysieren und auszuführen ist, und sie sendet Anfragen an das Betriebssystem.

Was ist ein Laufzeitfehler?

Viele Benutzer begegnen dem Begriff Laufzeit zunächst im Zusammenhang mit einem Laufzeitfehler. Damit ist ein Problem mit dem Programm gemeint, das die Ausführung zur Laufzeit aufgrund von beschädigten, fehlenden oder inkompatiblen Komponenten verhindert.

Laufzeitfehler können aus vielen Gründen auftreten. Beispiele für Laufzeitfehler sind:

  • unzureichende Systemressourcen: Ein Mangel an verfügbaren Systemressourcen kann einen Laufzeitfehler verursachen. Wenn zum Beispiel nicht genügend Speicher für die Ausführung eines Programms vorhanden ist, kann die Laufzeitumgebung ihre Aufgabe nicht erfüllen. Das Programm bricht dann wahrscheinlich ab und gibt eine Fehlermeldung aus.
  • Kodierungsfehler: Ein Fehler in der Software kann einen Laufzeitfehler verursachen.
  • unterbrochene Abhängigkeit: Wenn eine Verbindung zu einer anderen Anwendung, die das Programm zur Ausführung benötigt, unterbrochen wird, kann ein Fehler auftreten.

Eine Laufzeitumgebung zeigt in der Regel eine Meldung an, die den Grund für den Absturz oder die Stelle im Programm angibt, an der die Fehler aufgetreten ist. Programmierer müssen unter Umständen die Software entweder manuell oder mit Unterstützung von Debugging Tools untersuchen, um die Ursache eines Laufzeitfehlers zu finden.

Laufzeitterminologie: Unterschiede

Der Begriff Laufzeit hat in der Informatik viele Bedeutungen. Er kann sich auf den Zustand eines Programms, eine bestimmte Art von Programm oder den Zeitpunkt, zu dem ein Programm läuft, beziehen.

Die Hauptverwendung des Begriffs Laufzeit ist die Beschreibung der Laufzeitumgebung – des Codes, der das Funktionieren eines Programms ermöglicht. Der Begriff wird jedoch auch in anderen Bereichen der Programmierung verwendet:

  • Es wird als Substantiv verwendet, um die letzte Phase des Lebenszyklus eines Programms zu bezeichnen, wenn das Programm ausgeführt wird (wie oben beschrieben).
  • Als zwei Wörter geschrieben, bezieht sich Laufzeit darauf, wie lange die Ausführung eines Programms dauert.
  • Es kann als Adjektiv verwendet werden, um Prozesse zu beschreiben, die während dieser Phase des Programmlebenszyklus stattfinden. Beispiele hierfür sind die Begriffe Laufzeitfehler und Laufzeitmetriken.
  • Er wird auch zur Beschreibung anderer Programme verwendet, einschließlich Laufzeitumgebung, Laufzeitsystem und Laufzeitbibliothek, die die Ausführung des Hauptprogramms ermöglichen. Alle diese Programmkomponenten zusammengenommen können als Laufzeit bezeichnet werden.

Das Laufzeitsystem

Ein Laufzeitsystem ist eine Software, die mit Programmiersprachen als Teil des Ausführungsmodells geliefert wird. Es bildet die oben beschriebene Schicht, die über dem Betriebssystem liegt und andere Programme enthält, die bei der Ausführung des Hauptprogramms helfen.

Wo das Laufzeitsystem seinen Platz hat
Abbildung 2: Durch das Laufzeitsystem kann der Quellcode mit dem Betriebssystem interagieren und erhält so die notwendigen Ressourcen.

Der Begriff Laufzeitsystem wird oft synonym mit dem Begriff Lautzeitumgebung verwendet. Laufzeitsysteme und Laufzeitumgebungen fungieren als kleine Betriebssysteme, die alle für die Ausführung eines Programms erforderlichen Funktionen bereitstellen.

Die Laufzeitumgebung

Die Laufzeitumgebung wird im weiteren Sinne als die Umgebung definiert, in der das Programm ausgeführt wird. Zu einer Laufzeitumgebung gehören das Betriebssystem, die Hardware und der Speicher. Laufzeitumgebungen werden im Gegensatz zur Anwendungsentwicklung häufiger im IT-Betrieb eingesetzt.

Die Laufzeitbibliothek

Eine Laufzeitbibliothek ist ein Satz von plattform- und Compiler-spezifischen Low-Level-Routinen, die der Compiler verwendet, um Anweisungen an die Laufzeitumgebung zu senden, damit das Programm ausgeführt werden kann.

Beispiele für Laufzeitsysteme und -umgebungen

Laufzeitumgebungen führen Aufgaben auf niedriger Ebene aus, zum Beispiel parallele Ausführung, Festplatten-Eingabe/-Ausgabe, Aufgabenplanung, Garbage Collection oder Ressourcenverwaltung. Sie können auch High-Level-Befehle implementieren, wie zum Beispiel Typüberprüfung, Debugging und Codeoptimierung.

Zwei Beispiele für Laufzeitumgebungen sind:

1. Die Java-Laufzeitumgebung (Java Runtime Environment, JRE) wird benötigt, um Java-Programme auszuführen, so dass Java auf mehreren Betriebssystemen funktionieren kann. JRE führt die grundlegenden Aufgaben aus, die Java zur Ausführung von Code benötigt, wie das Laden von Klassenbibliotheken, die Überprüfung des Speicherzugriffs und das Abrufen von Systemressourcen.

2. Common Language Runtime (CLR) ist die Laufzeitumgebung des .NET-Framework von Microsoft. Es handelt sich dabei um eine virtuelle Maschine, die Code für verschiedene High-Level-Dienste ausführt und verwaltet, zum Beispiel die Handhabung des Objektlayouts und die Verwaltung von Verweisen auf Objekte. Außerdem verfügt sie über einen Garbage Collector, der Speicherlecks und andere Programmierfehler verwaltet. Wie andere Laufzeitumgebungen kompiliert die CLR einige sprachspezifische Zwischenstufen in Maschinencode, den das Betriebssystem lesen kann.

Diese Definition wurde zuletzt im September 2024 aktualisiert

Erfahren Sie mehr über Serverbetriebssysteme