प्रोसेस और थ्रेड प्रबंधन
प्रोसेस और थ्रेड प्रबंधन वह तरीका है जिससे ऑपरेटिंग सिस्टम निष्पादन की इकाइयों — प्रक्रियाओं को उनके अपने एड्रेस स्पेस के साथ और थ्रेड्स को जो एक साझा करते हैं — बनाता है, शेड्यूल करता है और समाप्त करता है, और उनके बीच प्रोसेसर को स्विच करता है।
Definition
प्रोसेस और थ्रेड प्रबंधन में ऑपरेटिंग-सिस्टम तंत्र शामिल हैं जो चल रहे प्रोग्रामों को प्रक्रियाओं और थ्रेड्स के रूप में दर्शाते हैं, उनकी निष्पादन स्थिति बनाए रखते हैं, उन्हें बनाते और समाप्त करते हैं, और उनके संदर्भों को संरक्षित और पुनर्स्थापित करते हुए उनके बीच प्रोसेसर को स्विच करते हैं।
Scope
यह विषय प्रोसेस एब्स्ट्रैक्शन और उसके जीवनचक्र, प्रोसेस कंट्रोल ब्लॉक, प्रोसेस निर्माण और समाप्ति, थ्रेड्स और मल्टीथ्रेडिंग मॉडल, कॉन्टेक्स्ट स्विचिंग और इंटर-प्रोसेस कम्युनिकेशन को कवर करता है। इसमें यह नीति शामिल नहीं है कि अगला कौन सा तैयार कार्य चलेगा (सीपीयू शेड्यूलिंग) और साझा डेटा का समन्वय (समवर्तीता, जिसे सामान्यतः ऑपरेटिंग सिस्टम के तहत माना जाता है), बल्कि यह निष्पादन का प्रतिनिधित्व करने और प्रबंधित करने वाली संरचनाओं पर केंद्रित है।
Core questions
- ऑपरेटिंग सिस्टम को प्रत्येक प्रोसेस और थ्रेड के लिए कौन सी स्थिति बनाए रखनी चाहिए?
- प्रोसेस कैसे बनाए जाते हैं, और थ्रेड्स प्रोसेसेस से कैसे भिन्न होते हैं?
- कॉन्टेक्स्ट स्विच के दौरान क्या होता है, और इसकी लागत क्या है?
- प्रोसेस एड्रेस स्पेस में कैसे संवाद और समन्वय करते हैं?
Key concepts
- प्रोसेस और प्रोसेस कंट्रोल ब्लॉक
- प्रोसेस अवस्थाएँ और जीवनचक्र
- थ्रेड और मल्टीथ्रेडिंग
- यूजर-लेवल बनाम कर्नेल-लेवल थ्रेड्स
- कॉन्टेक्स्ट स्विच
- फोर्क और एक्सेक
- इंटर-प्रोसेस कम्युनिकेशन
- प्रोसेस आइसोलेशन
Key theories
- प्रोसेस एब्स्ट्रैक्शन
- ऑपरेटिंग सिस्टम प्रत्येक चल रहे प्रोग्राम को उसके अपने एड्रेस स्पेस और प्रोसेस कंट्रोल ब्लॉक में संग्रहीत निष्पादन संदर्भ के साथ एक प्रोसेस के रूप में दर्शाता है, जो आइसोलेशन, शेड्यूलिंग और प्रोसेसर के नियंत्रित साझाकरण को सक्षम बनाता है।
Mechanisms
प्रत्येक प्रोसेस को एक प्रोसेस कंट्रोल ब्लॉक द्वारा वर्णित किया जाता है जिसमें उसके रजिस्टर, मेमोरी मैपिंग, खुली फाइलें और शेड्यूलिंग स्थिति होती है। सिस्टम प्रोसेसेस बनाता है (उदाहरण के लिए फोर्क और एक्सेक के माध्यम से), उन्हें विभिन्न अवस्थाओं (नया, तैयार, चल रहा, प्रतीक्षा कर रहा, समाप्त) से गुजारता है, और एक संदर्भ को सहेजकर और दूसरे को पुनर्स्थापित करके उनके बीच स्विच करता है। थ्रेड्स अपने प्रोसेस के एड्रेस स्पेस को साझा करते हैं, जिससे स्विचिंग सस्ती हो जाती है लेकिन सिंक्रनाइज़ेशन की आवश्यकता होती है; इंटर-प्रोसेस कम्युनिकेशन पाइप, संदेशों या साझा मेमोरी का उपयोग करता है।
Clinical relevance
प्रोसेस और थ्रेड प्रबंधन हर आधुनिक सिस्टम पर मल्टीटास्किंग का आधार है। प्रोसेस आइसोलेशन सुरक्षा और स्थिरता का एक आधारशिला है, थ्रेड्स उत्तरदायी और समानांतर अनुप्रयोगों को सक्षम करते हैं, और कॉन्टेक्स्ट स्विचिंग और इंटर-प्रोसेस कम्युनिकेशन की लागत सर्वर, रनटाइम और समवर्ती सॉफ्टवेयर के डिजाइन को आकार देती है।
History
प्रोसेस की अवधारणा 1960 के दशक में मल्टीप्रोग्रामिंग और टाइम-शेयरिंग सिस्टम के साथ परिपक्व हुई, और UNIX ने फोर्क/एक्सेक मॉडल और प्रोसेस एब्स्ट्रैक्शन को स्थापित किया जो आज व्यापक रूप से उपयोग किया जाता है। मल्टीप्रोसेसरों का लाभ उठाने और प्रतिक्रियाशीलता में सुधार के लिए थ्रेड्स जोड़े गए, जिसमें POSIX थ्रेड्स जैसे मानकों ने उपयोगकर्ता-दृश्यमान थ्रेडिंग को औपचारिक रूप दिया।
Debates
- यूजर-लेवल बनाम कर्नेल-लेवल थ्रेड्स
- यूजर-लेवल थ्रेड्स को प्रबंधित करना सस्ता होता है लेकिन उन्हें कोर में स्वतंत्र रूप से शेड्यूल नहीं किया जा सकता है और एक ब्लॉकिंग कॉल पर पूरी प्रोसेस को ब्लॉक कर देते हैं, जबकि कर्नेल-लेवल थ्रेड्स उच्च ओवरहेड पर शेड्यूलर के साथ एकीकृत होते हैं; हाइब्रिड मॉडल लाभों को संयोजित करने का प्रयास करते हैं।
Key figures
- Ken Thompson
- Dennis Ritchie
- Per Brinch Hansen
- Abraham Silberschatz
- Andrew S. Tanenbaum
Related topics
Seminal works
- silberschatz2018
- tanenbaum2014os
Frequently asked questions
- ऑपरेटिंग सिस्टम प्रत्येक प्रोसेस के लिए कौन सी जानकारी रखता है?
- यह एक प्रोसेस कंट्रोल ब्लॉक रखता है जिसमें प्रोसेस के सहेजे गए रजिस्टर और प्रोग्राम काउंटर, मेमोरी मैपिंग, शेड्यूलिंग स्थिति और प्राथमिकता, खुली फाइलें, और अकाउंटिंग और पहचान की जानकारी दर्ज होती है — वह सब कुछ जो प्रोसेस को निलंबित करने और बाद में उसे ठीक वहीं से फिर से शुरू करने के लिए आवश्यक है जहां वह रुका था।
- थ्रेड्स को प्रोसेसेस की तुलना में स्विच करना सस्ता क्यों होता है?
- एक प्रोसेस के भीतर थ्रेड्स एक ही एड्रेस स्पेस और संसाधनों को साझा करते हैं, इसलिए उनके बीच स्विच करने के लिए मेमोरी मैपिंग बदलने की आवश्यकता नहीं होती है। प्रोसेसेस के बीच स्विच करने से एड्रेस स्पेस भी बदल जाते हैं और ट्रांसलेशन कैश फ्लश हो सकता है, जिससे यह अधिक महंगा हो जाता है।