क्या गारंटी "नरम" वास्तविक समय ऑपरेटिंग सिस्टम वास्तव में प्रदान करते हैं


17

मुझे लगता है कि मुझे पता है कि "कठिन" वास्तविक समय का ऑपरेटिंग सिस्टम क्या है। यह एक अनुसूचक के साथ एक ऑपरेटिंग सिस्टम है जो एप्लिकेशन प्रोग्रामर के साथ एक अनुबंध प्रदान करता है। एक आवेदन प्रत्येक संसाधन आवंटन अनुरोध के साथ एक समय सीमा प्रदान करता है। यदि समय-सीमा अनुरोध संभव हैं , तो अनुसूचक गारंटी देता है कि प्रत्येक संसाधन को समय सीमा से पहले अनुरोध आवेदन को आवंटित किया जाएगा। गारंटी विशिष्ट अनुरोधों की अधिकतम विलंबता और न्यूनतम थ्रूपुट के बारे में तर्क करने के लिए एक एप्लिकेशन प्रोग्रामर को सक्षम करने के लिए पर्याप्त है।

"सॉफ्ट" रियल-टाइम सिस्टम की सभी परिभाषाएँ मुझे खाली लगती हैं। विकिपीडिया कहता है

परिणाम की उपयोगिता इसकी समय सीमा के बाद घट जाती है, जिससे सिस्टम की सेवा की गुणवत्ता ख़राब हो जाती है।

Uhhhh। ठीक है। उस मानदंड से विंडोज 95 एक सॉफ्ट रियल टाइम सिस्टम था और इसलिए 3BSD था और इसलिए लिनक्स है। विकिपीडिया एक महान स्रोत नहीं है, लेकिन Google हिट के अगले जोड़े ज्यादा बेहतर नहीं हैं। उदाहरण के लिए http://users.ece.cmu.edu/~koopman/des_s99/real_time/ कहते हैं

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

यह एक अनुबंध नहीं है, यह कुछ भी नहीं कहने का एक फैंसी तरीका है।

वास्तविक ऑपरेटिंग सिस्टम द्वारा प्रस्तावित वास्तविक नरम वास्तविक समय की गारंटी / अनुबंध के उदाहरण क्या हैं?

मैं फार्म के उत्तर की तलाश में हूं:

In (OS-name) यदि प्रोग्रामर करता है (what-programmer-need-to-do) तो ऑपरेटिंग सिस्टम गारंटी देता है (what-the-system-Guarantee)।

जवाबों:


22

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

यदि आप वास्तव में गारंटी के रूप में शब्द देना चाहते हैं, तो यह विशिष्ट प्रदर्शन की गारंटी के बजाय सर्वश्रेष्ठ प्रयास की गारंटी है।

या, Erlang FAQ (Erlang एक प्रोग्रामिंग भाषा है जिसे मूल रूप से टेलीफोनी में उपयोग के लिए डिज़ाइन किया गया है) को उद्धृत करने के लिए:

नरम वास्तविक समय का क्या मतलब है?

Cynics कहेंगे "मूल रूप से कुछ भी नहीं"।

