Kettenladen - Chain loading
Das Laden von Ketten ist eine Methode, die von Computerprogrammen verwendet wird , um das aktuell ausgeführte Programm durch ein neues Programm zu ersetzen. Dabei wird ein gemeinsamer Datenbereich verwendet , um Informationen vom aktuellen Programm an das neue Programm zu übergeben. Es kommt in mehreren Bereichen des Rechnens vor.
Die Kettenbelastung ähnelt der Verwendung von Overlays . Im Gegensatz zu Overlays ersetzt das Laden von Ketten jedoch das aktuell ausgeführte Programm in seiner Gesamtheit. Overlays ersetzen normalerweise nur einen Teil des laufenden Programms. Wie die Verwendung von Overlays erhöht die Verwendung der Kettenbelastung die E / A- Belastung einer Anwendung.
Kettenladen in Bootmanager-Programmen
In Bootmanager- Programmen des Betriebssystems wird das Kettenladen verwendet, um die Steuerung vom Bootmanager an einen Bootsektor zu übergeben . Der Ziel-Bootsektor wird von der Festplatte geladen und ersetzt den speicherinternen Bootsektor, von dem der Bootmanager selbst gebootet und ausgeführt wurde.
Kettenladen unter Unix
Unter Unix (und unter Unix-ähnlichen Betriebssystemen) wird der Systemaufruf exec () zum Laden der Kette verwendet. Das Programmabbild des aktuellen Prozesses wird durch ein völlig neues Abbild ersetzt, und der aktuelle Thread beginnt mit der Ausführung dieses Abbilds. Die gemeinsame Datenbereich umfasst e Prozess Umgebungsvariablen , die sich über den Systemaufruf erhalten sind.
Kettenladen unter Linux
Neben der exec () Ketten Beladevorgang Ebene Linux unterstützt den kexec () Systemaufruf der gesamte Betriebssystem zu ersetzen Kernel mit einer anderen Version. Der neue Kernel startet so, als ob er beim Einschalten gestartet worden wäre und keine laufenden Prozesse erhalten bleiben.
Kettenladen in BASIC-Programmen
In BASIC- Programmen ist das Laden von Ketten der Bereich der CHAIN Anweisung (oder in Commodore BASIC die LOAD Anweisung), wodurch das aktuelle Programm beendet und das verkettete Programm geladen und aufgerufen wird (mit diesen Dialekten von BASIC) Dies unterstützt dies (ein optionaler Parameter, der die Zeilennummer angibt , ab der die Ausführung beginnen soll, und nicht die Standardeinstellung der ersten Zeile des neuen Programms). Der gemeinsame Datenbereich variiert je nach verwendetem BASIC-Dialekt. Bei BBC BASIC wird beispielsweise nur eine bestimmte Teilmenge aller Variablen in einer KETTE beibehalten. In anderen BASICs kann die COM Anweisung in Verbindung mit verwendet werden, CHAIN um anzugeben, welche Variablen als gemeinsame Daten über eine Kettenoperation hinweg beibehalten werden sollen.
Durch das Laden der Kette können BASIC-Programme mehr Programmcode ausführen, als in den verfügbaren Programm- und Variablenspeicher passen könnte. In BASIC geschriebene Anwendungen können daher über eine Reihe von kooperierenden Programmen, CHAIN die sich untereinander hin- und herbewegen, wenn sich der Programmfluss innerhalb der gesamten Anwendung bewegt , weitaus größer sein als der Arbeitsspeicher .
Kettenladen in FORTRAN-Programmen
Viele Versionen von Fortran enthalten eine CALL LINK Anweisung, die das Laden von Ketten durchführt und den Inhalt des GEMEINSAMEN Speichers beibehält . Dies ist nicht dasselbe wie das nicht verwandte LINK Unterprogramm in GNU Fortran .
Kettenladen in OS / 360
OS / 360 und Nachfolger verwenden das XCTL Makro (für "Übertragungssteuerung") zum Laden der Kette. Aufgrund der Speicherverwaltung des Betriebssystems kann dies dazu führen, dass der Code des aufrufenden Programms im Speicher ersetzt wird oder nicht.
Siehe auch
- CHAIN (CONFIG.SYS-Direktive) (Kette, die mehrere CONFIG.SYS-Dateien unter DR-DOS ausführt)
Verweise
- "Kettenladen" . GNU GRUB Handbuch .
- Orlando Lee Stevenson (Dezember 1985). "Verkettung des Commodore-Programms" . BERECHNEN! (67): 114.
- Raymond, Eric Steven. "Multiprogramming: Taxonomie von Unix-IPC-Methoden: Wrapper und Bernstein-Verkettung" . Die Kunst der Unix-Programmierung .