Migrarea procesului - Process migration
În calcul, migrarea proceselor este o formă specializată de gestionare a proceselor prin care procesele sunt mutate dintr-un mediu de calcul în altul. Acest lucru a luat naștere în calculul distribuit , dar acum este utilizat pe scară mai largă. Pe multicore mașini (mai multe nuclee pe un singur procesor sau mai multe procesoare) migrația de proces se întâmplă ca o parte standard a procesului de planificare , și este destul de ușor de a migra un proces într - o anumită mașină, deoarece cele mai multe resurse (memorie, fișiere, prize de curent) nu trebuie modificate, doar contextul de execuție (în primul rând contor de programe și registre).
Forma tradițională de migrare a proceselor se află în clustere de computere în care procesele sunt mutate de la mașină la mașină, ceea ce este semnificativ mai dificil, deoarece necesită serializarea imaginii procesului și migrarea sau reabilitarea resurselor la noua mașină. Prima implementare a migrării proceselor a fost în proiectul de operare DEMOS / MP de la Universitatea din California, Berkeley și a fost descrisă într-o lucrare din 1983 de Barton Miller și Michael Powell. Migrarea proceselor este implementată, printre altele, în OpenMosix și Sprite OS de la Universitatea din California, Berkeley .
Soiuri
Migrarea proceselor în calcul vine în două variante:
- Migrarea non-preventivă a procesului
- Migrarea procesului care are loc înainte de începerea execuției procesului (adică migrarea prin care un proces nu trebuie să fie prevenit ). Acest tip de migrație de proces este relativ ieftin, deoarece este implicat un cost administrativ relativ mic.
- Migrarea procesului preventiv
- Migrarea procesului prin care un proces este prevenit, migrat și continuă procesarea într-un mediu de execuție diferit. Acest tip de migrare a procesului este relativ costisitor, deoarece implică înregistrarea, migrarea și recreerea stării procesului, precum și reconstrucția oricăror canale de comunicare inter-proces la care este conectat procesul de migrare.
Probleme
Mai multe probleme apar atunci când un proces de rulare se mută pe o altă mașină. Unele dintre aceste probleme sunt:
Redirecționare I / O: dacă un proces face I / O către fișiere sau dispozitive care sunt legate de o anumită mașină, trebuie să existe o modalitate de a redirecționa accesul la aceste resurse chiar și după migrarea procesului. Aceasta implică redirecționarea fluxului de date I / O prin rețea și are dezavantaje în ceea ce privește securitatea, performanța și fiabilitatea.
Comunicare între procese: mesajele trimise către un proces cu ID-ul procesului P pe o mașină M trebuie redirecționate către noua mașină N și noul ID de proces Q. Mașina pe care procesul a migrat-o trebuie să țină evidența proceselor migrate. Dacă are loc o migrare multiplă, cheltuielile generale cresc.
Memorie partajată : dacă unul dintre grupurile de procese care cooperează migrează și toate aceste procese utilizează un segment de memorie partajată, atunci rețeaua trebuie utilizată pentru a emula accesul la memoria partajată. Acest lucru adaugă complexitate și încetinește dramatic accesul la memoria partajată pentru procesele care au migrat departe de aparatul care deține memoria partajată. Fenomenele pe care un computer gazdă trebuie să le ofere servicii unui proces care a migrat departe se numește Dependență reziduală.
În plus față de problemele menționate mai sus, sistemele de operare bazate pe proces mențin, de obicei, o varietate de tabele și stări pentru procesele care rulează. Nu există o modalitate simplă de a prelua toate informațiile administrative despre un proces într-o succesiune simplă de operații de copiere. În funcție de execuția procesului, tabelele trebuie căutate, copiate, modificate și restabilite pe sistemul de destinație. Astfel, replicarea stării procesului nu este o sarcină simplă.
Referință http://www.klammeraffe.org/~fritsch/uni-sb/fsinfo/Papers/migrate/node4.html
Proiectare circuit integrat
O definiție alternativă a migrării procesului este utilizată în proiectarea și ingineria circuitelor integrate . Migrarea procesului sau migrarea aspectului în acest context este un flux de proiectare pentru a schimba și micșora un aspect IC existent la un nou nod tehnologic de proces. Implementarea unei migrații de proces se poate face manual prin redesenarea caracteristicii de aspect după caracteristică sau prin instrumente automate EDA / CAD. În sistemele de partajare a încărcăturii, un proces este migrat de la un nod la altul utilizând un mecanism numit migrare de proces.
Conceptul de proces nu este introdus în acest raport, deoarece procesele sunt un design bine cunoscut în sistemele de operare. Migrarea proceselor se referă la mobilitatea proceselor de executare (sau suspendate) într-un mediu de calcul distribuit. De obicei, acest termen indică faptul că un proces folosește o rețea pentru a migra către o altă mașină pentru a-și continua execuția acolo. Uneori, termenul este folosit pentru a descrie schimbarea în execuție de la un procesor la alt procesor din aceeași mașină.