RT कर्नेल का उपयोग करना (कम विलंबता)

इस ब्लॉग के महान अनुयायी और टिप्पणीकार मिगुएल मेयोल ने प्रकाशित एक लेख की सिफारिश की हिसपोसोन आरटी गुठली के उपयोग पर, जिसे हमने इसके कुछ हिस्सों में प्रकाशित और विस्तारित करने का निर्णय लिया है।

L आरटी गुठली अनुमति दें इष्टतम प्रदर्शन कुछ में विशेष स्थितिउदाहरण के लिए, ऑडियो संपादन या आभासी संगीत वाद्ययंत्र का उपयोग।

मल्टीटास्किंग कर्नेल

लिनक्स कर्नेल, अधिकांश आधुनिक ऑपरेटिंग सिस्टमों की तरह, मल्टीटास्किंग है। इसका मतलब है कि एक ही समय में कई कार्यक्रम चल रहे हैं।

वास्तव में, यह वास्तव में ऐसा नहीं है। आप क्या करते हैं कार्यक्रमों को एक कतार में रखा जाता है और, एक-एक करके, माइक्रोप्रोसेसर उन्हें निश्चित समय के लिए निष्पादित करता है। एक बार जब यह समाप्त हो जाता है, तो माइक्रोप्रोसेसर कार्य को बाधित करता है, इसे आधा छोड़ देता है और अगले को रास्ता देता है। समय की इस मात्रा को क्वांटम या टाइम स्लाइस कहा जाता है, और इसे निरंतर नहीं होना चाहिए।

एक अच्छा सादृश्य एक ही समय में कई व्यंजन तैयार करने वाला बार कुक हो सकता है: एक टेंडरलॉइन सैंडविच, एक ट्रिप सैंडविच, एक मिश्रित सलाद ... अब मैं रोटी तोड़ता हूं, पैन को चालू करता हूं, जबकि यह गर्म हो रहा है मैं लेट्यूस धोता हूं, आदि।

यदि क्वांटम काफी छोटा है, तो धीमी गति से पर्यवेक्षक के लिए व्यक्तिपरक छाप, जैसे कि मनुष्य, एक तेजी से प्रोसेसर के बजाय कार्यों को वैकल्पिक रूप से निष्पादित कर रहा है, हमारे पास उनमें से प्रत्येक के लिए एक धीमी प्रोसेसर है (एक ही रसोई में कई रसोइया धीरे-धीरे प्रत्येक कर रहे हैं) एक एकल प्लेट)।

टास्क स्विचिंग एक लागत पर आता है

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

विलंबता और प्रदर्शन

मान लीजिए कि हमारे रसोइए को 20 किलो झींगे और गड्ढे को 20 किलो जैतून को छीलना है। कैसे काम की योजना है?

एक चरम मामले में, वह पहले सभी झींगे को छीलता है, अपने हाथों को धोता है ताकि स्वादों को न मिलाएं, और फिर सभी जैतून को गड्ढे में डाल दें। हम इसका इस तरह प्रतिनिधित्व करेंगे:

GGGGGGGGGGGGGGGGGGGGGGGGG… CAAAAAAAAAAAAAAAAAAAA…

विपरीत छोर पर, वह एक झींगा छीलता है, अपने हाथों को धोता है, एक जैतून को गड्ढे करता है, अपने हाथों को धोता है ... झींगा, जैतून, झींगा, जैतून ... हम इस तरह का प्रतिनिधित्व करेंगे:

GCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACGCACACACAC…

'C' संदर्भ में परिवर्तन का प्रतिनिधित्व करता है: हाथ धोएं, बर्तन बदलें ...

उसी समय, एक वेटर ग्राहकों के अनुरोधों को इकट्ठा करता है: "एक झींगे के साथ!" ... "जैतून के साथ एक!" ... और उन्हें रसोई में स्थानांतरित करता है।

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

दूसरे मामले में, ग्राहक जो भी मांगता है, वह थोड़े समय में उपलब्ध होगा, व्यावहारिक रूप से भी दोनों मामलों में समान है। विलंबता कम होगी, लेकिन एक लागत पर: संदर्भ परिवर्तनों के कारण प्रदर्शन में कमी होगी, उस समय के हिस्से के रूप में समझा जाएगा जिसके दौरान सीपीयू समर्थन कार्यों के बजाय सीधे उत्पादक कार्य कर रहा है।

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

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

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

