Kjettingbelastning - Chain loading
Chain loading er en metode som brukes av dataprogrammer for å erstatte det nåværende utførte programmet med et nytt program, ved å bruke et felles dataområde for å overføre informasjon fra det nåværende programmet til det nye programmet. Det forekommer i flere områder av databehandling.
Kjettingbelastning ligner på bruk av overlegg . I motsetning til overlegg erstatter kjedebelastning det nåværende kjøringsprogrammet i sin helhet. Overlegg erstatter vanligvis bare en del av det kjørende programmet. I likhet med bruk av overlegg øker bruken av kjedebelastning I / O- belastningen til et program.
Kjettingbelasting i boot manager-programmer
I operativsystemets boot manager- programmer brukes kjettingbelastning til å overføre kontroll fra boot manager til en boot-sektor . Målet oppstartssektoren er lastet inn fra disken , og erstatter oppstartssektoren i minnet som oppstartsadministratoren selv ble startet av og kjørt.
Kjettingbelastning i Unix
I Unix (og i Unix-lignende operativsystemer) brukes systemanropet exec () for å utføre kjettinglasting. Programbildet til den nåværende prosessen erstattes med et helt nytt bilde, og den nåværende tråden begynner å kjøre dette bildet. Den felles dataområdet innbefatter e prosessmiljøvariabler , som er bevart i systemet anropet.
Kjettingbelastning i Linux
I tillegg til den exec () på prosessnivå kjede lasting Linux støtter kexec () systemkall for å erstatte hele operativsystemet kjerne med en annen versjon. Den nye kjernen starter som om den ble startet fra oppstart og ingen kjørende prosesser er bevart.
Kjettingbelastning i BASIC-programmer
I BASIC- programmer er kjedebelastning CHAIN uttalelsen (eller, i Commodore BASIC , LOAD uttalelsen), som fører til at det nåværende programmet avsluttes og det lenke-til-programmet lastes inn og påkalles (med på disse dialektene til BASIC som støtter den, en valgfri parameter som spesifiserer linjenummeret som kjøringen skal starte fra, i stedet for standardverdien til den første linjen i det nye programmet). Det vanlige dataområdet varierer i henhold til den spesielle dialekten til BASIC som er i bruk. På BBC BASIC er for eksempel bare en spesifikk delmengde av alle variabler bevart over en KJEDE. På andre BASICs kan COM uttalelsen brukes i forbindelse med CHAIN å spesifisere hvilke variabler som skal bevares som vanlige data på tvers av en kjedeoperasjon.
Kjettingbelastning tillater BASIC-programmer å utføre mer programkode enn det som kan passe inn i tilgjengelig program og variabelt minne. Applikasjoner skrevet i BASIC kan således være langt større enn størrelsen på arbeidsminnet, via et sett med samarbeidende programmer som CHAIN frem og tilbake mellom seg når programflyten beveger seg innenfor den generelle applikasjonen.
Kjettingbelastning i FORTRAN-programmer
Mange versjoner av Fortran inkluderer en CALL LINK uttalelse som utfører kjettinglasting, og bevarer innholdet i FELLES lagring . Dette er ikke det samme som den ubeslektede LINK subrutinen i GNU Fortran .
Kjettingbelastning i OS / 360
OS / 360 og etterfølgere bruker XCTL (for "overføringskontroll") makro for kjettinglasting. På grunn av operativsystemets minnestyring kan dette resultere i eller erstatte koden til anropsprogrammet i minnet.
Se også
- KJEDE (CONFIG.SYS-direktiv) (kjede som utfører flere CONFIG.SYS-filer i DR-DOS)
Referanser
- "kjettingbelastning" . GNU GRUB manual .
- Orlando Lee Stevenson (desember 1985). "Commodore Program Chaining" . REGN! (67): 114.
- Raymond, Eric Steven. "Multiprogramming: Taxonomy of Unix IPC Methods: Wrappers and Bernstein Chaining" . Kunsten med Unix-programmering .