रीयल-टाइम ऑपरेटिंग सिस्टम: Difference between revisions
No edit summary |
|||
(18 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Computer operating system for applications with critical timing constraints}} | {{Short description|Computer operating system for applications with critical timing constraints}} | ||
रीयल-टाइम | '''रीयल-टाइम ऑपरेटिंग सिस्टम''' (आरटीओएस) [[रीयल-टाइम कंप्यूटिंग]] अनुप्रयोगों के लिए एक ऑपरेटिंग सिस्टम (ओएस) है जो डेटा और घटनाओं को संसाधित करता है जिसमें सूक्षम रूप से परिभाषित समय की कमी होती है। एक आरटीओएस टाइम-शेयरिंग ऑपरेटिंग सिस्टम से अलग है, जैसे कि यूनिक्स, जो एक मल्टीटास्किंग या मल्टीप्रोग्रामिंग परिस्थिति में एक अनुसूचक, डेटा बफ़र्स, या निश्चित कार्य प्राथमिकता के साथ सिस्टम संसाधनों के सहभागिताकरण का प्रबंधन करता है। प्रसंस्करण समय की आवश्यकताओं को निम्न रूप में रखने के अतिरिक्त पूरी प्रकार से समझने और बाध्य करने की आवश्यकता है। सभी प्रसंस्करण परिभाषित बाध्यताओं के अंतर्गत होने चाहिए। रीयल-टाइम ऑपरेटिंग सिस्टम [[घटना-संचालित प्रोग्रामिंग]] हैं। घटना-संचालित और प्रीमेशन (कंप्यूटिंग), जिसका अर्थ है कि ओएस प्रतिस्पर्धी कार्यों की प्रासंगिक प्राथमिकता का पर्यवेक्षण कर सकता है और कार्य प्राथमिकता में परिवर्तन कर सकता है। घटना-संचालित सिस्टम अपनी प्राथमिकताओं के आधार पर कार्यों के बीच परिवर्तन करते हैं, जबकि टाइम-शेयरिंग सिस्टम घड़ी के अवरोध के आधार पर कार्य को परिवर्तन करते हैं। | ||
== विशेषताएं == | == विशेषताएं == | ||
आरटीओएस की | आरटीओएस की प्रमुख विशेषता इसकी निरंतरता का स्तर है जो किसी एप्लिकेशन के कार्य (कंप्यूटिंग) को स्वीकार करने और पूरा करने में लगने वाले समय से संबंधित है; परिवर्तनशीलता '[[घबराना|अस्थिर]]' होना है।<ref>{{cite web |url=http://www.chibios.org/dokuwiki/doku.php?id=chibios:articles:jitter |title = Response Time and Jitter}}</ref> एक 'दृढ़' रीयल-टाइम ऑपरेटिंग सिस्टम (दृढ़ आरटीओएस) में 'सरल' रीयल-टाइम ऑपरेटिंग सिस्टम (सरल आरटीओएस) की तुलना में कम [[घबराना|अस्थिर]] होता है। विलंब से दिया गया उत्तर दृढ़ आरटीओएस में गलत उत्तर होता है जबकि सरल आरटीओएस में विलंब से दिया गया उत्तर स्वीकार्य होता है। मुख्य डिजाइन लक्ष्य उच्च प्रवाह क्षमता नहीं है, बल्कि रीयल-टाइम कंप्यूटिंग प्रदर्शन श्रेणी के लिए रीयल-टाइम कंप्यूटिंग मानदंड की गारंटी है। एक आरटीओएस जो प्रायः या व्यापक रूप पर एक समय सीमा को पूरा कर सकता है, एक सरल रीयल-टाइम ओएस है, लेकिन अगर यह निर्धारित समय सीमा को पूरा कर सकता है तो यह एक कठिन रीयल-टाइम ओएस है।<ref name="Tanenbaum">{{cite book |last=Tanenbaum |first=Andrew |title=आधुनिक ऑपरेटिंग सिस्टम|year=2008 |publisher=Pearson/Prentice Hall |location=Upper Saddle River, NJ |isbn=978-0-13-600663-3 |page=160}}</ref> | ||
आरटीओएस में [[शेड्यूलिंग (कंप्यूटिंग)]] के लिए एक उन्नत | |||
आरटीओएस में [[शेड्यूलिंग (कंप्यूटिंग)]] के लिए एक उन्नत कलन विधि है। अनुसूचक नमनीयता प्रक्रिया प्राथमिकताओं के एक व्यापक, कंप्यूटर-सिस्टम ऑर्केस्ट्रेशन को सक्षम करता है, लेकिन रीयल-टाइम ओएस अधिक बार अनुप्रयोगों एक संकीर्ण समूह के लिए समर्पित होता है। रीयल-टाइम ओएस में प्रमुख कारक निम्न [[व्यवधान विलंबता]] और निम्न [[थ्रेड स्विचिंग विलंबता]] हैं; एक रीयल-टाइम ओएस को इस बात के लिए अधिक महत्व दिया जाता है कि यह किसी निश्चित समयावधि में जितना काम कर सकता है, उसकी तुलना में यह कितनी जल्दी प्रतिक्रिया दे सकता है।<ref>{{cite web |title=आरटीओएस अवधारणाओं|url=http://www.chibios.org/dokuwiki/doku.php?id=chibios:articles:rtos_concepts |url-status=dead}}</ref> | |||
विस्तृत सूची के लिए [[रीयल-टाइम ऑपरेटिंग सिस्टम की तुलना]] देखें। साथ ही, सभी प्रकार के ऑपरेटिंग सिस्टम के लिए [[ऑपरेटिंग सिस्टम की सूची]] देखें। | विस्तृत सूची के लिए [[रीयल-टाइम ऑपरेटिंग सिस्टम की तुलना]] देखें। साथ ही, सभी प्रकार के ऑपरेटिंग सिस्टम के लिए [[ऑपरेटिंग सिस्टम की सूची]] देखें। | ||
== डिजाइन दर्शन == | == डिजाइन दर्शन == | ||
आरटीओएस एक ऑपरेटिंग सिस्टम है जिसमें निविष्ट प्रोत्साहन को संसाधित करने में लगने वाला समय उसी प्रकार के अगले निविष्ट प्रोत्साहन तक व्यतीत होने वाले समय से कम होता है। | |||
सबसे | सबसे सामान्य डिजाइन हैं: | ||
* घटना-संचालित - | * घटना-संचालित - कार्यों को तभी स्विच करता है जब उच्च प्राथमिकता वाली घटना को सर्विसिंग की आवश्यकता होती है; प्रीमेशन (कंप्यूटिंग), या प्राथमिकता शेड्यूलिंग कहा जाता है। | ||
टाइम-शेयरिंग - नियमित घड़ी के अवरोध और घटना पर कार्यों को स्विच करता है; [[राउंड-रॉबिन शेड्यूलिंग]] कहा जाता है। | |||
समय | समय सहभागिता करने वाले डिज़ाइन कार्यों को कठोरता से आवश्यकता से अधिक बार स्विच करते हैं, लेकिन [[कंप्यूटर मल्टीटास्किंग]] सहज बनाते हैं, जिससे यह भ्रम होता है कि एक प्रक्रिया या उपयोगकर्ता के पास मशीन का एकमात्र उपयोग है। | ||
आरंभिक [[सीपीयू डिजाइन|सीपीयू डिजाइनों]] को कार्यों को बदलने के लिए कई चक्रों की आवश्यकता होती थी, जिस अवधि सीपीयू कुछ और उपयोगी नहीं कर सकता था। क्योंकि स्विचिंग में इतना समय लगता था, आरंभिक ओएस ने अनावश्यक कार्य स्विचिंग से बचकर सीपीयू समय व्यर्थ करने को कम करने का प्रयास किया। | |||
== निर्धारण == | == निर्धारण == | ||
विशिष्ट डिजाइनों में, | विशिष्ट डिजाइनों में, कार्य में तीन अवस्थाएँ होती हैं: | ||
# | # चलायमान (सीपीयू पर निष्पादन); | ||
# | # तत्पर (निष्पादित होने के लिए तत्पर); | ||
# | # अवरुद्ध (एक घटना की प्रतीक्षा में, उदाहरण के लिए आई/ओ)। | ||
अधिकांश कार्य अधिकांश समय अवरुद्ध या | अधिकांश कार्य अधिकांश समय अवरुद्ध या तत्पर रहते हैं क्योंकि सामान्यतः प्रति [[सेंट्रल प्रोसेसिंग यूनिट]] में एक समय में केवल एक ही कार्य चल सकता है। सिस्टम द्वारा किए जाने वाले कार्यों की संख्या और सिस्टम द्वारा उपयोग किए जाने वाले अनुसूचक के प्रकार के आधार पर, तत्पर क्रम में वस्तुओं की संख्या बहुत भिन्न हो सकती है। सरल अन्य-रिक्तिपूर्व लेकिन अभी भी मल्टीटास्किंग सिस्टम पर, एक कार्य को सीपीयू पर अपना समय अन्य कार्यों के लिए देना पड़ता है, जिससे तत्पर क्रम में निष्पादित होने के लिए तत्पर स्थिति में समग्र कार्यों की अधिक संख्या हो सकती है ([[संसाधन भुखमरी|संसाधन अप्राप्ति]]) . | ||
सामान्यतः,अनुसूचक में तत्पर सूची की डेटा संरचना को अनुसूचक के महत्वपूर्ण खंड में व्यतीत समय की सबसे निकृष्टतम स्थिति को कम करने के लिए डिज़ाइन किया गया है, जिस अवधि पूर्वक्रय बाधित होता है, और, कुछ स्थितियों में, सभी व्यवधान अक्षम हो जाते हैं, लेकिन विकल्प डेटा संरचना की संख्या उन कार्यों की अधिकतम संख्या पर भी निर्भर करती है जो तत्पर सूची में हो सकते हैं। | |||
यदि | यदि तत्पर सूची में कभी भी कुछ कार्यों से अधिक नहीं होते हैं, तो तत्पर कार्यों की दोगुनी लिंक की गई सूची की संभावना इष्टतम होती है। यदि तत्पर सूची में सामान्यतः केवल कुछ कार्य होते हैं लेकिन कभी-कभी अधिक भी होते हैं, तो सूची को प्राथमिकता के आधार पर क्रमबद्ध किया जाना चाहिए। इस प्रकार, चलाने के लिए सर्वोच्च प्राथमिकता वाले कार्य को खोजने के लिए पूरी सूची के माध्यम से पुनरावृति की आवश्यकता नहीं होती है। किसी कार्य को सम्मिलित करने के लिए सूची के अंत तक पहुंचने तक या सम्मिलित किए जा रहे कार्य की तुलना में कम प्राथमिकता वाले कार्य तक तत्पर सूची को चलने की आवश्यकता होती है। | ||
इस खोज | इस खोज की अवधि पूर्वक्रय को बाधित न करने के लिए सावधानी रखना चाहिए। लंबे समय तक महत्वपूर्ण वर्गों को छोटे टुकड़ों में बांटा जाना चाहिए। यदि कोई व्यवधान उत्पन्न होता है जो कम प्राथमिकता वाले कार्य के सम्मिलन के अवधि उच्च प्राथमिकता वाले कार्य को तत्पर करता है, तो उस उच्च प्राथमिकता वाले कार्य को डाला जा सकता है और कम प्राथमिकता वाले कार्य को सम्मिलित करने से ठीक पहले चलाया जा सकता है। | ||
महत्वपूर्ण प्रतिक्रिया समय, जिसे कभी-कभी | महत्वपूर्ण प्रतिक्रिया समय, जिसे कभी-कभी प्रतिधावन समय कहा जाता है, वह समय होता है जब किसी नए तत्पर कार्य को पंक्तिबद्ध करने और सर्वोच्च प्राथमिकता वाले कार्य की स्थिति को चलाने के लिए पुनर्स्थापित किया जाता है। एक अच्छी प्रकार से डिज़ाइन किए गए आरटीओएस में, एक नया कार्य तत्पर करने के लिए प्रति तत्पर क्रम प्रविष्टि में 3 से 20 निर्देश लगेंगे, और उच्चतम प्राथमिकता वाले तत्पर कार्य की वापसी में 5 से 30 निर्देश लगेंगे। | ||
अधिक उन्नत प्रणालियों में, | अधिक उन्नत प्रणालियों में, रीयल-टाइम के कार्य कंप्यूटिंग संसाधनों को कई अन्य-रीयल-टाइम के कार्यों के साथ सहभागिता करते हैं, और तत्पर सूची मनमाने ढंग से लंबी हो सकती है। ऐसी प्रणालियों में, लिंक की गई सूची के रूप में कार्यान्वित की गई अनुसूचक तत्पर सूची अपर्याप्त होगी। | ||
=== | === कलन विधि === | ||
कुछ सामान्य रूप से उपयोग किए जाने वाले आरटीओएस शेड्यूलिंग | कुछ सामान्य रूप से उपयोग किए जाने वाले आरटीओएस शेड्यूलिंग कलन विधि हैं: | ||
* | * सहकारी निर्धारण | ||
* पूर्वक्रय (कम्प्यूटिंग) | * पूर्वक्रय (कम्प्यूटिंग) | ||
** [[दर-मोनोटोनिक शेड्यूलिंग]] | ** [[दर-मोनोटोनिक शेड्यूलिंग]] | ||
** राउंड-रॉबिन शेड्यूलिंग | ** राउंड-रॉबिन शेड्यूलिंग | ||
** | ** निर्धारित प्राथमिकता प्री-एम्प्टिव शेड्यूलिंग, प्रीमेप्टिव टाइम स्लाइसिंग का कार्यान्वयन | ||
** निश्चित-प्राथमिकता निर्धारण आस्थगित | ** निश्चित-प्राथमिकता निर्धारण आस्थगित पूर्वक्रय अधिकार के साथ | ||
** | ** निर्धारित-प्राथमिकता अन्य-रिक्तिपूर्व शेड्यूलिंग | ||
** क्रिटिकल सेक्शन | ** क्रिटिकल सेक्शन रिक्तिपूर्व शेड्यूलिंग | ||
** स्टेटिक टाइम शेड्यूलिंग | ** स्टेटिक टाइम शेड्यूलिंग | ||
* | * अतिशीघ्र समय सीमा पहले शेड्यूलिंग दृष्टिकोण | ||
* थ्रेड (कंप्यूटर साइंस) के साथ | * थ्रेड (कंप्यूटर साइंस) के साथ स्टोकेस्टिक [[ निर्देशित ग्राफ |निर्देशित ग्राफ]] | ||
== इंटरटास्क संचार और संसाधन | == इंटरटास्क संचार और संसाधन सहभागिता == | ||
[[यूनिक्स]] जैसा मल्टीटास्किंग ऑपरेटिंग सिस्टम रीयल-टाइम कार्यों में | [[यूनिक्स]] जैसा मल्टीटास्किंग ऑपरेटिंग सिस्टम रीयल-टाइम कार्यों में अनुपयोगी है। अनुसूचक कंप्यूटर पर निम्नतम अनुरोध वाली नौकरियों को सर्वोच्च प्राथमिकता देता है, इसलिए यह सुनिश्चित करने का कोई सिस्टम नहीं है कि एक समय-महत्वपूर्ण नौकरी के पास पर्याप्त संसाधनों तक पहुंच होगी। मल्टीटास्किंग सिस्टम को कई कार्यों के बीच डेटा और हार्डवेयर संसाधनों को सहभागिता करने का प्रबंधन करना चाहिए। एक ही विशिष्ट डेटा या हार्डवेयर संसाधन को एक साथ अभिगम करना सामान्यतः दो कार्यों के लिए असुरक्षित होता है।<ref name="phraner1984fall">{{Cite magazine |last=Phraner |first=Ralph A. |date=Fall 1984 |url=https://archive.org/stream/byte-magazine-1984-09/1984_09_BYTE_09-09_Guide_to_the_IBM_PCs#page/n61/mode/2up |title=आईबीएम पीसी पर यूनिक्स का भविष्य|magazine=[[Byte (magazine)|Byte]] |pages=59–64}}</ref> इस समस्या को हल करने के तीन सामान्य प्रणालियाँ हैं: | ||
=== अस्थायी रूप से | === अस्थायी रूप से आच्छदन/व्यवधान अक्षम करना === | ||
सामान्य-उद्देश्य वाले ऑपरेटिंग सिस्टम | सामान्य-उद्देश्य वाले ऑपरेटिंग सिस्टम सामान्यतः उपयोगकर्ता प्रोग्राम को बाधित करने (अक्षम) करने की अनुमति नहीं देते हैं, क्योंकि उपयोगकर्ता प्रोग्राम सीपीयू को तब तक नियंत्रित कर सकता है जब तक इसे बनाया जाता है। कुछ आधुनिक सीपीयू [[उपयोगकर्ता मोड|उपयोगकर्ता पद्वति]] कोड को बाधित करने की अनुमति नहीं देते हैं क्योंकि इस प्रकार के नियंत्रण को एक महत्वपूर्ण ऑपरेटिंग सिस्टम संसाधन माना जाता है। कई अंतर्निहित सिस्टम और आरटीओएस, यधपि, एप्लिकेशन को अधिक [[सिस्टम कॉल]] दक्षता के लिए [[कर्नेल मोड|कर्नेल पद्वति]] में चलाने की अनुमति देते हैं और ओएस हस्तक्षेप की आवश्यकता के बिना ऑपरेटिंग परिस्थिति के अधिक नियंत्रण के लिए एप्लिकेशन को अनुमति भी देते हैं। | ||
सिंगल-प्रोसेसर सिस्टम पर, कर्नेल | सिंगल-प्रोसेसर सिस्टम पर, कर्नेल पद्वति में चलने वाला एक एप्लिकेशन और आच्छदन [[ बाधा डालना |या व्यवधान]] एक सहभागिता संसाधन तक एक साथ पहुंच को रोकने के लिए निम्नतम उपरि विधि है। जबकि व्यवधानों को छिपाया जाता है और वर्तमान कार्य अवरुद्ध ओएस कॉल नहीं करता है, वर्तमान कार्य में सीपीयू का अनन्य उपयोग होता है क्योंकि कोई अन्य कार्य या व्यवधान नियंत्रण नहीं कर सकता है, इसलिए महत्वपूर्ण खंड सुरक्षित है। जब कार्य अपने महत्वपूर्ण खंड से बाहर निकलता है, तो उसे व्यवधानों को उजागर करना चाहिए; लंबित व्यवधान, यदि कोई हों, तब निष्पादित होंगी। अस्थायी रूप से आच्छदन व्यवधान केवल तभी किया जाना चाहिए जब महत्वपूर्ण खंड के माध्यम से सबसे लंबा पथ वांछित अधिकतम व्यवधान विलंबता से छोटा हो। सामान्यतः सुरक्षा की इस पद्धति का उपयोग केवल तब किया जाता है जब महत्वपूर्ण खंड केवल कुछ निर्देश होते हैं और इसमें कोई लूप नहीं होता है। यह विधि हार्डवेयर बिट-मैप्ड रजिस्टरों की सुरक्षा के लिए आदर्श है जब बिट्स को विभिन्न कार्यों द्वारा नियंत्रित किया जाता है। | ||
=== [[ म्युटेक्स ]] === | === [[ म्युटेक्स ]] === | ||
जब | जब अन्य सभी कार्यों को अवरुद्ध किए बिना साझा संसाधन को आरक्षित किया जाना चाहिए (जैसे कि फ्लैश मेमोरी के लिखे जाने की प्रतीक्षा करना), सामान्य-प्रयोजन ऑपरेटिंग सिस्टम पर भी उपलब्ध तंत्र का उपयोग करना श्रेष्ठतर होता है, जैसे म्यूटेक्स और ओएस-पर्यवेक्षित इंटरप्रोसेस मैसेजिंग। इस प्रकार के तंत्र में सिस्टम कॉल सम्मिलित होते हैं, और सामान्यतः बाहर निकलने पर ओएस के प्रेषक कोड को आमंत्रित करते हैं, इसलिए वे सामान्यतः निष्पादित करने के लिए सैकड़ों सीपीयू निर्देश लेते हैं, जबकि आच्छदन व्यवधान कुछ प्रोसेसर पर एक निर्देश के रूप में निम्न हो सकता है। | ||
ए ( | ए (अन्य-पुनरावर्ती) म्यूटेक्स या तो लॉक या अनलॉक है। जब किसी कार्य ने म्यूटेक्स को लॉक कर दिया है, तो अन्य सभी कार्यों को म्यूटेक्स को उसके संचालक - मूल थ्रेड द्वारा अनलॉक किए जाने की प्रतीक्षा करनी चाहिए। एक कार्य एक म्यूटेक्स के लिए अपनी प्रतीक्षा का समय समाप्त कर सकता है। म्यूटेक्स आधारित डिज़ाइन के साथ कई प्रचलित समस्याएं हैं जैसे कि [[प्राथमिकता उलटा|प्राथमिकता व्युत्क्रमण]] और [[गतिरोध]]। | ||
प्राथमिकता व्युत्क्रम में एक उच्च प्राथमिकता वाला कार्य प्रतीक्षा करता है क्योंकि | प्राथमिकता व्युत्क्रम में एक उच्च प्राथमिकता वाला कार्य प्रतीक्षा करता है क्योंकि निम्न प्राथमिकता वाले कार्य में म्यूटेक्स होता है, लेकिन निम्न प्राथमिकता वाले कार्य को अपना कार्य पूरा करने के लिए सीपीयू में समय नहीं दिया जाता है। एक विशिष्ट समाधान यह है कि वह कार्य जिसके पास एक म्यूटेक्स 'विरासत' है, उच्चतम प्रतीक्षा कार्य की प्राथमिकता है। लेकिन प्रतीक्षा के कई स्तर होने पर यह सरल दृष्टिकोण और अधिक जटिल हो जाता है: कार्य 'ए' कार्य 'बी' द्वारा म्यूटेक्स लॉक की प्रतीक्षा करता है, जो कार्य 'सी' द्वारा म्यूटेक्स लॉक की प्रतीक्षा करता है। विरासत के कई स्तरों को संभालने के कारण अन्य कोड उच्च प्राथमिकता वाले संदर्भ में चलते हैं और इस प्रकार मध्यम-प्राथमिकता वाले थ्रेड्स की अप्राप्ति का कारण बन सकते हैं। | ||
गतिरोध में, दो या दो से अधिक कार्य समय समाप्ति के बिना म्यूटेक्स को लॉक कर देते हैं और फिर चक्रीय निर्भरता बनाते हुए दूसरे कार्य के म्यूटेक्स के लिए | गतिरोध में, दो या दो से अधिक कार्य समय समाप्ति के बिना म्यूटेक्स को लॉक कर देते हैं और फिर चक्रीय निर्भरता बनाते हुए दूसरे कार्य के म्यूटेक्स के लिए सदैव प्रतीक्षा करते हैं। सबसे सरल गतिरोध परिदृश्य तब होता है जब दो कार्य वैकल्पिक रूप से दो म्यूटेक्स को लॉक करते हैं, लेकिन विपरीत क्रम में। गतिरोध को सावधानीपूर्वक डिजाइन द्वारा रोका जाता है। | ||
=== संदेश | === संदेश प्रेषण === | ||
संसाधनों को | संसाधनों को सहभागिता करने का दूसरी सिस्टम कार्यों के लिए एक संगठित [[संदेश देना]] स्कीम में संदेश भेजना है। इस उदाहरण में, संसाधन को सीधे केवल कार्य द्वारा प्रबंधित किया जाता है। जब कोई अन्य कार्य संसाधन से पूछताछ या कुशलता से काम करना चाहता है, तो यह प्रबंध कार्य को एक संदेश प्रेषित करता है। यधपि उनका रीयल-टाइम आचरण [[सेमाफोर (प्रोग्रामिंग)]] सिस्टम की तुलना में निम्न कठोर होता है, सरल संदेश-आधारित सिस्टम अधिकांश प्रोटोकॉल डेडलॉक खतरों से बचते हैं, और सामान्यतः सेमाफोर सिस्टम की तुलना में श्रेष्ठतर व्यवहार करते हैं। यधपि, सेमाफोर जैसी समस्याएं संभव हैं। प्राथमिकता उलटा तब हो सकता है जब कोई कार्य निम्न-प्राथमिकता वाले संदेश पर काम कर रहा हो और अपनी आने वाली संदेश क्रम में उच्च-प्राथमिकता वाले संदेश (या उच्च प्राथमिकता वाले कार्य से अप्रत्यक्ष रूप से उत्पन्न होने वाले संदेश) की उपेक्षा करता हो। प्रोटोकॉल गतिरोध तब हो सकता है जब दो या दो से अधिक कार्य प्रतिक्रिया संदेश भेजने के लिए एक दूसरे की प्रतीक्षा करते हैं। | ||
== | == व्यवधान संचालक और अनुसूचक == | ||
चूंकि एक | चूंकि एक व्यवधान संचालक उच्चतम प्राथमिकता वाले कार्य को चलने से रोकता है, और चूंकि रीयल-टाइम ऑपरेटिंग सिस्टम को थ्रेड विलंबता को निम्नतम रखने के लिए डिज़ाइन किया गया है, इसलिए व्यवधान संचालकों को सामान्यतः जितना संभव हो उतना निम्न रखा जाता है। यदि संभव हो तो व्यवधान संचालक हार्डवेयर के साथ सभी परस्पर क्रिया को रोकता है; सामान्यतः जो कुछ भी आवश्यक है वह बाधा को स्वीकार या अक्षम करना है (ताकि बाधा संचालक लौटने पर यह फिर से न हो) और उस कार्य को सूचित करें जिसे काम करने की आवश्यकता है। यह एक ड्राइवर कार्य को एक सेमाफोर जारी करके, एक ध्वज सेट करके या एक संदेश भेजकर किया जा सकता है । एक अनुसूचक अधिकांशतः किसी कार्य को व्यवधान संचालकों संदर्भ से अनब्लॉक करने की क्षमता प्रदान करता है। | ||
ओएस उन वस्तुओं के कैटलॉग को बनाए रखता है जिन्हें वह प्रबंधित करता है जैसे कि थ्रेड्स, म्यूटेक्स, मेमोरी, और इसी प्रकार। इस कैटलॉग के अपडेट को कठोरता से नियंत्रित किया जाना चाहिए। इस कारण से, यह समस्याग्रस्त हो सकता है जब एक व्यवधान संचालकों ओएस फ़ंक्शन को कॉल करता है जबकि एप्लिकेशन ऐसा करने के कार्य में भी होता है। व्यवधान संचालकों से बुलाया गया ओएस फ़ंक्शन एप्लिकेशन के अपडेट के कारण ऑब्जेक्ट डेटाबेस को असंगत स्थिति में पा सकता है। इस समस्या से निपटने के लिए दो प्रमुख दृष्टिकोण हैं: एकीकृत स्थापत्य और खंडित स्थापत्य। एकीकृत स्थापत्य को कार्यान्वित करने वाले आरटीओएस आंतरिक कैटलॉग अपडेट होने पर अवरोध को अक्षम करके समस्या का समाधान करते हैं। इसका नकारात्मक पक्ष यह है कि रुकावट विलंबता बढ़ जाती है, संभावित रूप से बाधित हो जाती है। खंडित स्थापत्य प्रत्यक्ष को ओएस कॉल नहीं करता है लेकिन ओएस से संबंधित कार्य को भिन्न संचालकों को सौंपता है। यह संचालक किसी भी थ्रेड की तुलना में उच्च प्राथमिकता पर चलता है, लेकिन व्यवधान संचालकों से निम्नतम है। इस स्थापत्य का लाभ यह है कि यह विलंबता को बाधित करने के लिए बहुत निम्न चक्र जोड़ता है। परिणामस्वरूप, खंडित वास्तुकला को कार्यान्वित करने वाले ओएस अधिक आकलित हैं और एकीकृत वास्तुकला की तुलना में उच्च रुकावट दर से निपट सकते हैं। | |||
इसी | इसी प्रकार, x86 संगत हार्डवेयर पर [[सिस्टम प्रबंधन मोड|सिस्टम प्रबंधन पद्वति]] को ऑपरेटिंग सिस्टम पर नियंत्रण वापस करने से पहले बहुत समय लग सकता है। | ||
== [[स्मृति आवंटन]] == | == [[स्मृति आवंटन|मेमोरी आवंटन]] == | ||
अन्य ऑपरेटिंग सिस्टम की तुलना में रीयल-टाइम ऑपरेटिंग सिस्टम में मेमोरी आवंटन अधिक महत्वपूर्ण है। | अन्य ऑपरेटिंग सिस्टम की तुलना में रीयल-टाइम ऑपरेटिंग सिस्टम में मेमोरी आवंटन अधिक महत्वपूर्ण है। | ||
सबसे पहले, स्थिरता के लिए [[ स्मृति रिसाव ]] नहीं हो सकती (मेमोरी जो आवंटित की जाती है लेकिन उपयोग के बाद मुक्त नहीं होती है)। रिबूट की आवश्यकता के बिना, डिवाइस को अनिश्चित काल तक काम करना चाहिए। इस कारण से, डायनेमिक मेमोरी आवंटन पर ध्यान नहीं दिया जाता है। | सबसे पहले, स्थिरता के लिए [[ स्मृति रिसाव |मेमोरी लीक]] नहीं हो सकती (मेमोरी जो आवंटित की जाती है लेकिन उपयोग के बाद मुक्त नहीं होती है)। रिबूट की आवश्यकता के बिना, डिवाइस को अनिश्चित काल तक काम करना चाहिए। इस कारण से, डायनेमिक मेमोरी आवंटन पर ध्यान नहीं दिया जाता है। जब भी संभव हो, सभी आवश्यक मेमोरी आबंटन को संकलन समय पर स्थिर रूप से निर्दिष्ट किया जाता है। | ||
डायनेमिक मेमोरी आवंटन से बचने का एक अन्य कारण मेमोरी विखंडन है। | डायनेमिक मेमोरी आवंटन से बचने का एक अन्य कारण मेमोरी विखंडन है। मेमोरी के छोटे हिस्से के निरंतर आवंटन और विमोचन के साथ, ऐसी स्थिति उत्पन्न हो सकती है जहां उपलब्ध मेमोरी को कई खंडों में विभाजित किया जाता है और आरटीओएस मेमोरी के एक बड़े निरंतर खंड को आवंटित नहीं कर सकता है, यधपि पर्याप्त मुक्त मेमोरी है। दूसरे,आवंटन की गति महत्वपूर्ण है। एक मानक मेमोरी आवंटन योजना उपयुक्त मुक्त मेमोरी ब्लॉक खोजने के लिए अनिश्चित लंबाई की एक लिंक की गई सूची को स्कैन करती है,<ref>{{cite web| url = http://courses.engr.illinois.edu/cs241/sp2012/lectures/08-malloc.pdf| title = CS 241, University of Illinois}}</ref> जो आरटीओएस में अस्वीकार्य है क्योंकि मेमोरी आवंटन एक निश्चित समय के अंतर्गत होता है। | ||
क्योंकि यांत्रिक डिस्क में बहुत लंबा और अधिक अप्रत्याशित प्रतिक्रिया समय होता है, डिस्क फ़ाइलों | क्योंकि यांत्रिक डिस्क में बहुत लंबा और अधिक अप्रत्याशित प्रतिक्रिया समय होता है, डिस्क फ़ाइलों के विनिमयन का उपयोग इन्हीं कारणों से नहीं किया जाता है जैसा कि ऊपर रैम आवंटन की चर्चा की गई। | ||
सरल नियत-आकार-ब्लॉक एल्गोरिथम अपने निम्न उपरि के कारण सरल [[ अंतः स्थापित प्रणाली |अंतः स्थापित सिस्टम]] के लिए काफी अच्छी तरह से काम करता है । | |||
== यह भी देखें == | == यह भी देखें == | ||
{{Div col|colwidth=25em}} | {{Div col|colwidth=25em}} | ||
* | * अनुकूली विभाजन अनुसूचक | ||
* रीयल-टाइम ऑपरेटिंग सिस्टम की तुलना | * रीयल-टाइम ऑपरेटिंग सिस्टम की तुलना | ||
* | * डेटा जनरल आरडीओएस | ||
* | * डीओ-178B | ||
* जल्द से जल्द समय सीमा पहले शेड्यूलिंग | * जल्द से जल्द समय सीमा पहले शेड्यूलिंग | ||
* | * फर्मवेयर | ||
* | * फ्रीआरटीओएस | ||
* | * इंटरप्टिबल ऑपरेटिंग सिस्टम | ||
* | * कम से कम सुस्त समय निर्धारण | ||
* | * ओसेक | ||
* | * पॉज़िक्स | ||
* दर-मोनोटोनिक शेड्यूलिंग | * दर-मोनोटोनिक शेड्यूलिंग | ||
* [[रोबोट ऑपरेटिंग सिस्टम]] | * [[रोबोट ऑपरेटिंग सिस्टम]] | ||
Line 113: | Line 114: | ||
{{Reflist}} | {{Reflist}} | ||
[[Category:CS1 maint]] | |||
[[Category:Citation Style 1 templates|M]] | |||
[[Category:Collapse templates|Real-Time Operating System]] | |||
[[Category:Created On 14/03/2023|Real-Time Operating System]] | |||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page|Real-Time Operating System]] | |||
[[Category:Multi-column templates]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category: | [[Category:Navigational boxes without horizontal lists|Real-Time Operating System]] | ||
[[Category: | [[Category:Pages using div col with small parameter]] | ||
[[Category:Pages with script errors|Real-Time Operating System]] | |||
[[Category:Short description with empty Wikidata description|Real-Time Operating System]] | |||
[[Category:Sidebars with styles needing conversion|Real-Time Operating System]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates based on the Citation/CS1 Lua module]] | |||
[[Category:Templates generating COinS|Cite magazine]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Templates using under-protected Lua modules]] | |||
[[Category:Wikipedia fully protected templates|Div col]] | |||
[[Category:Wikipedia metatemplates]] |
Latest revision as of 12:48, 3 November 2023
रीयल-टाइम ऑपरेटिंग सिस्टम (आरटीओएस) रीयल-टाइम कंप्यूटिंग अनुप्रयोगों के लिए एक ऑपरेटिंग सिस्टम (ओएस) है जो डेटा और घटनाओं को संसाधित करता है जिसमें सूक्षम रूप से परिभाषित समय की कमी होती है। एक आरटीओएस टाइम-शेयरिंग ऑपरेटिंग सिस्टम से अलग है, जैसे कि यूनिक्स, जो एक मल्टीटास्किंग या मल्टीप्रोग्रामिंग परिस्थिति में एक अनुसूचक, डेटा बफ़र्स, या निश्चित कार्य प्राथमिकता के साथ सिस्टम संसाधनों के सहभागिताकरण का प्रबंधन करता है। प्रसंस्करण समय की आवश्यकताओं को निम्न रूप में रखने के अतिरिक्त पूरी प्रकार से समझने और बाध्य करने की आवश्यकता है। सभी प्रसंस्करण परिभाषित बाध्यताओं के अंतर्गत होने चाहिए। रीयल-टाइम ऑपरेटिंग सिस्टम घटना-संचालित प्रोग्रामिंग हैं। घटना-संचालित और प्रीमेशन (कंप्यूटिंग), जिसका अर्थ है कि ओएस प्रतिस्पर्धी कार्यों की प्रासंगिक प्राथमिकता का पर्यवेक्षण कर सकता है और कार्य प्राथमिकता में परिवर्तन कर सकता है। घटना-संचालित सिस्टम अपनी प्राथमिकताओं के आधार पर कार्यों के बीच परिवर्तन करते हैं, जबकि टाइम-शेयरिंग सिस्टम घड़ी के अवरोध के आधार पर कार्य को परिवर्तन करते हैं।
विशेषताएं
आरटीओएस की प्रमुख विशेषता इसकी निरंतरता का स्तर है जो किसी एप्लिकेशन के कार्य (कंप्यूटिंग) को स्वीकार करने और पूरा करने में लगने वाले समय से संबंधित है; परिवर्तनशीलता 'अस्थिर' होना है।[1] एक 'दृढ़' रीयल-टाइम ऑपरेटिंग सिस्टम (दृढ़ आरटीओएस) में 'सरल' रीयल-टाइम ऑपरेटिंग सिस्टम (सरल आरटीओएस) की तुलना में कम अस्थिर होता है। विलंब से दिया गया उत्तर दृढ़ आरटीओएस में गलत उत्तर होता है जबकि सरल आरटीओएस में विलंब से दिया गया उत्तर स्वीकार्य होता है। मुख्य डिजाइन लक्ष्य उच्च प्रवाह क्षमता नहीं है, बल्कि रीयल-टाइम कंप्यूटिंग प्रदर्शन श्रेणी के लिए रीयल-टाइम कंप्यूटिंग मानदंड की गारंटी है। एक आरटीओएस जो प्रायः या व्यापक रूप पर एक समय सीमा को पूरा कर सकता है, एक सरल रीयल-टाइम ओएस है, लेकिन अगर यह निर्धारित समय सीमा को पूरा कर सकता है तो यह एक कठिन रीयल-टाइम ओएस है।[2]
आरटीओएस में शेड्यूलिंग (कंप्यूटिंग) के लिए एक उन्नत कलन विधि है। अनुसूचक नमनीयता प्रक्रिया प्राथमिकताओं के एक व्यापक, कंप्यूटर-सिस्टम ऑर्केस्ट्रेशन को सक्षम करता है, लेकिन रीयल-टाइम ओएस अधिक बार अनुप्रयोगों एक संकीर्ण समूह के लिए समर्पित होता है। रीयल-टाइम ओएस में प्रमुख कारक निम्न व्यवधान विलंबता और निम्न थ्रेड स्विचिंग विलंबता हैं; एक रीयल-टाइम ओएस को इस बात के लिए अधिक महत्व दिया जाता है कि यह किसी निश्चित समयावधि में जितना काम कर सकता है, उसकी तुलना में यह कितनी जल्दी प्रतिक्रिया दे सकता है।[3]
विस्तृत सूची के लिए रीयल-टाइम ऑपरेटिंग सिस्टम की तुलना देखें। साथ ही, सभी प्रकार के ऑपरेटिंग सिस्टम के लिए ऑपरेटिंग सिस्टम की सूची देखें।
डिजाइन दर्शन
आरटीओएस एक ऑपरेटिंग सिस्टम है जिसमें निविष्ट प्रोत्साहन को संसाधित करने में लगने वाला समय उसी प्रकार के अगले निविष्ट प्रोत्साहन तक व्यतीत होने वाले समय से कम होता है।
सबसे सामान्य डिजाइन हैं:
- घटना-संचालित - कार्यों को तभी स्विच करता है जब उच्च प्राथमिकता वाली घटना को सर्विसिंग की आवश्यकता होती है; प्रीमेशन (कंप्यूटिंग), या प्राथमिकता शेड्यूलिंग कहा जाता है।
टाइम-शेयरिंग - नियमित घड़ी के अवरोध और घटना पर कार्यों को स्विच करता है; राउंड-रॉबिन शेड्यूलिंग कहा जाता है।
समय सहभागिता करने वाले डिज़ाइन कार्यों को कठोरता से आवश्यकता से अधिक बार स्विच करते हैं, लेकिन कंप्यूटर मल्टीटास्किंग सहज बनाते हैं, जिससे यह भ्रम होता है कि एक प्रक्रिया या उपयोगकर्ता के पास मशीन का एकमात्र उपयोग है।
आरंभिक सीपीयू डिजाइनों को कार्यों को बदलने के लिए कई चक्रों की आवश्यकता होती थी, जिस अवधि सीपीयू कुछ और उपयोगी नहीं कर सकता था। क्योंकि स्विचिंग में इतना समय लगता था, आरंभिक ओएस ने अनावश्यक कार्य स्विचिंग से बचकर सीपीयू समय व्यर्थ करने को कम करने का प्रयास किया।
निर्धारण
विशिष्ट डिजाइनों में, कार्य में तीन अवस्थाएँ होती हैं:
- चलायमान (सीपीयू पर निष्पादन);
- तत्पर (निष्पादित होने के लिए तत्पर);
- अवरुद्ध (एक घटना की प्रतीक्षा में, उदाहरण के लिए आई/ओ)।
अधिकांश कार्य अधिकांश समय अवरुद्ध या तत्पर रहते हैं क्योंकि सामान्यतः प्रति सेंट्रल प्रोसेसिंग यूनिट में एक समय में केवल एक ही कार्य चल सकता है। सिस्टम द्वारा किए जाने वाले कार्यों की संख्या और सिस्टम द्वारा उपयोग किए जाने वाले अनुसूचक के प्रकार के आधार पर, तत्पर क्रम में वस्तुओं की संख्या बहुत भिन्न हो सकती है। सरल अन्य-रिक्तिपूर्व लेकिन अभी भी मल्टीटास्किंग सिस्टम पर, एक कार्य को सीपीयू पर अपना समय अन्य कार्यों के लिए देना पड़ता है, जिससे तत्पर क्रम में निष्पादित होने के लिए तत्पर स्थिति में समग्र कार्यों की अधिक संख्या हो सकती है (संसाधन अप्राप्ति) .
सामान्यतः,अनुसूचक में तत्पर सूची की डेटा संरचना को अनुसूचक के महत्वपूर्ण खंड में व्यतीत समय की सबसे निकृष्टतम स्थिति को कम करने के लिए डिज़ाइन किया गया है, जिस अवधि पूर्वक्रय बाधित होता है, और, कुछ स्थितियों में, सभी व्यवधान अक्षम हो जाते हैं, लेकिन विकल्प डेटा संरचना की संख्या उन कार्यों की अधिकतम संख्या पर भी निर्भर करती है जो तत्पर सूची में हो सकते हैं।
यदि तत्पर सूची में कभी भी कुछ कार्यों से अधिक नहीं होते हैं, तो तत्पर कार्यों की दोगुनी लिंक की गई सूची की संभावना इष्टतम होती है। यदि तत्पर सूची में सामान्यतः केवल कुछ कार्य होते हैं लेकिन कभी-कभी अधिक भी होते हैं, तो सूची को प्राथमिकता के आधार पर क्रमबद्ध किया जाना चाहिए। इस प्रकार, चलाने के लिए सर्वोच्च प्राथमिकता वाले कार्य को खोजने के लिए पूरी सूची के माध्यम से पुनरावृति की आवश्यकता नहीं होती है। किसी कार्य को सम्मिलित करने के लिए सूची के अंत तक पहुंचने तक या सम्मिलित किए जा रहे कार्य की तुलना में कम प्राथमिकता वाले कार्य तक तत्पर सूची को चलने की आवश्यकता होती है।
इस खोज की अवधि पूर्वक्रय को बाधित न करने के लिए सावधानी रखना चाहिए। लंबे समय तक महत्वपूर्ण वर्गों को छोटे टुकड़ों में बांटा जाना चाहिए। यदि कोई व्यवधान उत्पन्न होता है जो कम प्राथमिकता वाले कार्य के सम्मिलन के अवधि उच्च प्राथमिकता वाले कार्य को तत्पर करता है, तो उस उच्च प्राथमिकता वाले कार्य को डाला जा सकता है और कम प्राथमिकता वाले कार्य को सम्मिलित करने से ठीक पहले चलाया जा सकता है।
महत्वपूर्ण प्रतिक्रिया समय, जिसे कभी-कभी प्रतिधावन समय कहा जाता है, वह समय होता है जब किसी नए तत्पर कार्य को पंक्तिबद्ध करने और सर्वोच्च प्राथमिकता वाले कार्य की स्थिति को चलाने के लिए पुनर्स्थापित किया जाता है। एक अच्छी प्रकार से डिज़ाइन किए गए आरटीओएस में, एक नया कार्य तत्पर करने के लिए प्रति तत्पर क्रम प्रविष्टि में 3 से 20 निर्देश लगेंगे, और उच्चतम प्राथमिकता वाले तत्पर कार्य की वापसी में 5 से 30 निर्देश लगेंगे।
अधिक उन्नत प्रणालियों में, रीयल-टाइम के कार्य कंप्यूटिंग संसाधनों को कई अन्य-रीयल-टाइम के कार्यों के साथ सहभागिता करते हैं, और तत्पर सूची मनमाने ढंग से लंबी हो सकती है। ऐसी प्रणालियों में, लिंक की गई सूची के रूप में कार्यान्वित की गई अनुसूचक तत्पर सूची अपर्याप्त होगी।
कलन विधि
कुछ सामान्य रूप से उपयोग किए जाने वाले आरटीओएस शेड्यूलिंग कलन विधि हैं:
- सहकारी निर्धारण
- पूर्वक्रय (कम्प्यूटिंग)
- दर-मोनोटोनिक शेड्यूलिंग
- राउंड-रॉबिन शेड्यूलिंग
- निर्धारित प्राथमिकता प्री-एम्प्टिव शेड्यूलिंग, प्रीमेप्टिव टाइम स्लाइसिंग का कार्यान्वयन
- निश्चित-प्राथमिकता निर्धारण आस्थगित पूर्वक्रय अधिकार के साथ
- निर्धारित-प्राथमिकता अन्य-रिक्तिपूर्व शेड्यूलिंग
- क्रिटिकल सेक्शन रिक्तिपूर्व शेड्यूलिंग
- स्टेटिक टाइम शेड्यूलिंग
- अतिशीघ्र समय सीमा पहले शेड्यूलिंग दृष्टिकोण
- थ्रेड (कंप्यूटर साइंस) के साथ स्टोकेस्टिक निर्देशित ग्राफ
इंटरटास्क संचार और संसाधन सहभागिता
यूनिक्स जैसा मल्टीटास्किंग ऑपरेटिंग सिस्टम रीयल-टाइम कार्यों में अनुपयोगी है। अनुसूचक कंप्यूटर पर निम्नतम अनुरोध वाली नौकरियों को सर्वोच्च प्राथमिकता देता है, इसलिए यह सुनिश्चित करने का कोई सिस्टम नहीं है कि एक समय-महत्वपूर्ण नौकरी के पास पर्याप्त संसाधनों तक पहुंच होगी। मल्टीटास्किंग सिस्टम को कई कार्यों के बीच डेटा और हार्डवेयर संसाधनों को सहभागिता करने का प्रबंधन करना चाहिए। एक ही विशिष्ट डेटा या हार्डवेयर संसाधन को एक साथ अभिगम करना सामान्यतः दो कार्यों के लिए असुरक्षित होता है।[4] इस समस्या को हल करने के तीन सामान्य प्रणालियाँ हैं:
अस्थायी रूप से आच्छदन/व्यवधान अक्षम करना
सामान्य-उद्देश्य वाले ऑपरेटिंग सिस्टम सामान्यतः उपयोगकर्ता प्रोग्राम को बाधित करने (अक्षम) करने की अनुमति नहीं देते हैं, क्योंकि उपयोगकर्ता प्रोग्राम सीपीयू को तब तक नियंत्रित कर सकता है जब तक इसे बनाया जाता है। कुछ आधुनिक सीपीयू उपयोगकर्ता पद्वति कोड को बाधित करने की अनुमति नहीं देते हैं क्योंकि इस प्रकार के नियंत्रण को एक महत्वपूर्ण ऑपरेटिंग सिस्टम संसाधन माना जाता है। कई अंतर्निहित सिस्टम और आरटीओएस, यधपि, एप्लिकेशन को अधिक सिस्टम कॉल दक्षता के लिए कर्नेल पद्वति में चलाने की अनुमति देते हैं और ओएस हस्तक्षेप की आवश्यकता के बिना ऑपरेटिंग परिस्थिति के अधिक नियंत्रण के लिए एप्लिकेशन को अनुमति भी देते हैं।
सिंगल-प्रोसेसर सिस्टम पर, कर्नेल पद्वति में चलने वाला एक एप्लिकेशन और आच्छदन या व्यवधान एक सहभागिता संसाधन तक एक साथ पहुंच को रोकने के लिए निम्नतम उपरि विधि है। जबकि व्यवधानों को छिपाया जाता है और वर्तमान कार्य अवरुद्ध ओएस कॉल नहीं करता है, वर्तमान कार्य में सीपीयू का अनन्य उपयोग होता है क्योंकि कोई अन्य कार्य या व्यवधान नियंत्रण नहीं कर सकता है, इसलिए महत्वपूर्ण खंड सुरक्षित है। जब कार्य अपने महत्वपूर्ण खंड से बाहर निकलता है, तो उसे व्यवधानों को उजागर करना चाहिए; लंबित व्यवधान, यदि कोई हों, तब निष्पादित होंगी। अस्थायी रूप से आच्छदन व्यवधान केवल तभी किया जाना चाहिए जब महत्वपूर्ण खंड के माध्यम से सबसे लंबा पथ वांछित अधिकतम व्यवधान विलंबता से छोटा हो। सामान्यतः सुरक्षा की इस पद्धति का उपयोग केवल तब किया जाता है जब महत्वपूर्ण खंड केवल कुछ निर्देश होते हैं और इसमें कोई लूप नहीं होता है। यह विधि हार्डवेयर बिट-मैप्ड रजिस्टरों की सुरक्षा के लिए आदर्श है जब बिट्स को विभिन्न कार्यों द्वारा नियंत्रित किया जाता है।
म्युटेक्स
जब अन्य सभी कार्यों को अवरुद्ध किए बिना साझा संसाधन को आरक्षित किया जाना चाहिए (जैसे कि फ्लैश मेमोरी के लिखे जाने की प्रतीक्षा करना), सामान्य-प्रयोजन ऑपरेटिंग सिस्टम पर भी उपलब्ध तंत्र का उपयोग करना श्रेष्ठतर होता है, जैसे म्यूटेक्स और ओएस-पर्यवेक्षित इंटरप्रोसेस मैसेजिंग। इस प्रकार के तंत्र में सिस्टम कॉल सम्मिलित होते हैं, और सामान्यतः बाहर निकलने पर ओएस के प्रेषक कोड को आमंत्रित करते हैं, इसलिए वे सामान्यतः निष्पादित करने के लिए सैकड़ों सीपीयू निर्देश लेते हैं, जबकि आच्छदन व्यवधान कुछ प्रोसेसर पर एक निर्देश के रूप में निम्न हो सकता है।
ए (अन्य-पुनरावर्ती) म्यूटेक्स या तो लॉक या अनलॉक है। जब किसी कार्य ने म्यूटेक्स को लॉक कर दिया है, तो अन्य सभी कार्यों को म्यूटेक्स को उसके संचालक - मूल थ्रेड द्वारा अनलॉक किए जाने की प्रतीक्षा करनी चाहिए। एक कार्य एक म्यूटेक्स के लिए अपनी प्रतीक्षा का समय समाप्त कर सकता है। म्यूटेक्स आधारित डिज़ाइन के साथ कई प्रचलित समस्याएं हैं जैसे कि प्राथमिकता व्युत्क्रमण और गतिरोध।
प्राथमिकता व्युत्क्रम में एक उच्च प्राथमिकता वाला कार्य प्रतीक्षा करता है क्योंकि निम्न प्राथमिकता वाले कार्य में म्यूटेक्स होता है, लेकिन निम्न प्राथमिकता वाले कार्य को अपना कार्य पूरा करने के लिए सीपीयू में समय नहीं दिया जाता है। एक विशिष्ट समाधान यह है कि वह कार्य जिसके पास एक म्यूटेक्स 'विरासत' है, उच्चतम प्रतीक्षा कार्य की प्राथमिकता है। लेकिन प्रतीक्षा के कई स्तर होने पर यह सरल दृष्टिकोण और अधिक जटिल हो जाता है: कार्य 'ए' कार्य 'बी' द्वारा म्यूटेक्स लॉक की प्रतीक्षा करता है, जो कार्य 'सी' द्वारा म्यूटेक्स लॉक की प्रतीक्षा करता है। विरासत के कई स्तरों को संभालने के कारण अन्य कोड उच्च प्राथमिकता वाले संदर्भ में चलते हैं और इस प्रकार मध्यम-प्राथमिकता वाले थ्रेड्स की अप्राप्ति का कारण बन सकते हैं।
गतिरोध में, दो या दो से अधिक कार्य समय समाप्ति के बिना म्यूटेक्स को लॉक कर देते हैं और फिर चक्रीय निर्भरता बनाते हुए दूसरे कार्य के म्यूटेक्स के लिए सदैव प्रतीक्षा करते हैं। सबसे सरल गतिरोध परिदृश्य तब होता है जब दो कार्य वैकल्पिक रूप से दो म्यूटेक्स को लॉक करते हैं, लेकिन विपरीत क्रम में। गतिरोध को सावधानीपूर्वक डिजाइन द्वारा रोका जाता है।
संदेश प्रेषण
संसाधनों को सहभागिता करने का दूसरी सिस्टम कार्यों के लिए एक संगठित संदेश देना स्कीम में संदेश भेजना है। इस उदाहरण में, संसाधन को सीधे केवल कार्य द्वारा प्रबंधित किया जाता है। जब कोई अन्य कार्य संसाधन से पूछताछ या कुशलता से काम करना चाहता है, तो यह प्रबंध कार्य को एक संदेश प्रेषित करता है। यधपि उनका रीयल-टाइम आचरण सेमाफोर (प्रोग्रामिंग) सिस्टम की तुलना में निम्न कठोर होता है, सरल संदेश-आधारित सिस्टम अधिकांश प्रोटोकॉल डेडलॉक खतरों से बचते हैं, और सामान्यतः सेमाफोर सिस्टम की तुलना में श्रेष्ठतर व्यवहार करते हैं। यधपि, सेमाफोर जैसी समस्याएं संभव हैं। प्राथमिकता उलटा तब हो सकता है जब कोई कार्य निम्न-प्राथमिकता वाले संदेश पर काम कर रहा हो और अपनी आने वाली संदेश क्रम में उच्च-प्राथमिकता वाले संदेश (या उच्च प्राथमिकता वाले कार्य से अप्रत्यक्ष रूप से उत्पन्न होने वाले संदेश) की उपेक्षा करता हो। प्रोटोकॉल गतिरोध तब हो सकता है जब दो या दो से अधिक कार्य प्रतिक्रिया संदेश भेजने के लिए एक दूसरे की प्रतीक्षा करते हैं।
व्यवधान संचालक और अनुसूचक
चूंकि एक व्यवधान संचालक उच्चतम प्राथमिकता वाले कार्य को चलने से रोकता है, और चूंकि रीयल-टाइम ऑपरेटिंग सिस्टम को थ्रेड विलंबता को निम्नतम रखने के लिए डिज़ाइन किया गया है, इसलिए व्यवधान संचालकों को सामान्यतः जितना संभव हो उतना निम्न रखा जाता है। यदि संभव हो तो व्यवधान संचालक हार्डवेयर के साथ सभी परस्पर क्रिया को रोकता है; सामान्यतः जो कुछ भी आवश्यक है वह बाधा को स्वीकार या अक्षम करना है (ताकि बाधा संचालक लौटने पर यह फिर से न हो) और उस कार्य को सूचित करें जिसे काम करने की आवश्यकता है। यह एक ड्राइवर कार्य को एक सेमाफोर जारी करके, एक ध्वज सेट करके या एक संदेश भेजकर किया जा सकता है । एक अनुसूचक अधिकांशतः किसी कार्य को व्यवधान संचालकों संदर्भ से अनब्लॉक करने की क्षमता प्रदान करता है।
ओएस उन वस्तुओं के कैटलॉग को बनाए रखता है जिन्हें वह प्रबंधित करता है जैसे कि थ्रेड्स, म्यूटेक्स, मेमोरी, और इसी प्रकार। इस कैटलॉग के अपडेट को कठोरता से नियंत्रित किया जाना चाहिए। इस कारण से, यह समस्याग्रस्त हो सकता है जब एक व्यवधान संचालकों ओएस फ़ंक्शन को कॉल करता है जबकि एप्लिकेशन ऐसा करने के कार्य में भी होता है। व्यवधान संचालकों से बुलाया गया ओएस फ़ंक्शन एप्लिकेशन के अपडेट के कारण ऑब्जेक्ट डेटाबेस को असंगत स्थिति में पा सकता है। इस समस्या से निपटने के लिए दो प्रमुख दृष्टिकोण हैं: एकीकृत स्थापत्य और खंडित स्थापत्य। एकीकृत स्थापत्य को कार्यान्वित करने वाले आरटीओएस आंतरिक कैटलॉग अपडेट होने पर अवरोध को अक्षम करके समस्या का समाधान करते हैं। इसका नकारात्मक पक्ष यह है कि रुकावट विलंबता बढ़ जाती है, संभावित रूप से बाधित हो जाती है। खंडित स्थापत्य प्रत्यक्ष को ओएस कॉल नहीं करता है लेकिन ओएस से संबंधित कार्य को भिन्न संचालकों को सौंपता है। यह संचालक किसी भी थ्रेड की तुलना में उच्च प्राथमिकता पर चलता है, लेकिन व्यवधान संचालकों से निम्नतम है। इस स्थापत्य का लाभ यह है कि यह विलंबता को बाधित करने के लिए बहुत निम्न चक्र जोड़ता है। परिणामस्वरूप, खंडित वास्तुकला को कार्यान्वित करने वाले ओएस अधिक आकलित हैं और एकीकृत वास्तुकला की तुलना में उच्च रुकावट दर से निपट सकते हैं।
इसी प्रकार, x86 संगत हार्डवेयर पर सिस्टम प्रबंधन पद्वति को ऑपरेटिंग सिस्टम पर नियंत्रण वापस करने से पहले बहुत समय लग सकता है।
मेमोरी आवंटन
अन्य ऑपरेटिंग सिस्टम की तुलना में रीयल-टाइम ऑपरेटिंग सिस्टम में मेमोरी आवंटन अधिक महत्वपूर्ण है।
सबसे पहले, स्थिरता के लिए मेमोरी लीक नहीं हो सकती (मेमोरी जो आवंटित की जाती है लेकिन उपयोग के बाद मुक्त नहीं होती है)। रिबूट की आवश्यकता के बिना, डिवाइस को अनिश्चित काल तक काम करना चाहिए। इस कारण से, डायनेमिक मेमोरी आवंटन पर ध्यान नहीं दिया जाता है। जब भी संभव हो, सभी आवश्यक मेमोरी आबंटन को संकलन समय पर स्थिर रूप से निर्दिष्ट किया जाता है।
डायनेमिक मेमोरी आवंटन से बचने का एक अन्य कारण मेमोरी विखंडन है। मेमोरी के छोटे हिस्से के निरंतर आवंटन और विमोचन के साथ, ऐसी स्थिति उत्पन्न हो सकती है जहां उपलब्ध मेमोरी को कई खंडों में विभाजित किया जाता है और आरटीओएस मेमोरी के एक बड़े निरंतर खंड को आवंटित नहीं कर सकता है, यधपि पर्याप्त मुक्त मेमोरी है। दूसरे,आवंटन की गति महत्वपूर्ण है। एक मानक मेमोरी आवंटन योजना उपयुक्त मुक्त मेमोरी ब्लॉक खोजने के लिए अनिश्चित लंबाई की एक लिंक की गई सूची को स्कैन करती है,[5] जो आरटीओएस में अस्वीकार्य है क्योंकि मेमोरी आवंटन एक निश्चित समय के अंतर्गत होता है।
क्योंकि यांत्रिक डिस्क में बहुत लंबा और अधिक अप्रत्याशित प्रतिक्रिया समय होता है, डिस्क फ़ाइलों के विनिमयन का उपयोग इन्हीं कारणों से नहीं किया जाता है जैसा कि ऊपर रैम आवंटन की चर्चा की गई।
सरल नियत-आकार-ब्लॉक एल्गोरिथम अपने निम्न उपरि के कारण सरल अंतः स्थापित सिस्टम के लिए काफी अच्छी तरह से काम करता है ।
यह भी देखें
- अनुकूली विभाजन अनुसूचक
- रीयल-टाइम ऑपरेटिंग सिस्टम की तुलना
- डेटा जनरल आरडीओएस
- डीओ-178B
- जल्द से जल्द समय सीमा पहले शेड्यूलिंग
- फर्मवेयर
- फ्रीआरटीओएस
- इंटरप्टिबल ऑपरेटिंग सिस्टम
- कम से कम सुस्त समय निर्धारण
- ओसेक
- पॉज़िक्स
- दर-मोनोटोनिक शेड्यूलिंग
- रोबोट ऑपरेटिंग सिस्टम
- स्काडा
- तुल्यकालिक प्रोग्रामिंग भाषा
- समय-ट्रिगर प्रणाली
- समय-उपयोगिता समारोह
संदर्भ
- ↑ "Response Time and Jitter".
- ↑ Tanenbaum, Andrew (2008). आधुनिक ऑपरेटिंग सिस्टम. Upper Saddle River, NJ: Pearson/Prentice Hall. p. 160. ISBN 978-0-13-600663-3.
- ↑ "आरटीओएस अवधारणाओं".
{{cite web}}
: CS1 maint: url-status (link) - ↑ Phraner, Ralph A. (Fall 1984). "आईबीएम पीसी पर यूनिक्स का भविष्य". Byte. pp. 59–64.
- ↑ "CS 241, University of Illinois" (PDF).