क्यों ओएस डिजाइन बिजली की खपत को कम करने में सक्षम है?


11

मैंने पढ़ा है कि एंड्रॉइड और आईओएस जैसे ओएस किसी भी तरह बैटरी जीवन को बेहतर बनाने के लिए अनुकूलित हैं।

मेरी समझ यह है कि सीपीयू एक निश्चित समय में एक निश्चित संख्या में संचालन को अंजाम देता है, इसलिए मुझे लगता है कि आप आवश्यक संचालन की संख्या को कम करके अनुप्रयोगों को गति दे सकते हैं, लेकिन चूंकि सीपीयू अभी भी वाई समय में एक्स संचालन करेगा , जो नहीं करना चाहिए शक्ति को प्रभावित?

इसके अलावा, यदि कोई प्रक्रिया अधिक रैम पर कब्जा करती है, तो क्या यह अधिक बिजली की खपत करता है?

जवाबों:


15

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

बैटरी से चलने वाले उपकरणों के लिए अनुकूलित सीपीयू कई कार्यात्मक घटकों से बना होता है, जिनमें से प्रत्येक की अपनी घड़ी होती है (उदाहरण: एआरएम कोर्टेक्स ए 8 )। जब एक घटक निष्क्रिय होता है, तो ऑपरेटिंग सिस्टम इसे बंद कर सकता है (या इसकी घड़ी को कम कर सकता है), जो बिजली बचाता है। उदाहरण के लिए, कई मल्टीकोर सीपीयू (जैसे कि उच्च-अंत वाले मोबाइल उपकरणों में), प्रत्येक कोर को अलग से चालू या बंद किया जा सकता है। एआरएम इस खेल में विशेष रूप से अच्छा है, यही कारण है कि अधिकांश स्मार्टफोन में एआरएम सीपीयू हैं।

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

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

बिजली की खपत को कम रखने के लिए अनुप्रयोगों में उनका हिस्सा होता है: उन्हें ऑपरेटिंग सिस्टम को अपनी चीज करने की अनुमति देनी चाहिए। सबसे खराब बात जो एक आवेदन कर सकता है वह है मतदान - जैसे लूप चलाना while (not_ready()) {}। यहां तक ​​कि एक छोटी सी देरी का परिचय देना भी while (not_ready()) {usleep(100);}मदद नहीं करता है क्योंकि यह प्रोसेसर को कम-पावर मोड में जाने के लिए पर्याप्त समय की अनुमति नहीं देता है, या यदि ऐसा होता है, तो प्रत्येक अपूर्ण जागने का अर्थ है बर्बाद ऊर्जा। इस प्रकार ऑपरेटिंग सिस्टम API को डिज़ाइन किया जाना चाहिए ताकि एप्लिकेशन को कभी भी मतदान करने की आवश्यकता न हो, लेकिन इसके बजाय किसी प्रकार के ईवेंट तंत्र की सदस्यता ले सकते हैं और तब तक निष्क्रिय रह सकते हैं जब तक कि वे किसी प्रासंगिक ईवेंट के बारे में सूचित न कर दें। बदले में अनुप्रयोगों को ऐसे तंत्रों का लाभ उठाने की आवश्यकता होती है, इसलिए पूरे सॉफ़्टवेयर स्टैक के डिज़ाइन का बिजली की खपत पर प्रभाव पड़ता है।

आप इंटेल के पावरटॉप उपयोगिता के साथ अपने पीसी की बिजली की खपत के लिए क्या जिम्मेदार हैं, इसके बारे में कुछ जानकारी प्राप्त कर सकते हैं । स्मार्टफ़ोन में आमतौर पर यह देखने का एक तरीका होता है कि बिजली के अनुप्रयोगों का कितना उपभोग हो रहा है। आवेदन द्वारा बिजली की खपत के लिए लेखांकन मुश्किल है: यदि एक घटक दो अनुप्रयोगों के लिए उठता है, तो जागने का समय उनमें से एक के लिए कुछ हद तक मनमाने ढंग से या न तो हो सकता है; बाह्य उपकरणों की बिजली की खपत को भी आसानी से जिम्मेदार अनुप्रयोग को आसानी से ट्रैक नहीं किया जा सकता है।

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


4

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

प्रत्येक डिवाइस के लिए एक अनुरोध के बाद सो जाने के लिए उपयोगकर्ता एप्लिकेशन के लिए एक रास्ता होना चाहिए और फिर परिणाम तैयार होने पर ही फिर से जागना चाहिए।

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

मैं इस भाग के बारे में कम जानता हूं, लेकिन मुझे लगता है कि प्रोसेसर कोर को जाग्रत किए बिना दोहराने के लंबे समय के तारों को संभालने के लिए डीएमए (डायरेक्ट मेमोरी एक्सेस) नियंत्रकों का उपयोग करने के रचनात्मक तरीके भी हो सकते हैं।


3

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

आधुनिक हार्डवेयर बिजली की खपत को कम करने के कई तरीके प्रदान करते हैं, जैसे कि

  • अप्रयुक्त बाह्य उपकरणों और प्रोसेसर के भाग को बंद करना (अस्थायी बिंदु अंकगणितीय इकाइयाँ, प्रोसेसर कोर, ...)
  • कम इस्तेमाल किए जाने वाले हिस्सों की डाउन-क्लॉकिंग (प्रोसेसर कोर सहित)
  • वर्तमान घड़ी आवृत्ति के साथ फिट होने के लिए बिजली-आपूर्ति समायोजन (आप कभी-कभी सैकड़ों एमएए, मक्खी पर काम करने वाले वोल्टेज को संशोधित कर सकते हैं)

