2009-05-27 13 views
8

यह सिर्फ मुझे दूसरे दिन मारा। वास्तव में तब होता है जब मैं कंप्यूटर को स्टैंड-बाय या हाइबरनेट में जाने के लिए कहता हूं?स्टैंड-बाय और हाइबरनेशन के दौरान क्या होता है?

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

मैं दोनों सामान्य जिज्ञासा से बाहर इस पूछ रहा हूँ, बल्कि इसलिए भी कि मैं अगर यह कुछ मैं के बारे में जब मैं अपने आप को कार्यक्रम में सोचना चाहिए है आश्चर्य शुरू कर दिया।

उत्तर

6

आप याद रखना चाहिए कि ओएस (अनुसूचक) एक gazillion बार प्रत्येक दूसरे के बारे में अपने कार्यक्रम जमा। इसका मतलब है कि ऑपरेटिंग सिस्टम इसे फ्रीज करते समय आपका प्रोग्राम पहले से ही बहुत अच्छी तरह से काम कर सकता है। स्टैंड-बाय, हाइबरनेट और संदर्भ स्विचिंग के बीच, आपके दृष्टिकोण से, इसमें कोई अंतर नहीं है।

क्या अलग है कि आप एक लंबे समय के लिए जमे हुए किया जाएगा है। और यह एकमात्र चीज है जिसके बारे में आपको सोचना चाहिए। ज्यादातर मामलों में, यह एक समस्या नहीं होनी चाहिए।

आपके पास नेटवर्क कनेक्शन तो आप शायद यह फिर से स्थापित है, और इसी तरह के मुद्दों की आवश्यकता होगी है। लेकिन इसका मतलब सिर्फ सभी आईओ संचालन में त्रुटियों की जांच करना है, जो मुझे यकीन है कि आप पहले से ही कर रहे हैं ... :-)

+0

पर इसे प्लोन करता है यह एक बहुत अच्छा बिंदु है। इसके बारे में कभी सोचा नहीं! – Svish

+0

यह भी ध्यान रखें कि प्रिंसिपल स्टैंडबाय/हाइबरनेट में * सभी * हार्डवेयर को अपने पुराने राज्य (रैम, सीपीयू, ग्राफिक्स इत्यादि) में पुनर्स्थापित करना चाहिए, यह सभी हार्डवेयर के लिए काम नहीं कर सकता है। तो कुछ हार्डवेयर ठीक से "जागृत" नहीं हो सकते हैं। आम तौर पर यह केवल खराब ड्राइवरों के साथ होता है, लेकिन यह विशेष रूप से असामान्य हार्डवेयर (जैसे विशेष इंटरफ़ेस कार्ड) के साथ देखने के लिए कुछ है। – sleske

2

स्टैंड-बाय रैम में रखकर अपने "राज्य" को जीवित रखता है। नतीजतन यदि आप सत्ता खो देते हैं तो आप अपना संग्रहित "राज्य" खो देंगे।

लेकिन यह इसे प्राप्त करने में तेज़ी से बनाता है।

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

मुझे लगता है कि स्टैंड तक के साथ एक सीमा आप कितना रैम मिल गया है, लेकिन मैं जब यह मानक रैम से बाहर चलाता है यकीन है कि आभासी रैम स्टैंड-द्वारा द्वारा नियोजित किया जाना चाहिए हूँ। मैं इसे देख लूंगा और वापस आऊंगा!

+0

हम कंप्यूटर हाइबरनेट करते हैं, यह डिस्क पर रैम की सामग्री लिखता है। अगली बार जब आप बूट करते हैं, तो यह डिस्क से रैम की सामग्री को पुनर्स्थापित करता है। जब ओएस मानक रैम से बाहर चला जाता है, तो यह डिस्क पर सामान लिखता है, इसे पेजिंग कहा जाता है :) – Philippe

+0

और, AFAIK, पेजिंग तब होती है जब पीसी सामान्य रूप से चल रहा है (यदि आप रैम से बाहर हो जाते हैं) – Svish

+0

@ फिलिप - मैं भी येही कह रहा हूँ; हाइबरनेट आपकी रैम की सामग्री लेता है और एचडीडी – joshcomley

1

ACPI पर विकिपीडिया लेख में मौजूद विभिन्न पावर बचत मोड के बारे में विवरण शामिल है आधुनिक पीसी

मूल विचार प्रणाली की वर्तमान स्थिति कायम इसलिए जब मशीन आपरेशन में वापस लाया जाता है रखने के लिए, है, यह राज्य इस पर फिर से शुरू कर सकते हैं:

यहाँ मूल विचार है, मैं कैसे बातें समझने से मशीन को नींद/स्टैंडबाय/हाइबरनेशन आदि में डालने से पहले था। इसे अपने पीसी के लिए क्रमबद्धता के रूप में सोचें।

स्टैंडबाय में, कंप्यूटर रैम को बिजली खिलाएगा, क्योंकि मुख्य मेमोरी volatile memory है जिसके लिए refreshing को अपने राज्य पर रखने के लिए निरंतर refreshing की आवश्यकता है। इसका मतलब है कि हार्ड ड्राइव, सीपीयू, और अन्य घटकों को बंद कर दिया जा सकता है, जब तक कि डीआरएएम को अपनी सामग्री को गायब होने से मुक्त रखने के लिए पर्याप्त शक्ति हो।

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

इसे ध्यान में रखते

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

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

3

मेरा प्रारंभिक विचार यह है कि जब तक आपका प्रोग्राम और इसकी इको-सिस्टम स्टैंड-बाय या हाइबरनेशन पर चल रहे पीसी के भीतर निहित है, तब, फिर से शुरू करने पर आपके प्रोग्राम को प्रभावित नहीं किया जाना चाहिए।

हालांकि, अगर आप एक अलग मशीन तो हाइबरनेशन/स्टैंड पर होस्ट कुछ डेटाबेस में एक रिकॉर्ड को अपडेट करने का कहना है कि कर रहे हैं - द्वारा समय समाप्त माना जाएगा।

तो अपने कार्यक्रम "सत्ता स्थिति" में इस तरह के एक परिवर्तन पर निर्भर है कि आप के रूप में msdn

+0

msdn पर WM_POWERBROADCAST संदेश को नोट करने के लिए धन्यवाद! यदि किसी एप्लिकेशन को नेटवर्क कनेक्शन या कुछ पुनः स्थापित करने की आवश्यकता है तो बहुत उपयोगी हो सकता है =) – Svish

0

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

मुझे नहीं लगता कि आपके आवेदन को हाइबरनेशन (लेकिन मैं गलत हो सकता है) के बारे में अधिसूचित किया जा सकता है। आपको क्या करना चाहिए, जितना संभव हो सके गलती त्रुटि परिदृश्य (उदाहरण के लिए नेटवर्क कनेक्टिविटी का नुकसान)। और ध्यान दें कि उन त्रुटि परिदृश्य सामान्य ऑपरेशन के दौरान भी हो सकते हैं, न केवल हाइबरनेशन में जा रहे हैं ...

संबंधित मुद्दे