Ładowanie łańcuchowe - Chain loading
Ładowanie łańcuchowe to metoda używana przez programy komputerowe w celu zastąpienia aktualnie wykonywanego programu nowym programem, przy użyciu wspólnego obszaru danych do przekazywania informacji z bieżącego programu do nowego programu. Występuje w kilku obszarach informatyki.
Ładowanie łańcuchowe jest podobne do stosowania nakładek . Jednak w przeciwieństwie do nakładek, ładowanie łańcuchowe zastępuje w całości aktualnie wykonywany program. Nakładki zwykle zastępują tylko część uruchomionego programu. Podobnie jak w przypadku nakładek, użycie obciążenia łańcuchowego zwiększa obciążenie we / wy aplikacji.
Ładowanie łańcuchowe w programach typu boot manager
W programach menedżera rozruchu systemu operacyjnego ładowanie łańcuchowe służy do przekazywania kontroli z menedżera rozruchu do sektora rozruchowego . Docelowy sektor rozruchowy jest ładowany z dysku , zastępując sektor rozruchowy w pamięci, z którego został załadowany sam menedżer rozruchu i wykonywany.
Ładowanie łańcuchowe w systemie Unix
W Uniksie (i systemach operacyjnych typu Unix ) wywołanie systemowe exec () jest używane do ładowania łańcuchowego. Obraz programu bieżącego procesu jest zastępowany całkowicie nowym obrazem, a bieżący wątek rozpoczyna wykonywanie tego obrazu. Wspólny obszar danych obejmuje zmienne środowiskowe procesu , które są zachowywane w wywołaniu systemowym.
Ładowanie łańcuchowe w systemie Linux
Oprócz ładowania łańcuchowego na poziomie procesu exec () , Linux obsługuje wywołanie systemowe kexec () w celu zastąpienia całego jądra systemu operacyjnego inną wersją. Nowe jądro uruchamia się tak, jakby było uruchamiane po włączeniu zasilania i żadne działające procesy nie są zachowywane.
Ładowanie łańcuchowe w programach BASIC
W programach w języku BASIC ładowanie łańcuchowe jest celem CHAIN instrukcji (lub, w Commodore BASIC , LOAD instrukcji), która powoduje zakończenie bieżącego programu oraz załadowanie i wywołanie programu połączonego łańcuchowo (w tych dialektach języka BASIC obsługują go, opcjonalny parametr określający numer linii, od której ma się rozpocząć wykonywanie, zamiast domyślnej pierwszej linii nowego programu). Wspólny obszar danych różni się w zależności od używanego dialektu języka BASIC. Na przykład w BBC BASIC tylko określony podzbiór wszystkich zmiennych jest zachowywany w ŁAŃCUCHU. W innych językach BASIC COM instrukcja ta może być używana w połączeniu z, CHAIN aby określić, które zmienne mają być zachowane jako wspólne dane w ramach operacji łańcuchowej.
Ładowanie łańcuchowe pozwala programom BASIC-a wykonywać więcej kodu programu niż mieści się w dostępnej pamięci programu i zmiennych. Aplikacje napisane w języku BASIC mogłyby zatem być znacznie większe niż rozmiar pamięci roboczej, dzięki zestawowi współpracujących programów, które CHAIN poruszają się między sobą w miarę przesuwania się przepływu programu w ramach całej aplikacji.
Ładowanie łańcuchowe w programach FORTRAN
Wiele wersji Fortrana zawiera CALL LINK instrukcję, która wykonuje ładowanie łańcuchowe, zachowując zawartość pamięci COMMON . To nie to samo, co niepowiązany LINK podprogram w GNU Fortran .
Ładowanie łańcuchowe w OS / 360
OS / 360 i jego następcy używają XCTL makra (do „kontroli transferu”) do ładowania łańcucha. Ze względu na zarządzanie pamięcią systemu operacyjnego może to, ale nie musi, spowodować zastąpienie kodu programu wywołującego w pamięci.
Zobacz też
- CHAIN (dyrektywa CONFIG.SYS) (łańcuch wykonujący wiele plików CONFIG.SYS w DR-DOS)
Bibliografia
- „ładowanie łańcuchowe” . Podręcznik GNU GRUB .
- Orlando Lee Stevenson (grudzień 1985). „Łączenie programów Commodore” . OBLICZAĆ! (67): 114.
- Raymond, Eric Steven. „Multiprogramming: Taxonomy of Unix IPC Methods: Wrappers and Bernstein Chaining” . Sztuka programowania w Uniksie .