स्लीप (सिस्टम कॉल)

कंप्यूटर प्रोग्राम (प्रक्रिया, कार्य या तंतु) जब कुछ समय तक कोई आदेश प्राप्त नहीं करता है तब कंप्यूटर प्रोग्राम कुछ समय के लिए निष्क्रिय स्थिति में हो जाता है जिसे विश्राम(स्लीप) अवस्था कहते है। अंततः अंतराल समय की समाप्ति, संकेत (कंप्यूटिंग) की प्राप्ति या किसी प्रकार के रुकावट के कारण प्रोग्राम का निष्पादन फिर से शुरू हो जाता है।

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

विंडोज़
विंडोज़ पर,  क्रिया विश्राम के लिए मिलीसेकंड की संख्या का एक एकल मापदंड लेता है।   e> क्रिया kernel32.dll. में सम्मिलित है।

{{code|Sleep}}} क्रिया का वियोजन समायोज्य मीडिया समय अवधि एपीआई का श्रेणी timeBeginPeriodके माध्यम से वर्तमान समय अवधि, सामान्यतौर पर 16 एमएस लेकिन न्यूनतम 1 एमएस वियोजन से अधिक नहीं होती है। उच्च परिशुद्धता के लिए, व्यस्त लूप ओवर का उपयोग करना आवश्यक है QueryPerformanceCounter, जैसे कि gnulib में उपयोग किया जाता है।

 यूनिक्स 

यूनिक्स-लाइक और अन्य पोसिक्स प्रचालन तंत्र पर,   क्रिया को विश्राम के लिए सेकंड की संख्या के असंकेतित पूर्णांक प्रकार का एकल मापदंड प्रदान करना कहा जाता है। एक उच्च परिशुद्धता संस्करण  nanosleep क्रिया है और अब अप्रामाणित usleepहै। पोसिक्स विस्तारित संस्करण के माध्यम से घड़ी स्रोतों clock_nanosleep को चुनने की भी अनुमति देता है।

clock_nanosleepके एक संस्करण को सी प्रोग्रामिंग भाषा का हिस्सा बनने का प्रस्ताव दिया गया था, लेकिन इसे अस्वीकार कर दिया गया। उसी प्रस्ताव का UTC समय भाग C11 में जोड़ा गया था।

 सी उदाहरण 

विंडोज़ एपीआई में: यूनिक्स या पोसिक्स सिस्टम कॉल में:  निम्नस्तरीय कार्यक्षमता 

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

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

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

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

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

 निर्बाध नींद 

एक निर्बाध नींद की स्थिति एक नींद की स्थिति है जो तुरंत संकेत को संभाल नहीं पाएगी। के परिणामस्वरूप ही जागेगा एक प्रतीक्षित संसाधन उपलब्ध होना या टाइम-आउट के बाद उस प्रतीक्षा के दौरान होता है (यदि विश्राम के समय निर्दिष्ट किया गया हो)। इसका उपयोग अधिकतर डिस्क या नेटवर्क IO (इनपुट/आउटपुट) की प्रतीक्षा कर रहे डिवाइस ड्राइवरों द्वारा किया जाता है।

जब प्रक्रिया निर्बाध रूप से सो रही होती है, तो प्रक्रिया के सिस्टम कॉल या ट्रैप से लौटने पर नींद के दौरान जमा हुए संकेतों पर ध्यान दिया जाएगा।

यूनिक्स जैसी प्रणालियों में कमांड ' ' कोड का उपयोग करता है किसी प्रक्रिया की निर्बाध नींद की स्थिति के लिए। ऐसी प्रक्रियाओं को SIGKILL| से भी ख़त्म नहीं किया जा सकता और उनसे छुटकारा पाने का एकमात्र गैर-परिष्कृत तरीका सिस्टम को रीबूट करना है।

यह भी देखें

 * संकेत (कंप्यूटिंग)
 * सिस्टम समय
 * नींद (आदेश)
 * विश्राम मोड
 * प्रतीक्षा करें (सिस्टम कॉल)