2012-01-10 16 views
9

मैं 5.5 लंबे समय वापस VxWorks पर काम किया और यह सबसे अच्छा दुनिया का सबसे अच्छा वास्तविक समय ओएस पर काम करने का अनुभव था। तब से मुझे फिर से काम करने का मौका नहीं मिला। लेकिन, एक प्रश्न मुझे पॉपिंग करता रहता है, जो इतना तेज और निर्धारक बनाता है?क्या VxWorks इतना निर्धारक और तेज़ बनाता है?

मैं गूगल के माध्यम से इस प्रश्न के लिए कई संदर्भ ढूँढने में सक्षम नहीं किया गया है।

  1. मेमोरी आवंटन/de-आवंटन:

    तो, मैं सिर्फ यह सोच क्या एक नियमित रूप से ओएस गैर नियतात्मक बनाता कोशिश की - विकी का कहना है RTOS आकार ब्लॉक तय उपयोग करते हैं, तो यह है कि इन ब्लॉकों सीधे अनुक्रमित किया जा सकता है, लेकिन इस आंतरिक विखंडन का कारण होगा और मुझे यकीन है कि यह कुछ बिल्कुल नहीं मिशन क्रिटिकल सिस्टम जहां स्मृति पहले से ही सीमित है पर वांछनीय है हूँ।

  2. पेजिंग/विभाजन: - जुड़ा हुआ की इसकी तरह प्वाइंट 1

  3. इंटरप्ट हैंडलिंग: - सुनिश्चित नहीं हैं कि VxWorks यह लागू करता है, के रूप में यह कुछ VxWorks बहुत अच्छी तरह से संभालती है

  4. संदर्भ स्विचन है: - मैं VxWorks 5.5 सभी कर्नेल पता स्थान में निष्पादित करने के लिए इस्तेमाल किया प्रक्रियाओं में विश्वास करते हैं, तो संदर्भ सिर्फ रजिस्टर मूल्यों और पीसीबी के बारे में कुछ भी नहीं है (प्रक्रिया नियंत्रण ब्लॉक) की बचत को शामिल करने के लिए इस्तेमाल स्विचिंग, लेकिन अभी भी मैं 100% यकीन है कि

  5. प्रक्रिया नहीं हूँ शेड्यूलिंग एल्गोरिदम: - विंडोज रिक्तिपूर्व शेड्यूलिंग (प्राथमिकता/राउंड रोबिन) को लागू करता है तो कार्रवाई करेंगे शेड्यूलिंग VxWorks में के रूप में के रूप में तेजी से हो सकता है? मुझे ऐसा नहीं लगता। तो, VxWorks शेड्यूलिंग कैसे संभालता है?

जहां भी आवश्यक हो, मेरी समझ को सही करें।

+0

इसके लिए कोई लेकर्स ?? –

उत्तर

11

मेरा मानना ​​है कि निम्नलिखित अंतर के बहुत सारे के लिए खाते में जाएगा:

कोई पेजिंग/गमागमन

एक नियतात्मक RTOS बस कर सकते हैं डिस्क के लिए नहीं स्वैप स्मृति पृष्ठों। यह निर्धारणा को मार देगा, क्योंकि किसी भी क्षण आपको स्मृति में या बाहर स्वैप करना पड़ सकता है। vxWorks है कि आपके आवेदन रैम में पूरी तरह से फिट

नहीं प्रक्रियाओं

vxWorks 5.5 में, वहाँ जिम्मेदारी होती है, लेकिन विंडोज या लिनक्स की तरह कोई प्रक्रिया की आवश्यकता है। कार्य धागे के समान हैं और संदर्भ स्विचिंग अपेक्षाकृत सस्ती ऑपरेशन है। लिनक्स/विंडोज़ में, स्विचिंग प्रक्रिया काफी महंगा है।

ध्यान दें कि vxWorks 6.x में, एक प्रक्रिया मॉडल पेश किया गया था, जो कुछ भूमि के ऊपर बढ़ जाती है, लेकिन मुख्य रूप से उपयोगकर्ता मोड से पर्यवेक्षक मोड में संक्रमण से संबंधित है। कार्य स्विचिंग समय आवश्यक रूप से नए मॉडल से प्रभावित नहीं है।

फिक्स्ड प्राथमिकता

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

लिनक्स/विंडोज में, आम तौर पर बोलते हुए, जबकि प्रक्रियाओं की प्राथमिकता पर आपका कुछ नियंत्रण होता है, तो शेड्यूलर अंततः निम्न प्राथमिकता प्रक्रियाओं को चलाएगा, भले ही उच्च प्राथमिकता प्रक्रिया अभी भी सक्रिय हो।

+0

मैं आपके अधिकांश बिंदुओं से सहमत हूं, लेकिन फिर यह अवैध स्मृति पहुंच का ख्याल रखता है। क्या यह एक निर्माण को लागू करता है कि कार्य शुरू होने से पहले, इसे उपयोग की जाने वाली स्मृति की मात्रा के लिए अनुरोध करना होगा? बोक्ज़ यही एकमात्र तरीका है, VxWorks एक कार्य के सीमा क्षेत्रों को सेट कर सकते हैं। –

+2

I 5.5 कोई "अवैध स्मृति पहुंच" नहीं है जब तक कि सिस्टम वास्तव में उस पते तक नहीं पहुंच जाता जहां कुछ भी मैप नहीं किया जाता है। फिर एक अपवाद हैंडलर कहा जाता है। कार्यों की पूरी याददाश्त तक पहुंच है। यहां तक ​​कि अन्य कार्यों 'या यहां तक ​​कि कर्नेल डेटा संरचनाएं भी। 6.x प्रोसेस मॉडल एमएमयू का उपयोग कर प्रक्रिया स्थान पर स्मृति पहुंच को सीमित करता है। – Benoit

+1

स्वैपिंग हिस्सा वास्तव में "बड़े" आरटीओएस के मामले में हो सकता है लेकिन इसका कोई मतलब नहीं है। एक आरटीओएस को बस अपनी प्रक्रियाओं की समयसीमा की गारंटी देनी चाहिए - और जब तक यह इस नियम का उल्लंघन नहीं करती है, यह वास्तविक समय है। यदि आप महत्वपूर्ण प्रक्रिया को 5 मिनट के भीतर चलाना चाहिए और उसे वापस स्वैप करने की गारंटी दी जा सकती है तो अधिकतम 3 मिनट लगने की गारंटी दी जा सकती है और आप ठीक से चलने में 1 मिनट लगते हैं। – lambdapower

संबंधित मुद्दे