Kedjebelastning
Kedjeladdning är en metod som används av datorprogram för att ersätta det program som körs för närvarande med ett nytt program, genom att använda ett gemensamt dataområde för att skicka information från det aktuella programmet till det nya programmet. Det förekommer inom flera områden av datoranvändning.
Kedjebelastning liknar användningen av överlägg . Till skillnad från överlägg ersätter dock kedjebelastning det program som körs för närvarande i sin helhet. Överlägg ersätter vanligtvis bara en del av det pågående programmet. Liksom användningen av överlägg ökar användningen av kedjebelastning I/O- belastningen för en applikation.
Kedjeladdning i boot manager-program
I operativsystems boot manager- program används kedjeladdning för att överföra kontrollen från starthanteraren till en startsektor . Målstartsektorn laddas in från disk , och ersätter startsektorn i minnet från vilken själva starthanteraren bootstrappades och kördes.
Kedjeladdning i Unix
I Unix (och i Unix-liknande operativsystem) används exec()- systemanropet för att utföra kedjeladdning. Programbilden för den aktuella processen ersätts med en helt ny bild, och den aktuella tråden börjar köra den bilden. Det gemensamma dataområdet omfattar processens miljövariabler , som bevaras över systemanropet.
Kedjeladdning i Linux
Utöver exec() processnivå kedjeladdning stöder Linux systemanropet kexec () för att ersätta hela operativsystemets kärna med en annan version. Den nya kärnan startar som om den startades från start och inga pågående processer bevaras.
Kedjebelastning i BASIC-program
I BASIC- program är kedjeladdning tillämpningsområdet för CHAIN-
satsen (eller, i Commodore BASIC , LOAD -
satsen), som gör att det aktuella programmet avslutas och det kedjade till-programmet laddas och anropas (med, på dessa dialekter av BASIC som stöder det, en valfri parameter som anger radnumret från vilket exekveringen ska börja, snarare än standardvärdet för den första raden i det nya programmet). Det gemensamma dataområdet varierar beroende på vilken dialekt av BASIC som används. På BBC BASIC , till exempel, är endast en specifik delmängd av alla variabler bevarade över en KEDJA. På andra BASICs COM-
satsen användas tillsammans med CHAIN
för att specificera vilka variabler som ska bevaras som gemensamma data över en kedjeoperation.
Kedjeladdning tillåter BASIC-program att exekvera mer programkod än vad som kan passa in i tillgängligt program- och variabelminne. Applikationer skrivna i BASIC kan alltså vara mycket större än storleken på arbetsminnet, via en uppsättning samverkande program som KEDJAR
fram och tillbaka sinsemellan när programflödet rör sig inom den övergripande applikationen.
Kedjebelastning i FORTRAN-program
Många versioner av Fortran inkluderar en CALL CHAIN-
eller CALL LINK
-sats som utför kedjeladdning och bevarar innehållet i COMMON-lagring . Detta är inte samma sak som den orelaterade LINK-
subrutinen i GNU Fortran .
Kedjeladdning i OS/360
OS/360 och efterföljare använder makrot XCTL
(för "överföringskontroll") för kedjebelastning. På grund av operativsystemets minneshantering kan detta leda till att koden för det anropande programmet i minnet byts ut eller inte.
Se även
- CHAIN (CONFIG.SYS-direktivet) (kedja som kör flera CONFIG.SYS-filer i DR-DOS)
- "kedjeladdning" . GNU GRUB manual .
- Orlando Lee Stevenson (december 1985). "Commodore Program Chaining" . Beräkna! (67): 114.
- Raymond, Eric Steven. "Multiprogrammering: Taxonomy of Unix IPC Methods: Wrappers and Bernstein Chaining" . Konsten att programmera Unix .