Migracja procesów
W informatyce migracja procesów jest wyspecjalizowaną formą zarządzania procesami , w ramach której procesy są przenoszone z jednego środowiska komputerowego do drugiego. Wywodzi się to z obliczeń rozproszonych , ale obecnie jest stosowane szerzej. Na wielordzeniowych (wiele rdzeni w jednym procesorze lub wiele procesorów) migracja procesów odbywa się jako standardowa część planowania procesów i 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 (głównie licznik programu i rejestry).
Tradycyjna forma migracji procesów odbywa się w klastrach komputerowych , gdzie 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 jest realizowana m.in. w OpenMosix i Sprite OS z Uniwersytet Kalifornijski w Berkeley .
Odmiany
Migracja procesów w informatyce występuje w dwóch wersjach:
- Niewywłaszczająca migracja procesu
- Migracja procesu, która ma miejsce przed rozpoczęciem realizacji procesu (tj. migracja, w ramach 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.
- Wywłaszczająca migracja procesu
- Migracja procesu, podczas której proces jest wywłaszczany, migrowany i kontynuuje przetwarzanie w innym środowisku wykonawczym. Ten rodzaj migracji procesów jest stosunkowo kosztowny, gdyż wiąże się z rejestracją, migracją i odtworzeniem stanu procesu oraz odtworzeniem ewentualnych komunikacji międzyprocesowej, z którymi połączony jest proces migracji.
Problemy
Kiedy uruchomiony proces zostaje 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ń powiązanych z określoną maszyną, musi istnieć sposób na przekierowanie 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 wysłane do procesu o identyfikatorze procesu P na maszynie M muszą zostać przekierowane na nową maszynę N i nowy proces o identyfikatorze Q. Maszyna, z której proces migrował, musi prowadzić rejestry migrowanych procesów. Jeśli nastą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, wówczas należy zastosować sieć 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 w przypadku procesów, które migrowały z maszyny przechowującej pamięć współdzieloną. Zjawisko polegające na tym, że komputer host musi świadczyć usługi procesowi, który migrował, nazywa się zależnością resztkową.
Oprócz problemów wymienionych powyżej, systemy operacyjne oparte na procesach zwykle utrzymują różnorodne 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ą zostać przeszukane, skopiowane, zmienione i ponownie utworzone w systemie docelowym. Zatem replikacja stanu procesu nie jest zadaniem prostym.
Odniesienie http://www.klammeraffe.org/~fritsch/uni-sb/fsinfo/Papers/migrate/node4.html
Projekt układu scalonego
i inżynierii układów scalonych stosowana jest alternatywna definicja migracji procesów . Migracja procesu lub migracja układu w tym kontekście to proces projektowy mający na celu zmianę i zmniejszenie istniejącego układu układu scalonego 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.
W tym raporcie nie wprowadzono pojęcia procesu, ponieważ procesy są dobrze znaną konstrukcją w systemach operacyjnych. Migracja procesów odnosi się do mobilności wykonywanych (lub zawieszonych) procesów w rozproszonym środowisku komputerowym. Zwykle termin ten wskazuje, że proces korzysta z sieci w celu migracji na inną maszynę, aby kontynuować tam swoje działanie. Czasami termin ten jest używany do opisania zmiany wykonania z jednego procesora na inny procesor w tej samej maszynie.