यह एक बेवकूफ सवाल हो सकता है, लेकिन sleep()
, wait()
, pause()
, कार्य कैसे काम करते हैं?नींद() कैसे काम करती है?
उत्तर
हम सोने के संचालन को एक अधिक अमूर्त दृष्टिकोण से देख सकते हैं: यह एक ऐसा ऑपरेशन है जो आपको किसी ईवेंट की प्रतीक्षा करने देता है।
प्रश्न में घटना तब ट्रिगर होती है जब sleep
आमंत्रण से गुजरने का समय नींद पैरामीटर से अधिक हो जाता है।
जब एक प्रक्रिया सक्रिय है (यानी: यह एक सीपीयू का मालिक है) यह एक सक्रिय में एक घटना के लिए इंतजार कर सकते हैं या एक निष्क्रिय रास्ते में:
एक सक्रिय इंतजार है जब एक प्रक्रिया को सक्रिय रूप से/स्पष्ट रूप से इंतजार कर रहा है घटना के लिए:
sleep(t): while not [event: elapsedTime > t ]: NOP // no operatior - do nothing
यह एक तुच्छ एल्गोरिथ्म है और जहां भी एक पोर्टेबल तरह से लागू किया जा सकता है, लेकिन मुद्दा यह है कि, जबकि अपनी प्रक्रिया को सक्रिय रूप से इंतज़ार कर रहा है यह अभी भी सीपीयू का मालिक है, अपनी प्रक्रिया नहीं करता है, क्योंकि यह (बर्बाद कर दिया है वास्तव में सीपीयू की जरूरत नहीं है, जबकि अन्य कार्यों को इसकी आवश्यकता हो सकती है)।
आमतौर पर यह केवल उन प्रक्रियाओं द्वारा किया जाना चाहिए जो निष्क्रिय रूप से प्रतीक्षा नहीं कर सकते (नीचे बिंदु देखें)।
एक निष्क्रिय प्रतीक्षा के बजाय आप को जगाने के लिए ईवेंट होने पर कुछ और करने के लिए पूछ रहा है, और अपने आप को निलंबित द्वारा किया जाता है (यानी: सीपीयू जारी):
sleep(t): system.wakeMeUpWhen([event: elapsedTime > t ]) release CPU
आदेश एक निष्क्रिय प्रतीक्षा लागू करने के लिए आपको कुछ बाहरी समर्थन की आवश्यकता है: आप अपने सीपीयू को रिलीज़ करने में सक्षम होना चाहिए और घटना होने पर आपको जागने के लिए किसी और से पूछना चाहिए।
यह एकल-कार्य डिवाइस (जैसे कई एम्बेडेड डिवाइस) पर संभव नहीं हो सकता है जब तक हार्डवेयर
wakeMeUpWhen
ऑपरेशन प्रदान नहीं करता है, क्योंकि सीपीयू को छोड़ने या जागने के लिए कोई भी नहीं है।x86 प्रोसेसर (और अधिकतर अन्य) HLT ऑपरेशन प्रदान करते हैं जो बाहरी बाधा को ट्रिगर होने तक CPU को नींद देता है। सीपीयू को शांत रखने के लिए इस तरह से ऑपरेटिंग सिस्टम कर्नेल भी सो सकते हैं।
धन्यवाद। मुझे नहीं पता था कि विभिन्न CPUs और OSes ने इसे अलग-अलग संभाला है ... – Blender
ये सिस्टम कॉल हैं। लिनक्स या ओपन बीएसडी जैसे ओपन-सोर्स कोड में कार्यान्वयन की तलाश करें।
उदाहरण हैं ['नैनोस्लीप (2)'] (http://linux.die.net/man/2/ नैनोस्ली) और ['नींद (3)'] (http://linux.die.net/man/3/sleep) लिंक के लिए लिनक्स –
+1 थेंक्स के लिए प्रलेखन ... :-) –
आधुनिक ऑपरेटिंग सिस्टम मल्टीटास्किंग हैं, जिसका अर्थ यह है कि यह एक साथ कई प्रोग्राम चलाता प्रतीत होता है। वास्तव में, केवल आपके कंप्यूटर (पारंपरिक रूप से, कम से कम) में केवल एक सीपीयू होता है, इसलिए यह एक ही समय में एक प्रोग्राम से केवल एक निर्देश निष्पादित कर सकता है।
ओएस जिस तरह से यह प्रकट करता है कि कई चीजें (आप वेब ब्राउज़ कर रहे हैं, संगीत सुन रहे हैं और फ़ाइलों को डाउनलोड कर रहे हैं) एक ही समय में प्रत्येक कार्य को बहुत कम समय के लिए निष्पादित कर रहा है (मान लें कि 10 एमएस)। यह तेज़ स्विचिंग यह प्रतीत होता है कि सामान एक साथ हो रहा है जब सब कुछ वास्तव में अनुक्रमिक रूप से हो रहा है। (बहु-कोर सिस्टम के लिए स्पष्ट अंतर के साथ)।
सवाल का जवाब के लिए के रूप में: नींद के साथ या प्रतीक्षा करने या तुल्यकालिक आईओ, कार्यक्रम मूल रूप से ओएस कह रहा है अन्य कार्यों को निष्पादित करने के लिए, और मुझे फिर से नहीं चला जब तक: एक्स एमएस बीत जाती, घटना किया गया है संकेतित, या डेटा तैयार है।
- 1. सी ++ - नींद() और सिने कैसे काम करती है?
- 2. विधि कैसे काम करती है?
- 3. इशारा पहचान कैसे काम करती है?
- 4. रेल पर रूबी कैसे काम करती है?
- 5. पायथन की कक्षा कैसे काम करती है?
- 6. एंड्रॉइड स्क्रीन कैसे काम करती है?
- 7. एक बेकार भाषा कैसे काम करती है?
- 8. web2py क्वेरी अभिव्यक्ति कैसे काम करती है?
- 9. एंड्रॉइड सपोर्ट लाइब्रेरी कैसे काम करती है?
- 10. एक श्रेणी कैसे काम करती है?
- 11. यह बहिष्कृत विधि कैसे काम करती है?
- 12. SQL क्वेरी कैसे काम करती है?
- 13. आरजीएस फ़ाइल कैसे काम करती है
- 14. एंड्रॉइड: एटीआर शैली कैसे काम करती है?
- 15. वुफोरिया छवि पहचान कैसे काम करती है?
- 16. पायथन की तलाश कैसे काम करती है?
- 17. गीथब वेबसाइट कैसे काम करती है (आर्किटेक्चर)?
- 18. आभासी विरासत कैसे काम करती है?
- 19. निम्न फ़ंक्शन परिभाषा कैसे काम करती है?
- 20. यह नियमित अभिव्यक्ति कैसे काम करती है?
- 21. कुकीज़ एएसपी.नेट में कैसे काम करती है?
- 22. ओपनजीएल - पारदर्शिता कैसे काम करती है?
- 23. एमईएफ की निर्देशिकासूची कैसे काम करती है?
- 24. एलजेएमए संपीड़न विधि कैसे काम करती है?
- 25. वर्चुअल मशीन कैसे काम करती है?
- 26. .ToString() विधि कैसे काम करती है?
- 27. थ्रेडस्टैटिक विशेषता कैसे काम करती है?
- 28. पायथन की रेंज कैसे काम करती है?
- 29. एचबीएस: प्रतिकृति कैसे काम करती है?
- 30. 'class 'संपत्ति कैसे काम करती है?
भाषा और ओएस पर निर्भर करता है। –
इसमें नाइट कैप शामिल है – kelloti
बिल्कुल बेवकूफ सवाल नहीं है! –