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

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

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

प्रकार
कंप्यूटिंग में प्रक्रिया माइग्रेशन दो प्रकार में आता है:

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

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

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

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

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

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

घटना है कि होस्ट कंप्यूटर को प्रक्रिया को सेवाएं प्रदान करनी चाहिए जो कि माइग्रेट हो जाती है, अवशिष्ट निर्भरता कहलाती है।

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

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

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

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