(…) कई टेलीकॉम सिस्टम की सख्त आवश्यकताओं की तुलना में कम सख्त आवश्यकता होती है [उदाहरण के लिए, उन्हें "एक डेटाबेस लुकअप 97% मामलों में 20ms से कम समय लगता है" की तर्ज पर सांख्यिकीय गारंटी की आवश्यकता हो सकती है। सॉफ्ट रियलटाइम सिस्टम, जैसे एर्लांग, आपको इस तरह की गारंटी देते हैं।

और यह एक उपयोगी परिभाषा प्रदान करता है। नरम वास्तविक समय एक डिजाइन को इंगित करता है जो प्रत्येक व्यक्ति के काम के लिए अनुकूलित होता है और सभी कार्यों को करने के लिए खर्च किए गए कुल समय को अनुकूलित करने की बजाय एक निश्चित समय से अधिक नहीं लेता है। उदाहरण के लिए, एक सॉफ्ट रियल-टाइम सिस्टम 10ms में 99.9% अनुरोधों को पूरा करने और प्रति सेकंड 100 अनुरोधों को संसाधित करने का लक्ष्य रखेगा, जहां गैर-वास्तविक समय में प्रति सेकंड 200 अनुरोधों को आगे बढ़ाने का लक्ष्य हो सकता है, लेकिन कभी-कभी अनुरोध को ब्लॉक करने की अनुमति दें 50ms या अधिक। एक कठिन वास्तविक समय हर 15ms में एक अनुरोध की गारंटी देगा, चाहे जो भी हो।

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

इसके विपरीत, मोटर को नियंत्रित करने जैसी किसी चीज के लिए यह आवश्यक है कि सॉफ्टवेयर कभी भी समय सीमा से चूक न जाए। इसकी लागतें हैं: समग्र प्रदर्शन आमतौर पर धीमा है, और केवल अपेक्षाकृत सरल व्यवहार प्राप्त किया जा सकता है। स्पेक्ट्रम के दूसरी तरफ, एक नंबर क्रंचिंग एप्लिकेशन आम तौर पर केवल समग्र प्रदर्शन की परवाह करता है - क्या मायने रखता है कि 1000x1000 मैट्रिस कितनी तेजी से गुणा किया जाता है, न कि प्रत्येक कॉलम की कितनी तेजी से गणना की जाती है।


@ E.DouglasJensen आपका कथन एक अतिशयोक्ति है। आपका उत्तर मौलिक रूप से विकिपीडिया लेख से असहमत नहीं है।
गिल्स एसओ- बुराई को रोकना '

हाँ मैं सहमत हूँ। मेरी टिप्पणी का उद्देश्य वास्तविक समय के बारे में कई विकिपीडिया पृष्ठों को शामिल करना था, और उस सामग्री का एक बड़ा हिस्सा सबसे अच्छा माना जाता है।
ई। डगलस जेन्सेन

मेरी सबसे बड़ी शिकायत यह है कि लोग यह नहीं मानते कि हार्ड-टाइम (सभी समय-सीमा को पूरा करने वाले) सॉफ़्टवेयर को औपचारिक रूप से (कहने के लिए) ऑटोमोटिव ब्रेकिंग सिस्टम के लिए सत्यापित किया जाना चाहिए - इसलिए सॉफ्ट-टाइम सॉफ़्टवेयर को सॉफ्ट करना होगा (जैसे, प्रायिकता के साथ> 0.9 कम से कम 89% कार्यों में 20% से अधिक नहीं होना चाहिए) को औपचारिक रूप से सत्यापित किया जाना चाहिए। सभी सैन्य युद्ध प्रणाली नरम वास्तविक समय हैं। इसके बजाय लोगों के पास तदर्थ सोच है और कहते हैं "क्यू सीर सेरा।"
ई। डगलस जेनसेन

"पहली क्रांति तब होती है जब आप अपने दिमाग को बदलते हैं कि आप चीजों को कैसे देखते हैं और देखते हैं कि इसे देखने का एक और तरीका हो सकता है जिसे आपको नहीं दिखाया गया है।" -गिल स्कॉट-बगुला, "द रिवोल्यूशन विल बी नॉट टेलिवाइज्ड"
ई। डगलस जेन्सेन

4

-Rt (वास्तविक समय) पैचसेट के साथ लिनक्स एक अनुसूचक प्रदान करता है जो एक दिलचस्प गारंटी प्रदान करता है जो गैर-खाली लगता है। (हालांकि मैं इस बात पर स्पष्ट नहीं हूं कि गारंटी का वास्तविक उपयोग कैसे किया जा सकता है।)

लिनक्स-आरटी SCHED_FIFOशेड्यूलिंग नीति इस प्रकार काम करती है: उपयोगकर्ता हर प्रक्रिया को प्राथमिकता देता है। ("वास्तविक समय" प्रक्रियाओं के लिए प्राथमिकता संख्या 0-99 है, और पारंपरिक यूनिक्स niceमान 19 मैप्स के माध्यम से प्राथमिकताएं 100 में 139 के माध्यम से 100 है। (इसलिए "0" "सर्वोच्च" प्राथमिकता है और "139" सबसे कम है) "प्राथमिकता।)

गारंटी यह है कि किसी भी समय अनुसूचक Nएक Nप्रोसेसर मशीन पर उच्चतम प्राथमिकता वाले चलने योग्य नौकरियों का समय निर्धारित करेगा । कर्नेल के अंदर प्राथमिकता उलटा समस्याओं से बचने के लिए महान दर्द उठाए गए हैं। जब प्रक्रिया Aचलने योग्य हो जाती है और यह किसी अन्य चल रही प्रक्रिया की तुलना में उच्च प्राथमिकता होती है B, Aतो तुरंत पूर्व-निर्धारित हो जाएगी B

ध्यान दें, हालांकि, कोई सख्त समय की गारंटी नहीं दी गई है। वास्तव में पूर्वधारणा का प्रदर्शन करने में लगा समय सैद्धांतिक रूप से लंबा हो सकता है। इसके अलावा, कुछ तरीके ऐसे भी प्रतीत होते हैं जिनमें कम प्राथमिकता वाला काम लंबी विलंबता i / o का एक गुच्छा शुरू कर सकता है। जब i / o कम प्राथमिकता वाले काम के लिए इंटरचेंज हैंडलर को पूरा करता है, तो वह उच्च प्राथमिकता वाली नौकरी को बाधित कर सकता है, जो कि, निश्चित रूप से प्राथमिकता का उलटा रूप है।

इसलिए प्रदान की गई सीमित गारंटी यह है: यदि सर्वोच्च प्राथमिकता के साथ कोई एकल प्रक्रिया है, तो जब भी इसे चलाया जा सकेगा, इसमें सभी प्रोसेसर संसाधन मिलेंगे जो कि OS वास्तविक रूप से दे सकता है। यदि आपके पास उच्चतम प्राथमिकता प्रक्रिया द्वारा उपभोग किए जाने वाले प्रोसेसर संसाधनों की मात्रा पर एक अच्छी ऊपरी सीमा है, तो आप उन संसाधनों के उचित सटीक अनुमान की गणना कर सकते हैं जो दूसरी-सर्वोच्च प्राथमिकता प्रक्रिया के लिए उपलब्ध होंगे, और इसी तरह।

लिनक्स के वास्तविक समय अनुसूचक का वर्णन करते हुए गहराई से लेख http://www.linuxjournal.com/magazine/real-time-linux-kernel-scheduler है


1
मुझे लगता है कि RTLinux FAQ यहाँ उपयोगी वर्णन प्रदान करता है (वे विशेषणों का प्रयोग कठिन या नरम नहीं करते हैं ): "सीपीयू को हमेशा सर्वोच्च प्राथमिकता देने वाला कार्य हमेशा एक निश्चित समय के भीतर सीपीयू को मिल जाता है, जब ईवेंट जागने के बाद कार्य होता है। "
गिल्स एसओ- बुराई को रोकना '

4

"सॉफ्ट रियल-टाइम" को परिभाषित करने के लिए, इसकी तुलना "हार्ड रियल-टाइम" से करना सबसे आसान है।

लापरवाही से बोलते हुए, ज्यादातर लोगों को स्पष्ट रूप से एक अनौपचारिक मानसिक मॉडल होता है जो सूचना या किसी घटना को "वास्तविक समय" के रूप में मानता है।

• यदि, या इस हद तक, यह उनके लिए देरी (विलंबता) के साथ प्रकट होता है जो इसकी कथित मुद्रा से संबंधित हो सकता है

• अर्थात, एक समय सीमा में कि सूचना या घटना ने उनके लिए काफी संतोषजनक मूल्य प्रदान किया है।

"कठिन वास्तविक समय" की कई अलग-अलग तदर्थ परिभाषाएं हैं, लेकिन उस मानसिक मॉडल में, "अगर" शब्द द्वारा कठिन वास्तविक समय का प्रतिनिधित्व किया जाता है। विशेष रूप से, यह मानते हुए कि वास्तविक समय की कार्रवाइयों (जैसे कि कार्य) की समय सीमा पूरी हो जाती है, इस घटना का स्वीकार्य रूप से संतोषजनक मूल्य है कि सभी कार्य पूरे होने की स्थिति विशेष तक सीमित है जो सभी कार्य उनकी समय सीमा को पूरा करते हैं।

हार्ड रियल-टाइम सिस्टम बहुत मजबूत धारणाएं बनाते हैं कि एप्लिकेशन और सिस्टम और पर्यावरण के बारे में सब कुछ स्थिर है और एक 'प्राथमिकताओं' को जाना जाता है - जैसे, कौन से कार्य, वे आवधिक हैं, उनका आगमन समय, उनकी अवधि, उनकी समय सीमा, कि वे जीते 'संसाधन संघर्ष नहीं है, और कुल मिलाकर सिस्टम का समय विकास है। एक विमान उड़ान नियंत्रण प्रणाली या ऑटोमोटिव ब्रेकिंग सिस्टम और कई अन्य मामलों में उन मान्यताओं को आमतौर पर संतुष्ट किया जा सकता है ताकि सभी समय सीमाएं पूरी हो सकें।

यह मानसिक मॉडल जानबूझकर और बहुत उपयोगी सामान्य रूप से पर्याप्त है जो हार्ड और सॉफ्ट दोनों वास्तविक समय को समाहित करता है - नरम को "उस सीमा तक" वाक्यांश द्वारा समायोजित किया जाता है। उदाहरण के लिए, मान लें कि कार्य पूर्ण होने की घटना में उप-रूपी लेकिन स्वीकार्य मूल्य है

  • 10% से अधिक कार्य उनकी समय सीमा को याद नहीं करते हैं
  • या कोई कार्य 20% से अधिक कठिन नहीं है
  • या सभी कार्यों की औसत दर 15% से अधिक नहीं है
  • या सभी कार्यों में अधिकतम मर्यादा 10% से कम है

एक महान कई अनुप्रयोगों में नरम वास्तविक समय के मामलों के ये सभी सामान्य उदाहरण हैं।

स्कूल के बाद अपने बच्चे को लेने के एकल कार्य आवेदन पर विचार करें। संभवत: उसके पास वास्तविक समय सीमा नहीं है, इसके बजाय उस घटना के होने पर आपके और आपके बच्चे के लिए कुछ मूल्य है। बहुत जल्दी बर्बाद होने वाले संसाधन (जैसे कि आपका समय) और बहुत देर से कुछ नकारात्मक मूल्य है क्योंकि आपके बच्चे को अकेले और संभवतः नुकसान के रास्ते में छोड़ दिया जा सकता है (या कम से कम असुविधाजनक)।

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

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

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

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

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

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

स्वीकार्य मूल्य प्रदान करने वाली घटनाओं की उपरोक्त सूची का उल्लेख करते हुए, अब हम गैर-नियतात्मक मामलों को जोड़ सकते हैं, जैसे कि

  • संभावना है कि कोई भी कार्य 5% से अधिक की समय सीमा को याद नहीं करेगा 0.87 से अधिक है।

एक मिसाइल रक्षा आवेदन में, इस तथ्य को देखते हुए कि अपराध का हमेशा बचाव में फायदा होता है, आप इन दो वास्तविक समय के कंप्यूटिंग परिदृश्यों में से किसे पसंद करेंगे:

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

  • शिकायत करें कि यह एक वास्तविक समय की कंप्यूटिंग समस्या नहीं है क्योंकि यह स्थैतिक के बजाय गतिशील है, और पारंपरिक वास्तविक समय की अवधारणाएं और तकनीक लागू नहीं होती हैं, इसलिए आप नरम वास्तविक समय के लिए आरएंडडी करने में रुचि नहीं रखते हैं।

वास्तविक समय कंप्यूटिंग समुदाय में नरम वास्तविक समय के बारे में विभिन्न गलतफहमियों के बावजूद (लेकिन अन्य गैर-कंप्यूटिंग क्षेत्रों में नहीं), नरम वास्तविक समय बहुत सामान्य और शक्तिशाली है, और संभावित रूप से कठिन वास्तविक समय की तुलना में बहुत जटिल है।

ओपी प्रश्न का सीधे जवाब देने के लिए:

  • एक कठिन वास्तविक समय प्रणाली नियतात्मक गारंटी प्रदान कर सकती है - सबसे आम तौर पर कि सभी कार्य उनकी समय सीमा को पूरा करेंगे, व्यवधान या सिस्टम कॉल रिस्पांस टाइम हमेशा x से कम होगा, आदि - IF और ONLY यदि बहुत मजबूत धारणाएं बनाई गई हैं और सही हैं सब कुछ जो मायने रखता है वह स्थिर है और एक 'प्राथमिकता' ज्ञात है (सामान्य तौर पर, कठिन वास्तविक समय प्रणालियों के लिए इस तरह की गारंटी एक खुली अनुसंधान समस्या है, बल्कि सामान्य मामलों को छोड़कर)

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

मेरे पास मेरी वेब साइट real-time.org पर वास्तविक समय, कठिन वास्तविक समय, नरम वास्तविक समय, पूर्वानुमेयता, नियतत्ववाद और संबंधित विषयों की अधिक विस्तृत सटीक चर्चा है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.