2010-04-26 7 views
5

में सामान्य वास्तविक समय प्रक्रियाओं के लिए कुछ उदाहरण लिनक्स में कुछ सामान्य SCHED_FIFO और SCHED_RR प्रक्रियाएं क्या हैं? क्या उपयोगकर्ता इनपुट रीयल टाइम प्रक्रियाओं के कैंटीगरी के अंतर्गत आता है?लिनक्स

उत्तर

7

at this question पर एक नज़र डालें। "वास्तविक समय" (एक प्रक्रिया के लिए) शेड्यूलिंग एल्गोरिदम को संदर्भित करता है, या कर्नेल सोचता है कि यह तय करता है कि कौन सी प्रक्रिया चलती है। एक वास्तविक समय प्रक्रिया preempt एक अन्य इंटरैक्शन प्राप्त होने पर अन्य सभी प्रक्रियाओं (कम शेड्यूलिंग वज़न के) और इसे चलाने की आवश्यकता होगी।

एक प्रोग्राम जो उपयोगकर्ता इनपुट को स्वीकार करता है, इनपुट के लिए प्रतीक्षा करते समय नींद (ब्लॉक) पर जा रहा है, या यहां तक ​​कि कीस्ट्रोक (निर्भर) के बीच भी। इस तरह के एक कार्यक्रम में इतनी उच्च शेड्यूलिंग प्राथमिकता की आवश्यकता नहीं है। सिस्टम पर हर दूसरी प्रक्रिया से आगे चलने के लिए आरटी प्रक्रियाओं को की आवश्यकता होनी चाहिए। ऐसा इसलिए हो सकता है क्योंकि प्रक्रिया कुछ महत्वपूर्ण लक्ष्य के लिए महत्वपूर्ण है, या उच्च प्रदर्शन टाइमर की आवश्यकता है (इस मामले में, आप एक वास्तविक समय ओएस चाहते हैं, जो मानक लिनक्स नहीं है)।

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

यदि मैं एक लिफ्ट को नियंत्रित करने के लिए मानक कर्नेल का उपयोग कर रहा था, तो सूक्ष्म स्विच से हार्डवेयर इंटरप्ट की सेवा करने वाली प्रक्रिया शायद आरटी वजन पर SCHED_FIFO का उपयोग कर रही है। फिर फिर, मैं शायद इसके लिए मानक लिनक्स का उपयोग नहीं करता।

यदि मैं एक ई-मेल क्लाइंट लिख रहा था, तो मैं मानक शेड्यूलर का उपयोग करता हूं और उपयोगकर्ता को nice उनके चल रहे प्रोग्रामों को फिट होने देता है।