Win7 में I / O प्राथमिकता या प्रक्रिया को कैसे बदलें?


32

प्रोसेस एक्सप्लोरर किसी दिए गए थ्रेड की प्रभावी IO प्राथमिकता दिखाने में सक्षम है, लेकिन इसे बदल नहीं सकता है। IO प्राथमिकता समर्थन के रूप में देखना एक तुलनात्मक रूप से नई विशेषता है, अधिकांश कार्यक्रम अपनी स्वयं की प्राथमिकताओं को निर्धारित नहीं करते हैं। ऐसा प्रतीत होता है कि डिफ़ॉल्ट रूप से IO प्राथमिकता थ्रेड प्राथमिकता (प्रक्रिया प्राथमिकता के बजाय) से ली गई है, जिसे प्रोसेस एक्सप्लोरर या तो संशोधित नहीं कर सकता है।

क्या कोई अन्य उपकरण हैं जो मुझे किसी दिए गए धागे की IO प्राथमिकता को बदलने में मदद कर सकते हैं / किसी प्रक्रिया के सभी धागे?


Stack Overflow पर लगभग एक ही सवाल है: stackoverflow.com/questions/301290/…
Mehper C. Palavuzlar

3
@ [मेहपर सी। पलुवज़लर] यह सच है, लेकिन यह मेरे द्वारा विकसित सॉफ्टवेयर के लिए नहीं है - मैं तीसरे पक्ष के सॉफ़्टवेयर पर ऐसा करने के लिए तैयार उपकरण की तलाश कर रहा हूं।
रोमनस्टेड

जवाबों:


11

रेडी-मेड टूल

प्रक्रिया I / O प्राथमिकताओं को सेट करने के लिए एक तृतीय-पक्ष उपकरण, या तो मैन्युअल उपयोगकर्ता कार्रवाई या स्वचालन और दृढ़ता से, प्रक्रिया लास्सो होगी । यह लगभग किसी भी प्रक्रिया को सेट कर सकता है, और ऐसा दृढ़ता से, या नियमों द्वारा किया जा सकता है (जैसे जब ऐसा होता है, तो I / O प्राथमिकता को बदल दें)।

प्रोग्रामेटिक उत्तर

उत्तर एक NT मूल निवासी API, NTSetInformationProcess के लिए एक साधारण एपीआई कॉल है । इसे 2008 के DDK में वर्ग 'IoPriority' के रूप में परिभाषित किया गया है। NT6 में केवल दो स्तर समर्थित हैं: बहुत कम (पृष्ठभूमि) और सामान्य । तकनीकी रूप से 5 स्तर परिभाषित हैं - क्रिटिकल, हाई, नॉर्मल, लो और वेरी लो। पेजिंग संचालन के लिए महत्वपूर्ण स्तर आरक्षित है। दूसरों पर कोई डेटा नहीं।

हालांकि, मैं / हे प्राथमिकता उपयोग करने के लिए उचित तरीके से केवल Windows API के लिए एक कॉल के माध्यम से एक 'पृष्ठभूमि मोड' शुरू करने के लिए है SetProcessPriorityClass , PROCESSS_MODE_BACKGROUND_BEGIN की आपूर्ति। यह एक IDLE CPU प्राथमिकता वर्ग के साथ बहुत कम (पृष्ठभूमि) I / O प्राथमिकता का उपयोग करने का कारण होगा । जब किया जाता है, तो PROCESS_MODE_BACKGROUND_END के माध्यम से वापस लौटें।

SetThreadPriority एपीआई भी विशिष्ट धागे के लिए यह एक ही पृष्ठभूमि मोड की अनुमति देगा। यहाँ आप THREAD_MODE_BACKGROUND_BEGIN / END की आपूर्ति करेंगे।


मैं विंडोज़ प्रोग्रामिंग और ओएस स्तर के सामान में नहीं हूं, लेकिन मैंने थ्रेड की प्राथमिकता को टक्कर देने के बारे में सुना है, सभी तरह से THREAD_PRIORITY_TIME_CRITICAL आपके कार्यक्रम या किसी भी कार्यक्रम के साथ संभव है? या यह अभी भी केवल आईओ प्राथमिकता है जिसे समायोजित किया जा सकता है, और थ्रेड सीपीयू प्राथमिकता नहीं है? मुझे लगता है कि बदलते IO प्राथमिकता CPU उपयोग के लिए बहुत अंतर नहीं होगा, है ना?
बार्लोप

हाँ। दोनों को सेट किया जा सकता है, और बना रह सकता है। कई अन्य चीजों को भी सेट किया जा सकता है, या नियमों के आधार पर गतिशील रूप से बदला जा सकता है (जैसे सीपीयू आत्मीयता)। I / O प्राथमिकता सीपीयू प्राथमिकता से अलग है, ठीक है।
dyasta

