प्रक्रिया प्रवासन

कंप्यूटिंग में, प्रोसेस माइग्रेशन, प्रक्रिया प्रबंधन (कंप्यूटिंग) का एक विशेष रूप है, जिसके द्वारा प्रक्रिया (कंप्यूटिंग) को एक कंप्यूटिंग वातावरण से दूसरे वातावरण में ले जाया जाता है। यह वितरित कंप्यूटिंग में उत्पन्न हुआ, लेकिन अब इसका अधिक व्यापक रूप से उपयोग किया जाता है। मल्टीकोर मशीनों पर (एक प्रोसेसर या एकाधिक प्रोसेसर पर एकाधिक कोर) प्रक्रिया माइग्रेशन प्रक्रिया शेड्यूलिंग के मानक हिस्से के रूप में होता है, और किसी दिए गए मशीन के भीतर प्रक्रिया को माइग्रेट करना काफी आसान होता है, क्योंकि अधिकांश संसाधन (मेमोरी, फाइल, सॉकेट) नहीं होते हैं बदलने की जरूरत है, केवल निष्पादन संदर्भ (मुख्य रूप से कार्यक्रम गणक और रजिस्टर)।

प्रक्रिया माइग्रेशन का पारंपरिक रूप कंप्यूटर क्लस्टर में होता है जहां प्रक्रियाओं को मशीन से मशीन में स्थानांतरित किया जाता है, जो कि काफी कठिन है, क्योंकि इसमें प्रक्रिया छवि को क्रमबद्ध करने और नई मशीन पर संसाधनों को माइग्रेट करने या पुनः प्राप्त करने की आवश्यकता होती है। प्रक्रिया प्रवासन का पहला कार्यान्वयन कैलिफोर्निया विश्वविद्यालय, बर्कले में डेमोस/एमपी ऑपरेटिंग प्रोजेक्ट में था और बार्टन मिलर और माइकल पॉवेल द्वारा 1983 के पेपर में इसका वर्णन किया गया था। प्रोसेस माइग्रेशन, दूसरों के बीच, कैलिफोर्निया विश्वविद्यालय, बर्कले से OpenMosix और स्प्राइट (ऑपरेटिंग सिस्टम) OS में लागू किया गया है।

किस्में
कंप्यूटिंग में प्रोसेस माइग्रेशन दो स्वादों में आता है: नॉन-प्रीमेप्टिव प्रोसेस माइग्रेशन: प्रोसेस माइग्रेशन जो प्रोसेस के एक्जीक्यूशन से पहले होता है (यानी माइग्रेशन जिससे प्रोसेस को प्रीमेशन (कंप्यूटिंग) नहीं होना चाहिए)। इस प्रकार की प्रक्रिया प्रवास अपेक्षाकृत सस्ता है, क्योंकि अपेक्षाकृत कम प्रशासनिक ओवरहेड शामिल है। प्रिमेप्टिव प्रोसेस माइग्रेशन: प्रोसेस माइग्रेशन जिससे एक प्रोसेस को प्रीमेप्ट किया जाता है, माइग्रेट किया जाता है और एक अलग निष्पादन वातावरण में प्रोसेसिंग जारी रहती है। इस प्रकार का प्रोसेस माइग्रेशन अपेक्षाकृत महंगा होता है, क्योंकि इसमें प्रोसेस स्टेट की रिकॉर्डिंग, माइग्रेशन और रीक्रिएशन के साथ-साथ किसी भी अंतःप्रक्रम संचार चैनल्स का पुनर्निर्माण शामिल होता है, जिससे माइग्रेटिंग प्रोसेस जुड़ा होता है।

समस्याएं
कई समस्याएं तब होती हैं जब एक रनिंग प्रोसेस दूसरी मशीन में चली जाती है। इनमें से कुछ समस्याएं हैं:

आई/ओ पुनर्निर्देशन: यदि कोई प्रक्रिया उन फ़ाइलों या उपकरणों के लिए I/O करती है जो एक निश्चित मशीन से जुड़ी हैं, तो प्रक्रिया के माइग्रेट होने के बाद भी इन संसाधनों तक पहुंच को पुनर्निर्देशित करने का एक तरीका होना चाहिए। इसमें नेटवर्क पर I/O डेटा स्ट्रीम का पुनर्निर्देशन शामिल है और सुरक्षा, प्रदर्शन और विश्वसनीयता से संबंधित नुकसान हैं।