प्राथमिकताएं

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

कर्नेल आरटी (या कम विलंबता)

सामान्य गुठली के साथ समस्या यह है कि कार्यों को कहीं भी बाधित नहीं किया जा सकता है, आपको उन्हें कुछ निष्पादन बिंदुओं तक पहुंचने के लिए इंतजार करना होगा जहां उन्हें दूसरे पर स्विच करने के लिए रोका जा सकता है। यह परिचय देता है जिसे हम विलंबता कहते हैं।

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

मान लीजिए कि एक आरटी कर्नेल हमें आधे छिलके वाली झींगा छोड़ने की अनुमति देता है, यदि उस समय तत्काल आवश्यकता हो तो जितनी जल्दी हो सके एक जैतून को गड्ढे में डालना है, जबकि एक सामान्य कर्नेल में चिंराट को छीलने के लिए आवश्यक होगा।

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

RT कर्नेल का उपयोग करना कब महत्वपूर्ण है?

दो मामलों में:

1) जब हमें बहुत कम विलंबता की आवश्यकता होती है, यानी मशीन की बहुत तेज प्रतिक्रियाएं। सबसे स्पष्ट उदाहरण आभासी उपकरणों का प्रदर्शन है, जहां आपको मिडी कीबोर्ड पर एक कुंजी दबाने पर तुरंत ध्वनि की आवश्यकता होती है।

2) जब हमें बहुत सख्त प्राथमिकताओं की आवश्यकता होती है, अर्थात, हमारे उच्च प्राथमिकता वाले कार्य को दुनिया में किसी भी चीज से बाधित नहीं किया जाता है (जब तक कि विनाशकारी मामले में सीपीयू इतना अधिक भारित नहीं होता है कि यह 100% से अधिक उपयोग हो)। उदाहरण के लिए, हम अर्दोअर के साथ एक ऑडियो सत्र रिकॉर्ड कर रहे हैं और देखते हैं कि फ़ेडर संकेतक ऊपर और नीचे जाते हैं। इससे कोई फर्क नहीं पड़ता है कि जब तक हम माइक्रोफ़ोन से हार्ड डिस्क तक ध्वनि परिवहन बाधित नहीं करते हैं, तब तक हम फ़ाइटरों के ताज़ा फ्रेम को खो देते हैं। जब तक ऑडियो का एक भी नमूना नहीं खो जाता है तब तक आरटी कर्नेल फैडर रिफ्रेश को धीमा कर देगा।

उस ने कहा, सामान्य तौर पर नए गैर-आरटी कर्नेल ने अपने कार्य समयबद्धन और प्राथमिकता प्रबंधन में बहुत सुधार किया है। यदि आपके पास इसकी संभावनाओं की सीमा पर सीपीयू नहीं है (50% उपयोग के नीचे कहें) या यदि आपको नहीं लगता है कि समय-समय पर ध्वनि में एक छोटा माइक्रो कट (क्लिक) होता है (बहुत खूंखार xruns) एक कर्नेल सामान्य पूरी तरह से स्वीकार्य प्रदर्शन देता है।

क्या विलंबता उचित है?

व्यक्तिगत रूप से, 10 एमएस से कम कुछ भी मेरे लिए ठीक है और 20 एमएस से मैं पहले से ही देरी को स्पष्ट रूप से नोटिस करना शुरू कर देता हूं। मांगने वाले ज्यादा हैं।

स्थापना

उबंटू और डेरिवेटिव पर:

sudo apt-linux-headers-lowlatency स्थापित करें
sudo apt-linux-lowlatency स्थापित करें
सुडो अपडेट-ग्रब

स्टार्टअप पर आपके पास दोनों विकल्प होंगे (सामान्य कर्नेल और कम विलंबता एक)।

आर्क और डेरिवेटिव में:

यियोरट -एस लिनक्स-आरटी
सुडो अपडेट-ग्रब