यदि एक प्रक्रिया अधिक रैम पर कब्जा कर लेती है, तो क्या यह अधिक बिजली की खपत करता है?

ज़रुरी नहीं। फिर भी, यदि आपके सिस्टम में 1GB DRAM है, लेकिन आप केवल 512MB का उपयोग करते हैं, तो कुछ मेमोरी कंट्रोलर के साथ, DRAM के रिफ्रेशिंग भाग को रोकना संभव है, इस प्रकार बिजली की खपत को कम किया जा सकता है। एलपीडीडीआर आंशिक क्षेत्र सेल्फ रिफ्रेश को सेल्फ-रिफ्रेश (जबकि प्रोसेसर बंद कर दिया जाता है, जो कि मोबाइल डिवाइस पर ज्यादातर समय सही होता है) में करने के लिए सपोर्ट करता है।

जैसा कि आप देख सकते हैं, आधुनिक आर्किटेक्चर पर बिजली की खपत को कम करने के कई तरीके हैं, लेकिन इसे संभालने के लिए ओएस की आवश्यकता होती है। कुछ सुविधाएँ, जैसे PASR, उपयोग करने के लिए बहुत मुश्किल हैं, इसके लिए OS पर स्मृति प्रबंधन को अनुकूलित करने, निलंबित / फिर से शुरू करने की प्रक्रियाओं को लागू करने के लिए बहुत काम करने की आवश्यकता होती है, ...


साइड नोट: जबकि जरूरी नहीं कि सीधे राम-भूखा प्रक्रिया से संबंधित हो, अधिक रैम उपयोग से कम फाइल सिस्टम कैशिंग हो सकती है जो ऊर्जा दक्षता (साथ ही प्रदर्शन) को नुकसान पहुंचा सकती है।
पॉल ए। क्लेटन

3

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

कल्पना कीजिए कि ओएस के पास एक खाली तैयार सूची है। यही है, यह उन कार्यों से बाहर चला गया है जो चलाने के लिए तैयार हैं (यह निष्क्रिय स्थिति में है)। कुछ प्रोसेसर (जैसे कि x86) का रुका हुआ निर्देश है कि ओएस प्रोसेसर को रोकने के लिए तब तक आह्वान कर सकता है जब तक कि यह बाहरी अवरोधन (जैसे कि टिक बाधा) से जाग न जाए। इस अवधि के दौरान, यह कम बिजली की खपत कर रहा है। टाइमर की सूची में झांक कर इस तकनीक को और बेहतर बनाया जा सकता है। यदि आप निष्क्रिय हैं और आप जानते हैं कि जल्द ही कोई कार्य टाइमर टिक से जा सकता है तो 100 टिक दूर होगा, टिक दर को अस्थायी रूप से संशोधित करने के लिए 100 बार धीमा कहा जा सकता है। इस तरह, प्रोसेसर कम ऊर्जा का अधिक समय तक खर्च कर सकता है क्योंकि उसे 100 टिक इंटरप्ट तक सेवा नहीं देनी होगी।

एक बार बाहरी रुकावट आने के बाद, टिक दर को पुनर्गणना करना होगा। यदि बाहरी रुकावट ने एक कार्य को तैयार किया, तो टिक दर वापस सामान्य हो जाती है। यदि नहीं, तो सोने के लिए टिकों की संख्या को नए (धीमा) टिक दर के साथ पुनर्गणना किया जाना चाहिए।

उम्मीद है की यह मदद करेगा।


2

अन्य उत्तरों में जोड़ने के लिए:
आपका प्रश्न iOS और Android को ऑपरेटिंग सिस्टम के रूप में मानता है, लेकिन "ऑपरेटिंग सिस्टम" उनमें से केवल एक हिस्सा है।
एंड्रॉइड और आईओएस दोनों फ्रेमवर्क हैं और इसमें कई हिस्से शामिल हैं जिन्हें वास्तविक ओएस का हिस्सा नहीं माना जाता है, लेकिन बिजली की खपत को कम करने में सक्रिय हैं।
उदाहरण के लिए, डिज़ाइन द्वारा एंड्रॉइड एप्लिकेशन डेवलपर्स को छिपी होने पर अपने राज्य को बचाने की अनुमति देता है, इसलिए सक्रिय रूप से उपयोग में नहीं होने पर प्रक्रियाओं को समाप्त किया जा सकता है और इस प्रकार तैयार थ्रेड्स की मात्रा को कम कर सकता है और कोर शटडाउन और घड़ी की दर में कटौती की अनुमति देता है।
"OS" में ऐसी विशेषताएं हैं जो अनुकूली चमक, वाई-फाई स्लीप स्टेट, क्लीनअप थ्रेड, शेड्यूल पूलिंग, एलईडी इंडिकेटर, सेलुलर स्टैंडबाय व्यवहार और अन्य पहलुओं को सेट करती हैं जो बिजली की खपत को काफी प्रभावित करती हैं।
इसके अलावा, कुछ मोबाइल प्लेटफ़ॉर्म अपने सीपीयू / जीपीयू उपयोग अनुपात के अनुकूलन पर कड़ी मेहनत कर रहे हैं, क्योंकि जीपीयू ग्राफिक्स पर अधिक अनुकूलित है और यह मोबाइल परिदृश्य के लिए एक अपेक्षाकृत नया अतिरिक्त है, ओएस के अधिक से अधिक ग्राफिक संबंधित भागों के लिए आगे बढ़ रहे हैं GPU, जो CPU से काम करता है, और CPU पावर ऑप्टिमाइज़ेशन का उपयोग करने की अनुमति देता है (और कई मामलों में, सिस्टम को पूरी तरह से गति भी देता है)।

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