Migracja procesów - Process migration

W informatyce migracja procesów jest wyspecjalizowaną formą zarządzania procesami, w której procesy są przenoszone z jednego środowiska obliczeniowego do drugiego. Wywodzi się to z przetwarzania rozproszonego , ale obecnie jest stosowane szerzej. Na maszynach wielordzeniowych (wiele rdzeni na jednym lub wielu procesorach) migracja procesów odbywa się jako standardowa część planowania procesów , a migracja procesu w obrębie danej maszyny jest dość łatwa, ponieważ większość zasobów (pamięć, pliki, gniazda) nie należy zmienić, tylko kontekst wykonania (przede wszystkim licznik programu i rejestry).

Tradycyjną formą migracji procesów są klastry komputerowe, w których procesy są przenoszone z maszyny na maszynę, co jest znacznie trudniejsze, ponieważ wymaga serializacji obrazu procesu i migracji lub ponownego pozyskania zasobów na nowej maszynie. Pierwsza implementacja migracji procesów miała miejsce w projekcie operacyjnym DEMOS/MP na Uniwersytecie Kalifornijskim w Berkeley i została opisana w artykule z 1983 roku autorstwa Bartona Millera i Michaela Powella. Migracja procesów realizowana jest m.in. w OpenMosix i Sprite OS z University of California w Berkeley .

Odmiany

Migracja procesów w informatyce ma dwa rodzaje:

Niewywłaszczająca migracja procesów
Migracja procesu, która ma miejsce przed uruchomieniem procesu (tj. migracja, w której proces nie musi być wywłaszczany ). Ten rodzaj migracji procesów jest stosunkowo tani, ponieważ wiąże się ze stosunkowo niewielkimi kosztami administracyjnymi.
Prewencyjna migracja procesów
Migracja procesów, w ramach której proces jest wywłaszczany, migrowany i kontynuuje przetwarzanie w innym środowisku wykonawczym. Ten rodzaj migracji procesów jest stosunkowo kosztowny, ponieważ obejmuje rejestrację, migrację i odtwarzanie stanu procesu oraz rekonstrukcję wszelkich kanałów komunikacji międzyprocesowej , z którymi związany jest proces migracji.

Problemy

Gdy uruchomiony proces zostanie przeniesiony na inną maszynę, pojawia się kilka problemów. Niektóre z tych problemów to:

Przekierowanie we/wy: jeśli proces wykonuje operacje we/wy do plików lub urządzeń, które są powiązane z określoną maszyną, musi istnieć sposób przekierowania dostępu do tych zasobów nawet po migracji procesu. Wiąże się to z przekierowaniem strumienia danych we/wy przez sieć i ma wady dotyczące bezpieczeństwa, wydajności i niezawodności.

Komunikacja między procesami: komunikaty wysyłane do procesu o identyfikatorze procesu P na maszynie M muszą być przekierowane do nowej maszyny N i nowego identyfikatora procesu Q. Maszyna, z której proces został zmigrowany, musi prowadzić ewidencję migrowanych procesów. Jeśli wystąpi wielokrotna migracja, obciążenie wzrasta.

Pamięć współdzielona : jeśli jeden z grupy współpracujących procesów migruje i wszystkie te procesy korzystają z segmentu pamięci współdzielonej, sieć musi być użyta do emulacji dostępu do pamięci współdzielonej. Zwiększa to złożoność i znacznie spowalnia dostęp do pamięci współdzielonej dla procesów, które migrowały z komputera, na którym znajduje się pamięć współdzielona. Zjawisko, że komputer hosta musi świadczyć usługi procesowi, który został poddany migracji, nazywa się rezydualną zależnością.

Oprócz problemów wymienionych powyżej, systemy operacyjne oparte na procesach zwykle utrzymują różne tabele i stany dla uruchomionych procesów. Nie ma prostego sposobu na odzyskanie wszystkich informacji administracyjnych o procesie w prostej sekwencji operacji kopiowania. W zależności od wykonania procesu, tabele muszą być przeszukiwane, kopiowane, zmieniane i ponownie ustanawiane w systemie docelowym. Replikacja stanu procesu nie jest więc prostym zadaniem.

Odniesienie http://www.klammeraffe.org/~fritsch/uni-sb/fsinfo/Papers/migrate/node4.html

Konstrukcja układu scalonego

Alternatywna definicja migracji procesu jest używana w projektowaniu i inżynierii układów scalonych . Migracja procesu lub migracja układu w tym kontekście to przepływ projektowy mający na celu zmianę i zmniejszenie istniejącego układu układów scalonych do nowego węzła technologii procesowej. Wdrożenie migracji procesu można wykonać ręcznie, przerysowując układ według funkcji lub za pomocą automatycznych narzędzi EDA/CAD. W systemach z podziałem obciążenia proces jest migrowany z jednego węzła do drugiego za pomocą mechanizmu zwanego migracją procesów.

Pojęcie procesu nie zostało wprowadzone w tym raporcie, ponieważ procesy są dobrze znanym projektem w systemach operacyjnych. Migracja procesów odnosi się do mobilności wykonywanych (lub zawieszonych) procesów w rozproszonym środowisku obliczeniowym. Zwykle termin ten wskazuje, że proces używa sieci do migracji na inną maszynę, aby kontynuować tam swoje wykonywanie. Czasami termin ten jest używany do opisania zmiany wykonywania z jednego procesora na inny procesor w tej samej maszynie.

Bibliografia