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