अंतःप्रक्रम संचार: मशीन M पर प्रक्रिया ID P के साथ एक प्रक्रिया को भेजे गए संदेशों को नई मशीन N और नई प्रक्रिया ID Q पर पुनर्निर्देशित किया जाना है। जिस मशीन से प्रक्रिया को माइग्रेट किया गया है, उसे माइग्रेट प्रक्रियाओं के रिकॉर्ड रखने की आवश्यकता है। यदि एकाधिक प्रवास होता है, तो ओवरहेड बढ़ जाता है।

शारेड मेमोरी: यदि सहयोगी प्रक्रियाओं के समूह में से एक दूर चला जाता है और ये सभी प्रक्रियाएं एक साझा स्मृति खंड का उपयोग करती हैं, तो नेटवर्क का उपयोग साझा स्मृति पहुंच का अनुकरण करने के लिए किया जाना चाहिए। यह जटिलता जोड़ता है और साझा मेमोरी को धारण करने वाली मशीन से माइग्रेट होने वाली प्रक्रियाओं के लिए नाटकीय रूप से साझा मेमोरी तक पहुंच को धीमा कर देता है। घटना है कि एक होस्ट कंप्यूटर को एक प्रक्रिया को सेवाएं प्रदान करनी चाहिए जो कि माइग्रेट हो जाती है, अवशिष्ट निर्भरता कहलाती है।

ऊपर बताई गई समस्याओं के अलावा, प्रक्रिया आधारित ऑपरेटिंग सिस्टम आमतौर पर प्रक्रियाओं को चलाने के लिए विभिन्न प्रकार की तालिकाएँ और अवस्थाएँ बनाए रखते हैं। प्रतिलिपि संचालन के एक सरल अनुक्रम में प्रक्रिया के बारे में सभी प्रशासनिक जानकारी पुनर्प्राप्त करने का कोई आसान तरीका नहीं है। प्रक्रिया के निष्पादन के आधार पर, गंतव्य सिस्टम पर तालिकाओं को खोजा, कॉपी, परिवर्तित और पुन: स्थापित करने की आवश्यकता है। इस प्रकार, प्रक्रिया राज्य प्रतिकृति कोई सरल कार्य नहीं है।

संदर्भ http://www.klammeraffe.org/~fritsch/uni-sb/fsinfo/Papers/migrate/node4.html

एकीकृत सर्किट डिजाइन
इंटीग्रेटेड सर्किट डिजाइन और अभियांत्रिकी में प्रोसेस माइग्रेशन की एक वैकल्पिक परिभाषा का उपयोग किया जाता है। इस संदर्भ में प्रोसेस माइग्रेशन या लेआउट माइग्रेशन एक मौजूदा आईसी लेआउट को एक नई प्रक्रिया प्रौद्योगिकी नोड में बदलने और सिकोड़ने के लिए एक डिज़ाइन प्रवाह है। एक प्रक्रिया माइग्रेशन का कार्यान्वयन मैन्युअल रूप से लेआउट फीचर को फीचर द्वारा या स्वचालित इलेक्ट्रॉनिक डिजाइन स्वचालन/कंप्यूटर एडेड डिजाइन टूल्स द्वारा किया जा सकता है। लोड शेयरिंग सिस्टम में, प्रक्रिया माइग्रेशन नामक तंत्र का उपयोग करके एक प्रक्रिया को एक नोड से दूसरे में माइग्रेट किया जाता है।

इस रिपोर्ट में एक प्रक्रिया की अवधारणा पेश नहीं की गई है क्योंकि प्रक्रियाएं ऑपरेटिंग सिस्टम में एक प्रसिद्ध डिजाइन हैं। प्रोसेस माइग्रेशन एक वितरित कंप्यूटिंग वातावरण में निष्पादन (या निलंबित) प्रक्रियाओं की गतिशीलता को संदर्भित करता है। आम तौर पर, यह शब्द इंगित करता है कि एक प्रक्रिया वहां अपने निष्पादन को जारी रखने के लिए किसी अन्य मशीन पर माइग्रेट करने के लिए नेटवर्क का उपयोग करती है। कभी-कभी शब्द का प्रयोग एक ही मशीन के भीतर एक प्रोसेसर से दूसरे प्रोसेसर में निष्पादन में परिवर्तन का वर्णन करने के लिए किया जाता है।