Sleep (system call)
ایک کمپیوٹر پروگرام (عمل، ٹاسک، یا تھریڈ) سو سکتا ہے، جو اسے ایک مدت کے لیے غیر فعال حالت میں رکھتا ہے۔ آخر کار وقفہ ٹائمر کی میعاد ختم ہونا، یا سگنل یا رکاوٹ کی وصولی پروگرام کو دوبارہ شروع کرنے کا سبب بنتی ہے۔ استعمال ایک عام سلیپ سسٹم کال ایک پیرامیٹر کے طور پر وقت کی قدر لیتا ہے، جس میں عمل کو دوبارہ شروع کرنے سے پہلے کم سے کم وقت کی وضاحت کی جاتی ہے۔ پیرامیٹر عام طور پر سیکنڈ کی وضاحت کرتا ہے، حالانکہ کچھ آپریٹنگ سسٹم بہتر ریزولوشن فراہم کرتے ہیں، جیسے ملی سیکنڈ یا مائیکرو سیکنڈ۔ ونڈوز پر، سلیپ () فنکشن سونے کے لیے ملی سیکنڈ کی تعداد کا ایک واحد پیرامیٹر لیتا ہے۔ سلیپ () فنکشن kernel32.dll میں شامل ہے۔ فنکشن کی ریزولوشن موجودہ ٹائمر ریزولوشن سے زیادہ نہیں ہے، عام طور پر 16 ایم ایس لیکن کم از کم 1 ایم ایس پر، جو "میڈیا ٹائمر" اے پی آئی کے خاندان کے ذریعے سایڈست ہے۔ اعلی درستگی کے لیے، ایک مصروف لوپ اوور کا استعمال کرنا ضروری ہے، جیسے کہ گنولیب میں استعمال ہوتا ہے۔ یونکس جیسے اور دیگر پوزیکس آپریٹنگ سسٹمز پر، سلیپ () فنکشن کو سونے کے لیے سیکنڈ کی تعداد کے غیر دستخط شدہ عدد کی قسم کا واحد پیرامیٹر فراہم کرنا کہا جاتا ہے۔ ایک اعلی صحت سے متعلق ورژن فنکشن ہے اور اب فرسودہ ہے۔ پوزیکس توسیعی ورژن کے ذریعے گھڑی کے ذرائع کو منتخب کرنے کی بھی اجازت دیتا ہے۔ کے ایک ورژن کو سی پروگرامنگ زبان کا حصہ بننے کی تجویز پیش کی گئی تھی، لیکن اسے مسترد کر دیا گیا۔ اسی تجویز کا یو ٹی سی ٹائم حصہ سی 11 میں شامل کیا گیا تھا۔ ونڈوز اے پی آئی میں سی مثالیں: نیند (2 * 1000) ؛// یونیکس یا پوزیکس سسٹم کالز میں 2 سیکنڈ کے لیے سوئے: نیند (2) ؛// 2 سیکنڈ کے لیے سوئے کم سطح کی فعالیت نیند دھاگے یا عمل کو اپنے بقیہ ٹائم سلائس کو ترک کرنے اور مقررہ مدت کے لیے ناٹ رن ایبل حالت میں رہنے کا سبب بنتی ہے۔ اگرچہ عام طور پر کم سے کم مدت کی ضمانت ہوتی ہے، لیکن اس بات کی کوئی سخت ضمانت نہیں ہے کہ مخصوص وقت گزر جانے کے بعد دھاگہ فوری طور پر یا جلد ہی، یا یہاں تک کہ بالکل بھی چلے گا۔ یہ شیڈولر کی صوابدید پر منحصر ہے، اور تھریڈ کی ترجیحات اور عمل درآمد کی تفصیلات پر منحصر ہے جیسے کہ ٹائمر ریزولوشنز جب سلیپنگ تھریڈ دوبارہ چلے گا۔ پوزیکس سسٹمز پر، نینو سلیپ اور متعلقہ سسکلز سگنلز کے ذریعے رکاوٹ کے قابل ہوتے ہیں، جو نیند کا بقیہ وقت واپس کرتے ہیں۔ دوسری طرف سلیپ لائبریری فنکشن کو بہت سے پرانے سسٹمز پر الارم سسکل کے ذریعے لاگو کیا جاتا ہے، اس طرح یہ صرف سگنل فراہم کرکے کام کرتا ہے۔ سگنلز کی عدم موجودگی کی وجہ سے ونڈوز سلیپ فنکشن غیر رکاوٹ ہے (دھاگے یا اس کے عمل کو ختم کرنے کے علاوہ)، حالانکہ متعلقہ سلیپ ایکس فنکشن کو دھاگے کو انتباہی حالت میں رکھنے کے لیے استعمال کیا جا سکتا ہے، جس سے دھاگے کے سوتے ہوئے اے پی سی کالز کی جا سکتی ہیں۔ نیز، کسی دھاگے کو تکنیکی طور پر "رکاوٹ" بنایا جا سکتا ہے مثال کے طور پر۔ یہ عمل ایک مختلف دھاگے میں رعایت کی وجہ سے ختم ہو جاتا ہے۔ کچھ سسٹم پروگرام استعمال کرتے ہیں جو کبھی بھی ایونٹ لوپ کو انجام نہیں دیتے، ہر سائیکل کے آغاز میں سوتے ہیں اور انہیں بیدار کرنے کے لیے کسی واقعہ کا انتظار کرتے ہیں۔ ایک بار ایونٹ موصول ہونے کے بعد، پروگرام ایونٹ کی خدمت کرتا ہے، پھر اگلے ویٹ سائیکل کے آغاز پر واپس آتا ہے۔ دوسرے پروگرام وقتا فوقتا نیند میں جا کر اور ایک مخصوص وقفے کے بعد عمل درآمد دوبارہ شروع کر کے واقعات کے لیے رائے شماری کرتے ہیں۔ ایک بار عمل درآمد دوبارہ شروع ہونے کے بعد، پروگرام واقعات یا حیثیت میں تبدیلیوں کے لیے رائے شماری کرتا ہے، اور پھر سوتے وقت پیش آنے والی کسی بھی چیز کی خدمت کرتا ہے۔ تقریبات کی خدمت کرنے کے بعد، پروگرام پھر اگلے وقفے کے لیے دوبارہ سو جاتا ہے۔ اس قسم کے پروگراموں کے ذریعے بعض قسم کے دل کی دھڑکن کے واقعات یا زندہ رہنے کے اشارے پیدا کیے جا سکتے ہیں۔ چل رہے پروگرام یا کوڈ کے نفاذ کو سست کرنے کے لیے سلیپ () فنکشن کال کو مختصر مدت کے لیے بار بار کال کیا جا سکتا ہے۔ اس طریقے سے تھروٹلنگ کوڈ ہارڈ ویئر کو زیادہ گرم کرنے کے اثرات کو کم کرنے یا میراث کے پروگراموں کے لیے وقت کے مسائل کو آسان بنانے کے لیے ایک موٹا طریقہ کار فراہم کرتا ہے۔ سافٹ ویئر کی عمل درآمد کی رفتار کو کنٹرول کرنے کے لیے سائیکل ایمولیشن (ایمولیٹر کے ذریعے) کا فائدہ اٹھانے کے بجائے سائیکلنگ کی نیند اور دوڑنے کی حالتوں کا منفی پہلو یہ ہے کہ اگر بہت کم وقت جاگنے میں گزارا جائے، بہت زیادہ وقت سونے میں گزارا جائے، یا دونوں کا مجموعہ ہو تو انٹرایکٹو سافٹ ویئر ایک قابل ذکر ہچکچاہٹ حاصل کر لے گا۔ بے روک ٹوک نیند کی حالت ایک ایسی نیند کی حالت ہے جو فوری طور پر کسی سگنل کو نہیں سنبھالے گی۔ یہ صرف ویٹ اپ ریسورس کے دستیاب ہونے کے نتیجے میں یا اس انتظار کے دوران ٹائم آؤٹ ہونے کے بعد جاگ جائے گا (اگر سونے کے لیے مخصوص کیا گیا ہو)۔ یہ زیادہ تر ڈسک یا نیٹ ورک آئی او (ان پٹ/آؤٹ پٹ) کے انتظار میں ڈیوائس ڈرائیوروں کے ذریعے استعمال ہوتا ہے۔ جب عمل بلا رکاوٹ سو رہا ہو، نیند کے دوران جمع ہونے والے سگنلز اس وقت نظر آئیں گے جب عمل سسٹم کال یا ٹریپ سے واپس آئے گا۔ یونکس جیسے سسٹمز میں کمانڈ 'ps-l' کسی عمل کی بلاتعطل نیند کی حالت کے لیے کوڈ "D" کا استعمال کرتی ہے۔ اس طرح کے عمل کو سگکل کے ساتھ بھی ختم نہیں کیا جا سکتا اور ان سے چھٹکارا پانے کا واحد غیر جدید طریقہ سسٹم کو دوبارہ شروع کرنا ہے۔ سگنل سسٹم ٹائم سلیپ (کمانڈ) سلیپ موڈ ویٹ (سسٹم کال) حوالہ جات کا عمل (کمپیوٹنگ) تھریڈز (کمپیوٹنگ) بھی دیکھیں۔