उच्च के लिए प्रक्रिया प्राथमिकता निर्धारित करें: खतरनाक?


8

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

इसके अलावा, मैं शॉर्टकट लक्ष्य को बदलकर यह कैसे कर पाऊंगा? आज्ञा क्या है?


"सामान्य से ऊपर" (विंडोज़ 7) सेटिंग अधिक सुरक्षित है। यहाँ कुछ चर्चा ... stackoverflow.com/questions/1663993/…
Moab

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

जैसा कि उल्लेख किया गया है "रीयलटाइम" आवश्यक रूप से बुरा नहीं है जब तक आपकी प्रक्रिया अच्छी तरह से व्यवहार की जाती है और केवल तब ही चलती है जब इसकी आवश्यकता होती है और जब यह नहीं होता है तो सोता है, अन्यथा यह (और करेगा) अन्य कार्यों को पूरी तरह से चलने से रोकता है।
Mokubai

2
@ डेविड शवार्ट्ज, कटलर ने प्राथमिकता के उलट होने के कारण गतिरोध से बचने के लिए विंडोज अनुसूचक को डिजाइन किया। से support.microsoft.com/kb/96418 , "Windows NT अनुसूचक हल इस समस्या को बेतरतीब ढंग से (इस मामले कम प्राथमिकता लॉक-धारकों में) थ्रेड चलाने के लिए तैयार कर रहे हैं की प्राथमिकता को बढ़ाने से। कम प्राथमिकता धागे काफी देर तक चलाने उनके लॉक को जाने देने के लिए (महत्वपूर्ण अनुभाग से बाहर निकलें), और उच्च प्राथमिकता वाले थ्रेड को लॉक वापस मिल जाता है। यदि कम-प्राथमिकता वाले थ्रेड को पहली बार अपने लॉक को खाली करने के लिए पर्याप्त सीपीयू समय नहीं मिलता है, तो उसे एक और मौका मिलेगा। अगले शेड्यूलिंग दौर पर। ”
निकोल हैमिल्टन

@Nicole Hamilton तो इसीलिए कभी-कभी एक प्रोग्राम कुछ उदाहरणों को एक बार में खोल देगा अगर वह पहले क्लिक पर नहीं खुला (और आपने कुछ बार क्लिक किया), तो उच्च भार के कारण?
साइमन वेर्बेके

जवाबों:


6

रीयलटाइम जरूरी "नहीं-नहीं" है। यह सिर्फ सीपीयू चक्रों से बाहर अन्य प्रक्रियाओं को भूखा कर सकता है। कुछ एप्लिकेशन इसे संभाल नहीं सकते हैं। इसका कुछ आप के साथ प्रयोग करना होगा।

उच्च एक समस्या से कम होना चाहिए। हालाँकि, आपको अभी भी अपने सिस्टम पर नजर रखने की जरूरत है कि क्या सभी एप्लिकेशन अच्छा व्यवहार कर रहे हैं।

कमांड लाइन के माध्यम से प्रक्रिया को कैसे बदलना है, जिसे आप शॉर्टकट में डाल सकते हैं:

http://support.microsoft.com/kb/191771


1
विंडोज पर, यह बहुत आसानी से (टास्क मैनेजर सहित) अन्य प्रक्रियाओं को भूखा करता है
user1686

3
यह सब आपके सिस्टम पर निर्भर करता है। सीपीयू इस प्रक्रिया को कैसे गहन करता है, इस पर निर्भर करते हुए कि एक रियलिटी आत्मीयता ठीक है। Im अभी कोई समस्या नहीं के साथ realtime में एक प्रक्रिया चल रही है। इसके अलावा, यह वास्तविक समय में प्राथमिकता तय करते हुए एक प्रोसेसर को एक आत्मीयता स्थापित करने में मदद कर सकता है।
सेल्ट्री

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

3

मैं कहूंगा कि यह निर्भर करता है। यदि आपके कंप्यूटर पर केवल एक कोर / सीपीयू है, और यह एक सीपीयू-गहन कार्य है, तो मैं इसे रियलटाइम पर सेट नहीं करूंगा। उच्च ठीक हो सकता है, लेकिन इसका प्रयोग करने की आवश्यकता है।

यदि आपके पास कई कोर हैं, और प्रक्रिया एकल थ्रेडेड है: आगे बढ़ें, इसे सेट करें हालांकि आप चाहते हैं। आपके अन्य कोर तब भी मुक्त होंगे, जब एक कोर पूरे समय 100% लोड पर हो।

यदि आपके पास कई कोर हैं और प्रक्रिया बहु थ्रेडेड है: यह निर्भर करेगा कि क्या सभी थ्रेड्स में 100% लोड होगा। कुछ कार्यक्रमों में एक 'प्रबंधक' धागा होता है जो अन्य थ्रेड्स के लिए काम करता है, लेकिन स्वयं बहुत प्रसंस्करण नहीं करता है। यह एक कोर को लगभग मुफ्त छोड़ देगा और इस तरह उच्च या वास्तविक समय की प्राथमिकता के लिए अनुमति देगा।

अन्य कार्यक्रम सभी कोर में लेने की कोशिश करेंगे। इस मामले में उच्च ठीक हो सकता है, लेकिन इसे प्रयोग करने की आवश्यकता है।

यहां तक ​​कि अन्य लोग केवल कोर की एक विशेष संख्या लेंगे और उपलब्ध सभी कोर का उपयोग नहीं कर सकते हैं। इस मामले में उच्च या वास्तविक समय की प्राथमिकता ठीक होनी चाहिए।

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


+1 अच्छा बिंदु यह है कि एक सिंगल-थ्रेडेड ऐप मल्टी-कोर मशीन पर कोई समस्या नहीं है, चाहे कोई भी कंप्यूटर हो।
निकोल हैमिल्टन

हालांकि, यह मत भूलो कि चेतावनी दी गई थी, [मुख्य रूप से] एकल पिरोया उच्च प्राथमिकता वाली प्रक्रियाएं - भले ही वे केवल एक ही कोर को प्रभावित करते हैं - एक असामान्य राशि के लिए वैश्विक प्रणाली तुल्यकालन ताले पकड़ सकते हैं।
dyasta

1

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


0

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

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

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

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