स्लीप (सिस्टम कॉल): Difference between revisions
mNo edit summary |
m (20 revisions imported from alpha:स्लीप_(सिस्टम_कॉल)) |
||
(16 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
जब कुछ समय तक [[कंप्यूटर प्रोग्राम]] ([[प्रक्रिया (कंप्यूटिंग)|प्रक्रिया]], [[कार्य (कंप्यूटर)|कार्य]] या [[थ्रेड (कंप्यूटर विज्ञान)|सूत्र]]) कोई आदेश प्राप्त नहीं करता है तब [[कंप्यूटर प्रोग्राम]] कुछ समय के लिए निष्क्रिय स्थिति में चला जाता है जिसे '''विश्राम'''(स्लीप) अवस्था कहते है। स्लीप अवस्था के दौरान अंतराल [[ घड़ी |समय]] की समाप्ति, किसी प्रकार के [[सिग्नल (कंप्यूटिंग)|संकेत]] की प्राप्ति या रुकावट के कारण प्रोग्राम का निष्पादन फिर से शुरू हो सकता है। | |||
[[कंप्यूटर प्रोग्राम]] ([[प्रक्रिया (कंप्यूटिंग)|प्रक्रिया]], [[कार्य (कंप्यूटर)|कार्य]] या [[थ्रेड (कंप्यूटर विज्ञान)| | |||
== उपयोग == | == उपयोग == | ||
एक सामान्य स्लीप | एक सामान्य स्लीप, समय के मान को एक मापदंड के रूप में लेता है जो निष्पादन को फिर से शुरू करने से पहले प्रक्रिया को स्लीप करने के लिए न्यूनतम समय निर्दिष्ट करता है। मापदंड सामान्य तौर पर सेकंड निर्दिष्ट करता है, हालांकि कुछ प्रचालन तंत्र बेहतर वियोजन जैसे मिलीसेकंड या माइक्रोसेकंड प्रदान करते हैं। | ||
=== विंडोज़ === | === विंडोज़ === | ||
विंडोज़ पर, <code>Sleep()</code> क्रिया | विंडोज़ पर, <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> | ||
<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 एमएस वियोजन होती है। उच्च परिशुद्धता के लिए,[[gnulib]] जैसे व्यस्त लूप ओवर {{code|QueryPerformanceCounter()}}का उपयोग करना आवश्यक है।<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>''' | ||
यूनिक्स- | <code>sleep()</code>क्रिया यूनिक्स-लाइक और अन्य [[POSIX|पोसिक्स]] प्रचालन तंत्र पर स्लीप के लिए सेकंड की संख्या के असंकेतित पूर्णांक प्रकार का एकल मापदंड प्रदान करती है।<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()}}के एक संस्करण को [[सी प्रोग्रामिंग भाषा]] का हिस्सा बनने का प्रस्ताव दिया गया था, लेकिन इसे अस्वीकार कर दिया गया। उसी प्रस्ताव को 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 22: | Line 21: | ||
Sleep(2 * 1000); // Sleep for 2 seconds | Sleep(2 * 1000); // Sleep for 2 seconds | ||
</syntaxhighlight> | </syntaxhighlight> | ||
यूनिक्स या POSIX सिस्टम कॉल में: | यूनिक्स या [[POSIX|पोसिक्स]] सिस्टम कॉल में: | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
sleep(2); // Sleep for 2 seconds | sleep(2); // Sleep for 2 seconds | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''<big>निम्नस्तरीय कार्यक्षमता</big>''' | |||
'''<big> | |||
स्लीप के कारण सूत्र या प्रक्रिया अपना शेष समय भाग छोड़ देती है और निर्दिष्ट अवधि के लिए | स्लीप के कारण सूत्र या प्रक्रिया अपना शेष समय भाग छोड़ देती है और निर्दिष्ट अवधि के लिए नहीं चलने की स्थिति में रहती है। हालांकि सामान्य तौर पर न्यूनतम समय अवधि के लिए आश्वासित होती है, लेकिन इस बात का कोई सख्त आश्वासन नहीं है कि निर्दिष्ट समय बीत जाने के बाद सूत्र तुरंत या जल्द ही या निश्चित तौर पर सम्पादित होगा। स्लीप सूत्र फिर से कब चलेगा, यह अनुसूचक के विवेक, सूत्र प्राथमिकताओं और कार्यान्वयन विवरण जैसे समय अवधि वियोजन पर निर्भर करता है। | ||
POSIX सिस्टम पर, नैनोस्लीप और संबंधित सिस्कल संकेत द्वारा बाधित होते हैं, जिससे शेष | [[POSIX|पोसिक्स]] सिस्टम पर, नैनोस्लीप और संबंधित सिस्कल संकेत द्वारा बाधित होते हैं, जिससे शेष स्लीप का समय वापस आ जाता है। दूसरी ओर, स्लीप लाइब्रेरी क्रिया, कई पुराने तंत्रो पर संकेत सिस्कल के माध्यम से कार्यान्वित किया जाता है, इस प्रकार यह केवल संकेत वितरित करके काम करता है। विंडोज स्लीप क्रिया संकेत की अनुपस्थिति (सूत्र या इसकी प्रक्रिया समाप्त होने के अलावा) के कारण गैर-बाधित है, हालांकि संबंधित स्लीप एक्स क्रिया का उपयोग सूत्र को जागरूक स्थिति में रखने के लिए किया जा सकता है, जिससे सूत्र के स्लीप के दौरान एपीसी कॉल की जा सकती है। साथ ही, किसी स्थिति में सूत्र तकनीकी रूप से बाधित हो सकता है उदाहरण के लिए, प्रक्रिया किसी भिन्न सूत्र में अपवाद के कारण समाप्त हो जाती है। | ||
== उपयोग == | == उपयोग == | ||
कुछ | कुछ कंप्यूटर सॉफ़्टवेयर जो कभी भी [[इवेंट लूप|संकेत लूप]] को निष्पादित नहीं करते हैं, प्रत्येक चक्र की शुरुआत में स्लीप अवस्था में जाते हैं और उन्हें जागरूक करने के लिए किसी संकेत की प्रतीक्षा करते हैं। एक बार जब कोई संकेत प्राप्त हो जाता है, तो प्रोग्राम उस संकेत को सम्पादित करता है, फिर अगले प्रतीक्षा चक्र की शुरुआत में वापस आ जाता है। | ||
अन्य | अन्य [[कंप्यूटर प्रोग्राम]] समय-समय पर स्लीप के लिए जाकर और एक विशिष्ट समय अंतराल के बाद निष्पादन फिर से शुरू करके संकेतो के लिए [[मतदान (कंप्यूटर विज्ञान)|समर्थन]] करते हैं। एक बार जब निष्पादन फिर से शुरू हो जाता है, तो प्रोग्राम संकेतो या स्थिति में बदलाव के लिए सर्वेक्षण करता है, और फिर स्लीप करते हुए सभी सेवाओं को सम्पादित करता है। संकेतो के संपादन के बाद, प्रोग्राम अगले समय अंतराल के लिए फिर से स्लीप अवस्था में जाता है। इस प्रकार के [[कंप्यूटर प्रोग्राम|प्रोग्राम]] द्वारा कुछ प्रकार के [[ निगरानी घड़ी |वॉचडॉग]] संकेत या संचालित रहने के संकेत उत्पन्न किए जा सकते हैं। | ||
किसी चल रहे प्रोग्राम या कोड के निष्पादन को धीमा करने के लिए क्रिया <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>''' | |||
एक अबाधित स्लीप की स्थिति एक ऐसी स्लीप की स्थिति है जो तुरंत संकेत को संभाल नहीं पाती है। यह केवल प्रतीक्षारत संसाधन उपलब्ध होने के परिणामस्वरूप या उस प्रतीक्षा के दौरान समय समाप्त होने के बाद ही जागृत होता है। इसका उपयोग अधिकतर डिस्क या नेटवर्क IO (निविष्ट/उत्पादन) की प्रतीक्षा कर रहे उपकरण संचालको द्वारा किया जाता है। | |||
जब प्रक्रिया अबाधित रूप से स्लीप अवस्था में होती है, तो प्रक्रिया के सिस्टम कॉल या ट्रैप से लौटने पर स्लीप के दौरान एकत्रित हुए संकेतों पर ध्यान दिया जाता है। | |||
यूनिक्स जैसी प्रणालियों में आदेश<nowiki>''</nowiki> किसी प्रक्रिया की अबाधित स्लीप की स्थिति के लिए <code>ps -l</code>कोड " का उपयोग करता है।<ref>{{cite web |url=http://man7.org/linux/man-pages/man1/top.1.html |title=शीर्ष(1) - लिनक्स मैनुअल पेज|date=2016-12-12 |website=man7.org |access-date=2017-02-09}}</ref> ऐसी प्रक्रियाओं को SIGKILL| से भी समाप्त नहीं किया जा सकता है और उनसे मुक्त करने का एकमात्र गैर-परिष्कृत तरीका तंत्र को पुन:प्रारंभ करना है।<ref>{{cite web |url=https://www.novell.com/support/kb/doc.php?id=7002725 |title=निर्बाध निद्रा (डी) अवस्था में प्रक्रियाएँ|date=2009-02-21 |website=Novell |access-date=2017-02-09}}</ref><ref>{{cite book |last=Fusco |first=John |date=2007-03-06 |title=लिनक्स प्रोग्रामर का टूलबॉक्स|publisher=Pearson Education |isbn=9780132703048}}</ref> | |||
'''<big><br />यह भी देखें</big>''' | |||
* संकेत (कंप्यूटिंग) | * संकेत (कंप्यूटिंग) | ||
* [[सिस्टम समय]] | * [[सिस्टम समय]] | ||
*[[नींद (आदेश)]] | *[[नींद (आदेश)]] | ||
* [[स्लीप मोड]] | * [[स्लीप मोड|स्लीप अवस्था]] | ||
* [[प्रतीक्षा करें (सिस्टम कॉल)]] | * [[प्रतीक्षा करें (सिस्टम कॉल)]] | ||
Line 68: | Line 62: | ||
[[Category: Machine Translated Page]] | [[Category: Machine Translated Page]] | ||
[[Category:Created On 09/08/2023]] | [[Category:Created On 09/08/2023]] | ||
[[Category:Vigyan Ready]] |
Latest revision as of 07:11, 16 October 2023
जब कुछ समय तक कंप्यूटर प्रोग्राम (प्रक्रिया, कार्य या सूत्र) कोई आदेश प्राप्त नहीं करता है तब कंप्यूटर प्रोग्राम कुछ समय के लिए निष्क्रिय स्थिति में चला जाता है जिसे विश्राम(स्लीप) अवस्था कहते है। स्लीप अवस्था के दौरान अंतराल समय की समाप्ति, किसी प्रकार के संकेत की प्राप्ति या रुकावट के कारण प्रोग्राम का निष्पादन फिर से शुरू हो सकता है।
उपयोग
एक सामान्य स्लीप, समय के मान को एक मापदंड के रूप में लेता है जो निष्पादन को फिर से शुरू करने से पहले प्रक्रिया को स्लीप करने के लिए न्यूनतम समय निर्दिष्ट करता है। मापदंड सामान्य तौर पर सेकंड निर्दिष्ट करता है, हालांकि कुछ प्रचालन तंत्र बेहतर वियोजन जैसे मिलीसेकंड या माइक्रोसेकंड प्रदान करते हैं।
विंडोज़
विंडोज़ पर, Sleep()
क्रिया स्लीप के लिए मिलीसेकंड की संख्या का एक एकल मापदंड लेता है। Sleep()
e> क्रिया kernel32.dll. में सम्मिलित है।[1]
Sleep()}()
क्रिया का वियोजन,सामान्यतौर पर एपीआई की श्रेणी 'समय साधन'timeBeginPeriod()
के माध्यम से वर्तमान समय अवधि, अधिकतम 16 एमएस लेकिन न्यूनतम 1 एमएस वियोजन होती है। उच्च परिशुद्धता के लिए,gnulib जैसे व्यस्त लूप ओवरQueryPerformanceCounter()
का उपयोग करना आवश्यक है।[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
कोड " का उपयोग करता है।[9] ऐसी प्रक्रियाओं को 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.