स्लीप (सिस्टम कॉल): Difference between revisions
mNo edit summary |
m (→उपयोग) |
||
Line 8: | Line 8: | ||
विंडोज़ पर, <code>Sleep()</code> क्रिया विश्राम के लिए मिलीसेकंड की संख्या का एक एकल मापदंड लेता है। <code>Sleep()</code> e> क्रिया kernel32.dll. में सम्मिलित है।<ref>[http://msdn.microsoft.com/en-us/library/ms686298(VS.85).aspx MSDN Library Reference - Sleep()]</ref> | विंडोज़ पर, <code>Sleep()</code> क्रिया विश्राम के लिए मिलीसेकंड की संख्या का एक एकल मापदंड लेता है। <code>Sleep()</code> e> क्रिया kernel32.dll. में सम्मिलित है।<ref>[http://msdn.microsoft.com/en-us/library/ms686298(VS.85).aspx MSDN Library Reference - Sleep()]</ref> | ||
{{code|Sleep()}()}} क्रिया का वियोजन समायोज्य मीडिया समय अवधि एपीआई | {{code|Sleep()}()}} क्रिया का वियोजन समायोज्य मीडिया समय अवधि एपीआई की श्रेणी {{code|timeBeginPeriod()}}के माध्यम से वर्तमान समय अवधि, सामान्यतौर पर 16 एमएस लेकिन न्यूनतम 1 एमएस वियोजन से अधिक नहीं होती है। उच्च परिशुद्धता के लिए, व्यस्त लूप ओवर {{code|QueryPerformanceCounter()}}का उपयोग करना आवश्यक है,जैसे कि [[gnulib]] में उपयोग किया जाता है।<ref>{{cite web |title=winapi - Is there a Windows equivalent of nanosleep? |url=https://stackoverflow.com/questions/7827062/is-there-a-windows-equivalent-of-nanosleep |website=Stack Overflow}}</ref> | ||
'''<big><br />यूनिक्स</big>''' | '''<big><br />यूनिक्स</big>''' | ||
यूनिक्स-लाइक और अन्य [[POSIX|पोसिक्स]] प्रचालन तंत्र पर, <code>sleep()</code> क्रिया को विश्राम के लिए सेकंड की संख्या के असंकेतित पूर्णांक प्रकार का एकल मापदंड प्रदान करना कहा जाता है।<ref>{{Man|3p|sleep|Linux}}</ref> एक उच्च परिशुद्धता संस्करण {{code|nanosleep()}} क्रिया है और अब अप्रामाणित {{code|usleep}}है।<ref>{{Man|3p|nanosleep|Linux}}</ref> [[POSIX|पोसिक्स]] विस्तारित संस्करण के माध्यम से घड़ी स्रोतों {{code|clock_nanosleep()}} को चुनने की भी अनुमति देता है।<ref>{{Man|3p|clock_nanosleep|Linux}}</ref> | यूनिक्स-लाइक और अन्य [[POSIX|पोसिक्स]] प्रचालन तंत्र पर, <code>sleep()</code>क्रिया को विश्राम के लिए सेकंड की संख्या के असंकेतित पूर्णांक प्रकार का एकल मापदंड प्रदान करना कहा जाता है।<ref>{{Man|3p|sleep|Linux}}</ref> एक उच्च परिशुद्धता संस्करण {{code|nanosleep()}} क्रिया है और अब अप्रामाणित {{code|usleep}}है।<ref>{{Man|3p|nanosleep|Linux}}</ref> [[POSIX|पोसिक्स]] विस्तारित संस्करण के माध्यम से घड़ी स्रोतों {{code|clock_nanosleep()}}को चुनने की भी अनुमति देता है।<ref>{{Man|3p|clock_nanosleep|Linux}}</ref> | ||
{{code|clock_nanosleep()}}के एक संस्करण को [[सी प्रोग्रामिंग भाषा]] का हिस्सा बनने का प्रस्ताव दिया गया था, लेकिन इसे अस्वीकार कर दिया गया। उसी प्रस्ताव | {{code|clock_nanosleep()}}के एक संस्करण को [[सी प्रोग्रामिंग भाषा]] का हिस्सा बनने का प्रस्ताव दिया गया था, लेकिन इसे अस्वीकार कर दिया गया। उसी प्रस्ताव को UTC समय भाग C11 में जोड़ा गया था।<ref>{{cite web |last1=Kuhn |first1=Markus |title=आईएसओ सी के लिए आधुनिकीकृत एपीआई|url=https://www.cl.cam.ac.uk/~mgk25/time/c/ |website=www.cl.cam.ac.uk}}</ref> | ||
'''<big><br />सी उदाहरण</big>''' | '''<big><br />सी उदाहरण</big>''' | ||
Line 28: | Line 28: | ||
'''<big>निम्नस्तरीय कार्यक्षमता</big>''' | '''<big>निम्नस्तरीय कार्यक्षमता</big>''' | ||
विश्राम के कारण सूत्र या प्रक्रिया अपना शेष समय भाग छोड़ देती है और निर्दिष्ट अवधि के लिए नहीं चलने की स्थिति में रहती है। हालांकि सामान्य तौर पर न्यूनतम समय अवधि के लिए आश्वासित होती है, लेकिन इस बात का कोई सख्त आश्वासन नहीं है कि निर्दिष्ट समय बीत जाने के बाद सूत्र तुरंत या जल्द ही | विश्राम के कारण सूत्र या प्रक्रिया अपना शेष समय भाग छोड़ देती है और निर्दिष्ट अवधि के लिए नहीं चलने की स्थिति में रहती है। हालांकि सामान्य तौर पर न्यूनतम समय अवधि के लिए आश्वासित होती है, लेकिन इस बात का कोई सख्त आश्वासन नहीं है कि निर्दिष्ट समय बीत जाने के बाद सूत्र तुरंत या जल्द ही या निश्चित तौर पर सम्पादित होगा। विश्राम सूत्र फिर से कब चलेगा, यह अनुसूचक के विवेक, सूत्र प्राथमिकताओं और कार्यान्वयन विवरण जैसे समय अवधि वियोजन पर निर्भर करता है। | ||
[[POSIX|पोसिक्स]] सिस्टम पर, नैनोस्लीप और संबंधित सिस्कल संकेत द्वारा बाधित होते हैं, जिससे शेष विश्राम का समय वापस आ जाता है। दूसरी ओर, विश्राम लाइब्रेरी क्रिया, कई पुराने तंत्रो पर संकेत सिस्कल के माध्यम से कार्यान्वित किया जाता है, इस प्रकार यह केवल संकेत वितरित करके काम करता है। विंडोज विश्राम क्रिया संकेत की अनुपस्थिति (सूत्र या इसकी प्रक्रिया समाप्त होने के अलावा) के कारण गैर-बाधित है, हालांकि संबंधित स्लीप एक्स क्रिया का उपयोग सूत्र को जागरूक स्थिति में रखने के लिए किया जा सकता है, जिससे सूत्र के विश्राम के दौरान एपीसी कॉल की जा सकती है। साथ ही, किसी स्थिति में सूत्र तकनीकी रूप से बाधित हो सकता है उदाहरण के लिए, प्रक्रिया किसी भिन्न सूत्र में अपवाद के कारण समाप्त हो जाती है। | [[POSIX|पोसिक्स]] सिस्टम पर, नैनोस्लीप और संबंधित सिस्कल संकेत द्वारा बाधित होते हैं, जिससे शेष विश्राम का समय वापस आ जाता है। दूसरी ओर, विश्राम लाइब्रेरी क्रिया, कई पुराने तंत्रो पर संकेत सिस्कल के माध्यम से कार्यान्वित किया जाता है, इस प्रकार यह केवल संकेत वितरित करके काम करता है। विंडोज विश्राम क्रिया संकेत की अनुपस्थिति (सूत्र या इसकी प्रक्रिया समाप्त होने के अलावा) के कारण गैर-बाधित है, हालांकि संबंधित स्लीप एक्स क्रिया का उपयोग सूत्र को जागरूक स्थिति में रखने के लिए किया जा सकता है, जिससे सूत्र के विश्राम के दौरान एपीसी कॉल की जा सकती है। साथ ही, किसी स्थिति में सूत्र तकनीकी रूप से बाधित हो सकता है उदाहरण के लिए, प्रक्रिया किसी भिन्न सूत्र में अपवाद के कारण समाप्त हो जाती है। | ||
Line 37: | Line 37: | ||
अन्य [[कंप्यूटर प्रोग्राम]] समय-समय पर विश्राम के लिए जाकर और एक विशिष्ट समय अंतराल के बाद निष्पादन फिर से शुरू करके संकेतो के लिए [[मतदान (कंप्यूटर विज्ञान)|समर्थन]] करते हैं। एक बार जब निष्पादन फिर से शुरू हो जाता है, तो प्रोग्राम संकेतो या स्थिति में बदलाव के लिए सर्वेक्षण करता है, और फिर विश्राम करते हुए सभी सेवाओं को सम्पादित करता है। संकेतो के संपादन के बाद, प्रोग्राम अगले समय अंतराल के लिए फिर से विश्राम अवस्था में जाता है। इस प्रकार के [[कंप्यूटर प्रोग्राम|प्रोग्राम]] द्वारा कुछ प्रकार के [[ निगरानी घड़ी |वॉचडॉग]] संकेत या संचालित रहने के संकेत उत्पन्न किए जा सकते हैं। | अन्य [[कंप्यूटर प्रोग्राम]] समय-समय पर विश्राम के लिए जाकर और एक विशिष्ट समय अंतराल के बाद निष्पादन फिर से शुरू करके संकेतो के लिए [[मतदान (कंप्यूटर विज्ञान)|समर्थन]] करते हैं। एक बार जब निष्पादन फिर से शुरू हो जाता है, तो प्रोग्राम संकेतो या स्थिति में बदलाव के लिए सर्वेक्षण करता है, और फिर विश्राम करते हुए सभी सेवाओं को सम्पादित करता है। संकेतो के संपादन के बाद, प्रोग्राम अगले समय अंतराल के लिए फिर से विश्राम अवस्था में जाता है। इस प्रकार के [[कंप्यूटर प्रोग्राम|प्रोग्राम]] द्वारा कुछ प्रकार के [[ निगरानी घड़ी |वॉचडॉग]] संकेत या संचालित रहने के संकेत उत्पन्न किए जा सकते हैं। | ||
किसी चल रहे प्रोग्राम या कोड के निष्पादन को धीमा करने के लिए क्रिया <code>sleep()</code>कॉल को थोड़े समय के लिए बार-बार कॉल किया जा सकता है। इस तरीके से थ्रॉटलिंग कोड ओवरहीटिंग हार्डवेयर के प्रभावों को कम करने के लिए एक अव्यवस्थित तंत्र प्रदान करता है<ref>{{cite web |url=http://mion.faireal.net/BES/ |author=mion |title=BES – Battle Encoder Shirase 1.6.3 (stable) & 1.7.4 for Windows 7/XP/2000 |date=2016-12-06 |website=mion.faireal.net |access-date=2017-02-09}}</ref> या पुराने प्रोग्राम के लिए समय संबंधी विषयों को आसान बनाता है। सॉफ़्टवेयर की निष्पादन गति को नियंत्रित करने के लिए चक्र अनुकरण का लाभ उठाने के बजाय साइकिल चलाने की नींद और चलने की स्थिति का नकारात्मक पक्ष यह है कि यदि बहुत कम समय जागते हुए बिताया जाता है, बहुत अधिक समय विश्राम में बिताया जाता है, या इंटरैक्टिव सॉफ़्टवेयर उल्लेखनीय हकलाना प्राप्त कर लेगा। दोनों का संयोजन.<ref>{{cite web |url=https://github.com/opsengine/cpulimit/blob/master/README.md |last=Marletta |first=Angelo |title=सीपीयू सीमा|date=2015-03-12 |website=GitHub |access-date=2017-02-09}}</ref> | |||
'''<big><br />निर्बाध नींद</big>''' | '''<big><br />निर्बाध नींद</big>''' |
Revision as of 21:44, 15 August 2023
कंप्यूटर प्रोग्राम (प्रक्रिया, कार्य या सूत्र) जब कुछ समय तक कोई आदेश प्राप्त नहीं करता है तब कंप्यूटर प्रोग्राम कुछ समय के लिए निष्क्रिय स्थिति में हो जाता है जिसे विश्राम(स्लीप) अवस्था कहते है। अंततः अंतराल समय की समाप्ति, संकेत की प्राप्ति या किसी प्रकार के रुकावट के कारण प्रोग्राम का निष्पादन फिर से शुरू हो जाता है।
उपयोग
एक सामान्य विश्राम समय के मान को एक मापदंड के रूप में लेता है, जो निष्पादन को फिर से शुरू करने से पहले प्रक्रिया को विश्राम करने के लिए न्यूनतम समय निर्दिष्ट करता है। मापदंड सामान्य तौर पर सेकंड निर्दिष्ट करता है, हालांकि कुछ प्रचालन तंत्र बेहतर वियोजन जैसे मिलीसेकंड या माइक्रोसेकंड प्रदान करते हैं।
विंडोज़
विंडोज़ पर, Sleep()
क्रिया विश्राम के लिए मिलीसेकंड की संख्या का एक एकल मापदंड लेता है। Sleep()
e> क्रिया kernel32.dll. में सम्मिलित है।[1]
Sleep()}()
क्रिया का वियोजन समायोज्य मीडिया समय अवधि एपीआई की श्रेणीtimeBeginPeriod()
के माध्यम से वर्तमान समय अवधि, सामान्यतौर पर 16 एमएस लेकिन न्यूनतम 1 एमएस वियोजन से अधिक नहीं होती है। उच्च परिशुद्धता के लिए, व्यस्त लूप ओवरQueryPerformanceCounter()
का उपयोग करना आवश्यक है,जैसे कि gnulib में उपयोग किया जाता है।[2]
यूनिक्स
यूनिक्स-लाइक और अन्य पोसिक्स प्रचालन तंत्र पर, sleep()
क्रिया को विश्राम के लिए सेकंड की संख्या के असंकेतित पूर्णांक प्रकार का एकल मापदंड प्रदान करना कहा जाता है।[3] एक उच्च परिशुद्धता संस्करण nanosleep()
क्रिया है और अब अप्रामाणित usleep
है।[4] पोसिक्स विस्तारित संस्करण के माध्यम से घड़ी स्रोतों clock_nanosleep()
को चुनने की भी अनुमति देता है।[5]
clock_nanosleep()
के एक संस्करण को सी प्रोग्रामिंग भाषा का हिस्सा बनने का प्रस्ताव दिया गया था, लेकिन इसे अस्वीकार कर दिया गया। उसी प्रस्ताव को UTC समय भाग C11 में जोड़ा गया था।[6]
सी उदाहरण
विंडोज़ एपीआई में:
Sleep(2 * 1000); // Sleep for 2 seconds
यूनिक्स या पोसिक्स सिस्टम कॉल में:
sleep(2); // Sleep for 2 seconds
निम्नस्तरीय कार्यक्षमता
विश्राम के कारण सूत्र या प्रक्रिया अपना शेष समय भाग छोड़ देती है और निर्दिष्ट अवधि के लिए नहीं चलने की स्थिति में रहती है। हालांकि सामान्य तौर पर न्यूनतम समय अवधि के लिए आश्वासित होती है, लेकिन इस बात का कोई सख्त आश्वासन नहीं है कि निर्दिष्ट समय बीत जाने के बाद सूत्र तुरंत या जल्द ही या निश्चित तौर पर सम्पादित होगा। विश्राम सूत्र फिर से कब चलेगा, यह अनुसूचक के विवेक, सूत्र प्राथमिकताओं और कार्यान्वयन विवरण जैसे समय अवधि वियोजन पर निर्भर करता है।
पोसिक्स सिस्टम पर, नैनोस्लीप और संबंधित सिस्कल संकेत द्वारा बाधित होते हैं, जिससे शेष विश्राम का समय वापस आ जाता है। दूसरी ओर, विश्राम लाइब्रेरी क्रिया, कई पुराने तंत्रो पर संकेत सिस्कल के माध्यम से कार्यान्वित किया जाता है, इस प्रकार यह केवल संकेत वितरित करके काम करता है। विंडोज विश्राम क्रिया संकेत की अनुपस्थिति (सूत्र या इसकी प्रक्रिया समाप्त होने के अलावा) के कारण गैर-बाधित है, हालांकि संबंधित स्लीप एक्स क्रिया का उपयोग सूत्र को जागरूक स्थिति में रखने के लिए किया जा सकता है, जिससे सूत्र के विश्राम के दौरान एपीसी कॉल की जा सकती है। साथ ही, किसी स्थिति में सूत्र तकनीकी रूप से बाधित हो सकता है उदाहरण के लिए, प्रक्रिया किसी भिन्न सूत्र में अपवाद के कारण समाप्त हो जाती है।
उपयोग
कुछ कंप्यूटर सॉफ़्टवेयर जो कभी भी संकेत लूप को निष्पादित नहीं करते हैं, प्रत्येक चक्र की शुरुआत में विश्राम अवस्था में जाते हैं और उन्हें जागरूक करने के लिए किसी संकेत की प्रतीक्षा करते हैं। एक बार जब कोई संकेत प्राप्त हो जाता है, तो प्रोग्राम उस संकेत को सम्पादित करता है, फिर अगले प्रतीक्षा चक्र की शुरुआत में वापस आ जाता है।
अन्य कंप्यूटर प्रोग्राम समय-समय पर विश्राम के लिए जाकर और एक विशिष्ट समय अंतराल के बाद निष्पादन फिर से शुरू करके संकेतो के लिए समर्थन करते हैं। एक बार जब निष्पादन फिर से शुरू हो जाता है, तो प्रोग्राम संकेतो या स्थिति में बदलाव के लिए सर्वेक्षण करता है, और फिर विश्राम करते हुए सभी सेवाओं को सम्पादित करता है। संकेतो के संपादन के बाद, प्रोग्राम अगले समय अंतराल के लिए फिर से विश्राम अवस्था में जाता है। इस प्रकार के प्रोग्राम द्वारा कुछ प्रकार के वॉचडॉग संकेत या संचालित रहने के संकेत उत्पन्न किए जा सकते हैं।
किसी चल रहे प्रोग्राम या कोड के निष्पादन को धीमा करने के लिए क्रिया sleep()
कॉल को थोड़े समय के लिए बार-बार कॉल किया जा सकता है। इस तरीके से थ्रॉटलिंग कोड ओवरहीटिंग हार्डवेयर के प्रभावों को कम करने के लिए एक अव्यवस्थित तंत्र प्रदान करता है[7] या पुराने प्रोग्राम के लिए समय संबंधी विषयों को आसान बनाता है। सॉफ़्टवेयर की निष्पादन गति को नियंत्रित करने के लिए चक्र अनुकरण का लाभ उठाने के बजाय साइकिल चलाने की नींद और चलने की स्थिति का नकारात्मक पक्ष यह है कि यदि बहुत कम समय जागते हुए बिताया जाता है, बहुत अधिक समय विश्राम में बिताया जाता है, या इंटरैक्टिव सॉफ़्टवेयर उल्लेखनीय हकलाना प्राप्त कर लेगा। दोनों का संयोजन.[8]
निर्बाध नींद
एक निर्बाध नींद की स्थिति एक नींद की स्थिति है जो तुरंत संकेत को संभाल नहीं पाएगी। के परिणामस्वरूप ही जागेगा एक प्रतीक्षित संसाधन उपलब्ध होना या टाइम-आउट के बाद उस प्रतीक्षा के दौरान होता है (यदि विश्राम के समय निर्दिष्ट किया गया हो)। इसका उपयोग अधिकतर डिस्क या नेटवर्क IO (इनपुट/आउटपुट) की प्रतीक्षा कर रहे डिवाइस ड्राइवरों द्वारा किया जाता है।
जब प्रक्रिया निर्बाध रूप से सो रही होती है, तो प्रक्रिया के सिस्टम कॉल या ट्रैप से लौटने पर नींद के दौरान जमा हुए संकेतों पर ध्यान दिया जाएगा।
यूनिक्स जैसी प्रणालियों में कमांड 'ps -l
' कोड का उपयोग करता हैD
किसी प्रक्रिया की निर्बाध नींद की स्थिति के लिए।[9] ऐसी प्रक्रियाओं को SIGKILL| से भी ख़त्म नहीं किया जा सकताSIGKILL
और उनसे छुटकारा पाने का एकमात्र गैर-परिष्कृत तरीका सिस्टम को रीबूट करना है।[10][11]
यह भी देखें
- संकेत (कंप्यूटिंग)
- सिस्टम समय
- नींद (आदेश)
- विश्राम मोड
- प्रतीक्षा करें (सिस्टम कॉल)
संदर्भ
- ↑ MSDN Library Reference - Sleep()
- ↑ "winapi - Is there a Windows equivalent of nanosleep?". Stack Overflow.
- ↑ Linux Manual –
- ↑ Linux Manual –
- ↑ Linux Manual –
- ↑ Kuhn, Markus. "आईएसओ सी के लिए आधुनिकीकृत एपीआई". www.cl.cam.ac.uk.
- ↑ mion (2016-12-06). "BES – Battle Encoder Shirase 1.6.3 (stable) & 1.7.4 for Windows 7/XP/2000". mion.faireal.net. Retrieved 2017-02-09.
- ↑ Marletta, Angelo (2015-03-12). "सीपीयू सीमा". GitHub. Retrieved 2017-02-09.
- ↑ "शीर्ष(1) - लिनक्स मैनुअल पेज". man7.org. 2016-12-12. Retrieved 2017-02-09.
- ↑ "निर्बाध निद्रा (डी) अवस्था में प्रक्रियाएँ". Novell. 2009-02-21. Retrieved 2017-02-09.
- ↑ Fusco, John (2007-03-06). लिनक्स प्रोग्रामर का टूलबॉक्स. Pearson Education. ISBN 9780132703048.