यह "तीसरे पक्ष के सॉफ़्टवेयर पर ऐसा करने के लिए तैयार उपकरण नहीं है।"
Cees टिमरमन

क्षमा करें, मुझे लगता है कि प्रश्न संपादित किया गया हो सकता है, जैसा कि स्पष्ट रूप से मैं एक प्रोग्रामेटिक पक्ष (संपादित नहीं) से उत्तर दे रहा था। प्रोसेस लैस्सो 'थर्ड-पार्टी सॉफ्टवेयर पर ऐसा करने के लिए तैयार उपकरण' है। बिट्सम डॉट कॉम
dyasta

23

मैंने इसे किसी को परेशान नहीं करते देखकर विकसित किया: https://sourceforge.net/projects/iopriority/ (खुला स्रोत)

यह प्रोग्राम किसी प्रक्रिया की I / O प्राथमिकता निर्धारित करने में सक्षम है, और सभी थ्रेड इससे तुरंत प्रभावित हो रहे हैं। प्रक्रियाओं के बजाय थ्रेड्स के साथ काम करने के लिए इसे संशोधित करना बहुत आसान है।


1
मैंने अभी देखा कि आप सर्वर 2012R2 पर एक उच्च प्राथमिकता के लिए एक प्रक्रिया को बदलने की अनुमति नहीं देते हैं।
jftuga

14

ProcessHacker एक GUI टूल है जो एक मनमानी प्रक्रिया की IO प्राथमिकता को बदल सकता है।


ऐसा क्यों लगता है कि कुछ रोसिनोविच ने किया था?
डैनियल मूसमेडर

1
@ डैनियलमोसेमडोर शायद यह प्रॉक्सएक्सपी और इसकी सीमाओं से प्रेरित था? मैंने व्यक्तिगत रूप से स्विच किया क्योंकि ProcExp ने 14. 14. लैपटॉप के बाद पूरी तरह से गलत CPU उपयोग को अपने लैपटॉप पर दिखाया।
RomanSt

1
इतना ही नहीं, ProcExp भी मेरी COMP, आदि को BSOD करने में सक्षम था?
डैनियल मूसमेडर

@ डैनियलमोसेडोर, हां, इसके अलावा यह वास्तव में हर तरह से ProcExp से अधिक है। थोड़ा अलग यूआई लेकिन वास्तव में बहुत सक्षम है।
रोमनस्ट

1

मैं PRIO नामक एक मुफ्त ऐप के लिए आंशिक हूं, जो कि एक बहुत छोटी (1 एमबी से कम) पदचिह्न के साथ एक प्रक्रिया प्राथमिकता सेवर (अन्य चीजों के बीच) है। स्थापना के बाद यह पृष्ठभूमि में चुपचाप चलता है जब तक आपको इसकी आवश्यकता नहीं होती है, और इसका इंटरफ़ेस सीधे विंडोज टास्क मैनेजर में बनता है, इसकी कार्यक्षमता का विस्तार करता है और इसे बनाता है जैसे कि जोड़े गए फीचर हमेशा टास्क मैनेजर का हिस्सा थे। जब आप टास्क मैनेजर में किसी प्रक्रिया को उसकी प्राथमिकता बदलने के इरादे से राइट-क्लिक करते हैं, तो PRIO की कुछ अतिरिक्त विशेषताएं स्पष्ट हो जाती हैं, क्योंकि आप न केवल प्रक्रिया की 'CPU प्राथमिकता' को बदल सकते हैं, बल्कि इसकी I / O प्राथमिकता को भी अपना प्रश्न मिटा सकते हैं) , और यदि आप चाहें तो नई सेटिंग्स को चुनना चुन सकते हैं। यह अंतिम बार ऐसा करता है कि हर बार उस प्रक्रिया (अर्थात उस कार्यक्रम) को चलाया जाता है, सीपीयू और आई / ओ दोनों प्रक्रिया प्राथमिकताएं निर्धारित करती हैं और आपके द्वारा सहेजे जाते हैं।

ऐप में अन्य विशेषताएं हैं जो विंडोज टास्क मैनेजर में विभिन्न टैब की कार्यक्षमता का विस्तार करती हैं। संस्करण 32- और 64-बिट सिस्टम दोनों के लिए मौजूद हैं, और ऐप व्यक्तिगत उपयोग के लिए मुफ्त है।


एक बेहतरीन ऐप की तरह लगता है। एक लिंक मिला?
स्टिजन डे विट

1
यदि आप PRIO से मतलब रखते हैं, तो यह कई अलग-अलग कंटेंट एग्रीगेटर्स (जैसे कि cnet) से उपलब्ध है, लेकिन सीधे डेवलपर की वेबसाइट से prnwatch.com/prio
माइक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.