Fuente: हिसपोसोन


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   जोर्डी फडज़ कहा

    बहुत पूर्ण और अच्छा
    व्याख्या की। हां, मैं संगीत उत्पादन के लिए लिनक्स का उपयोग कर रहा हूं
    एक साधारण डिस्ट्रो और मुझे कोई विलंबता समस्या नहीं है,
    ऑडियो खेलते समय प्रतिक्रिया तात्कालिक होती है। मेरे पास ज्यादा नहीं है
    ज्ञान, लेकिन मुझे लगता है कि लिनक्स में ऑडियो के लिए ड्राइवर हैं
    बहुत अच्छा मैं भी एक अच्छा पाने के लिए जैक की जरूरत नहीं है
    निष्पादन

  2.   कार्लोस कहा

    उत्कृष्ट लेख और स्पष्टीकरण बेहतर नहीं हो सकता है। चियर्स

  3.   कार्लेसा25 कहा

    हैलो: बहुत दिलचस्प, मैं इसे सीपीयू + जीपीयू गहन गणना कार्यों में परीक्षण करूंगा।

    जैसा कि आप Ubuntu 12.0 OS को पहले की तरह छोड़ सकते हैं, अर्थात, "linux-headers-lowlatency" की स्थापना रद्द करें। सादर।

  4.   थ ३ जी ०५3 कहा

    लेख के लिए आपका बहुत-बहुत धन्यवाद। यह जानना बहुत दिलचस्प है कि कम विलंबता कोर कैसे काम करती है। मुझे इसके बारे में और इसकी उपयोगिता जानने में दिलचस्पी रही है। चियर्स

  5.   ओलिवर कहा

    बढ़िया लेख! एक बार मैंने सुना है कि अधिक उत्तरदायी कीबोर्ड चलाने के लिए कम विलंबता कर्नेल की आवश्यकता होती है, लेकिन मुझे नहीं पता कि यह क्यों और कैसे करना है। सादृश्य बहुत स्पष्ट है।

  6.   साहस कहा

    हाँ साहब, पूरी तरह से सच है।

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

    या जरूरी नहीं कि आभासी उपकरणों के उपयोग में, लेकिन रिकॉर्डिंग में, इंटरफ़ेस विलंबता के माध्यम से होता है जो उपकरणों की व्याख्या करते समय हमें भ्रमित कर सकता है

  7.   रेयोनेंट कहा

    महान लेख, मुझे नहीं पता था कि कर्नेल में कम विलंबता का क्या मतलब है (हालांकि मैंने इसे राम मॉड्यूल में विलंबता से संबंधित किया है)

  8.   गेरार्डो अज़ोनोस कहा

    बहुत अच्छा ... मुझे बहुत अच्छा लगा।
    विषय को बदलते हुए, कोई जानता है कि वाईफाई (मेरी गोद का वायरलेस) की समस्या को कैसे हल किया जाए जो मुझे सार्वजनिक स्थानों पर काम नहीं करने देता है, संकेत बहुत कम है।
    मेरे पास ubuntu 11.10 है और मेरी गोद है: Dell inspiron n4110।
    मैं पहले से आपको धन्यवाद करता हूँ।

  9.   मिकेल मेयोल आई तूर कहा

    धन्यवाद, यह जोड़ने के लिए कि सबयोन इस कर्नेल को ले जाता है, डिफ़ॉल्ट रूप से 1000 हर्ट्ज पर संकलित किया जाता है, जो एफपीएस गेम सर्वरों के लिए और एफपीएस गेम के लिए खुद के लिए और किसी भी एक की मांग के लिए आदर्श है, सिवाय इसके कि वे डेटाबेस का उपयोग करते हैं, हालांकि साबायोन फ्रीसीव में मेरे लिए मुझे दूर उड़ा दिया ..

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

    यह उन्हें स्थापित करने, एक सप्ताह के लिए परीक्षण करने, कर्नेल में वापस लौटने की बात है - सामान्य - और यह देखते हुए कि यह कैसे चला गया है, और जिसे हम पसंद करते हैं, साथ ही साथ उन विशिष्ट कार्यों के लिए इसका उपयोग करते हैं जो उनमें से प्रत्येक बेहतर है।

  10.   गुस्तावो ट्रेपट कहा

    बहुत बढ़िया लेख, बहुत अच्छी तरह से समझाया गया।
    शुक्रिया.

  11.   Esteban कहा

    बहुत बढ़िया स्पष्टीकरण, बहुत-बहुत धन्यवाद, इसने मेरी बहुत मदद की very

  12.   कार्लोस मार्टिनेज कहा

    बहुत दिलचस्प लेख, यह मेरे लिए थोड़ा स्पष्ट हो गया है, हालांकि मुझे अभी भी इस बारे में संदेह है कि क्या एक नीच कर्नेल मुझे सूट करता है। मैं एक कर्नेल की विलंबता कैसे जान सकता हूं? चियर्स

  13.   जूलियो कहा

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