एचएलटी (x86 निर्देश)
x86 कंप्यूटर आर्किटेक्चर में,HLT
(रोकना) एक असेंबली भाषा निर्देश है जो केंद्रीय प्रसंस्करण इकाई (सीपीयू) को तब तक रोक देता है जब तक कि अगला बाहरी व्यवधान सक्रिय न हो जाए।[1] इंटरप्ट हार्डवेयर उपकरणों द्वारा सीपीयू को भेजे गए सिग्नल हैं जो उसे सचेत करते हैं कि एक घटना घटी है जिस पर उसे प्रतिक्रिया देनी चाहिए। उदाहरण के लिए, हार्डवेयर टाइमर नियमित अंतराल पर सीपीयू को व्यवधान भेजते हैं।
अधिकांश ऑपरेटिंग सिस्टम निष्पादित करते हैं HLT
जब तत्काल कोई काम नहीं करना हो तो प्रोसेसर को निष्क्रिय (सीपीयू) में डाल देना। उदाहरण के लिए, विंडोज़ एनटी में, यह निर्देश सिस्टम निष्क्रिय प्रक्रिया में चलाया जाता है। x86 प्रोसेसर पर, का opcode HLT
है 0xF4
.
x86 पर इतिहास
8086 के बाद के सभी x86 प्रोसेसर में था HLT
निर्देश, लेकिन 6.0 से पहले MS-DOS द्वारा इसका उपयोग नहीं किया गया था[2] और 1994 में Intel DX4 प्रोसेसर के रिलीज़ होने तक विशेष रूप से बिजली की खपत को कम करने के लिए डिज़ाइन नहीं किया गया था। MS-DOS 6.0 ने एक POWER.EXE प्रदान किया जिसे CONFIG.SYS में स्थापित किया जा सकता था और Microsoft के परीक्षणों में इसने 5% की बचत की।[3] पहले 100 मेगाहर्ट्ज डीएक्स चिप्स में से कुछ में एचएलटी स्थिति खराब थी, जिससे लिनक्स के डेवलपर्स को उन चिप्स पर चलने के लिए नो-एचएलटी विकल्प लागू करने के लिए प्रेरित किया गया,[4] लेकिन बाद के चिप्स में इसे ठीक कर दिया गया।
इंटेल ने तब से अतिरिक्त प्रोसेसर-उपज निर्देश पेश किए हैं। इसमे शामिल है:
PAUSE
SSE2 में स्पिन लूप के लिए अभिप्रेत है। उपयोक्ता स्थान के लिए उपलब्ध (कम-विशेषाधिकार प्राप्त अंगूठियाँ)।MONITOR
/MWAIT
थ्रेड सिंक्रोनाइज़ेशन के लिए SSE3 में।TPAUSE
(समयबद्ध विराम) औरUMONITOR
/UMWAIT
(यूजरस्पेस मॉनिटर/एमवेट)। उपयोक्तास्थान के लिए उपलब्ध.
प्रक्रिया
लगभग हर आधुनिक प्रोसेसर निर्देश सेट में एक निर्देश या स्लीप मोड शामिल होता है जो प्रोसेसर को तब तक रोक देता है जब तक कि अधिक काम करने की आवश्यकता न हो। इंटरप्ट-संचालित प्रोसेसर में, यह निर्देश सीपीयू को तब तक रोक देता है जब तक कोई बाहरी इंटरप्ट प्राप्त न हो जाए। अधिकांश आर्किटेक्चर पर, इस तरह के निर्देश को निष्पादित करने से प्रोसेसर को अपने बिजली के उपयोग और गर्मी उत्पादन को काफी कम करने की अनुमति मिलती है, यही कारण है कि इसे आमतौर पर सोने और निष्क्रिय होने के इंतजार में व्यस्त रहने के बजाय उपयोग किया जाता है। अधिकांश प्रोसेसर में, हॉल्टिंग (लूपिंग के बजाय) अगले इंटरप्ट की इंटरप्ट विलंबता को भी कम कर देता है।
ऑपरेटिंग सिस्टम में उपयोग
जारी करने के बाद से HLT
निर्देश के लिए सुरक्षा रिंग एक्सेस की आवश्यकता होती है, इसे केवल कर्नेल (ऑपरेटिंग सिस्टम) जैसे विशेषाधिकार प्राप्त सिस्टम सॉफ़्टवेयर द्वारा चलाया जा सकता है। इस वजह से, एप्लिकेशन प्रोग्रामिंग में ऑपरेटिंग सिस्टम द्वारा उस उद्देश्य के लिए प्रदान की गई एपीआई (एपीआई) का उपयोग करना अक्सर सबसे अच्छा अभ्यास होता है जब कोई और काम नहीं किया जा सकता है, जैसे कि लिनक्स sched_yield()
.[5] इसे प्रोसेसर की उपज के रूप में जाना जाता है। यह ऑपरेटिंग सिस्टम की शेड्यूलिंग (कंप्यूटिंग) को यह तय करने की अनुमति देता है कि क्या अन्य प्रक्रियाएं चलने योग्य हैं; अगर नहीं। यदि प्रत्येक प्रक्रिया निष्क्रिय है या प्रतीक्षा कर रही है, तो यह आम तौर पर अगले हार्डवेयर व्यवधान तक बिजली के उपयोग में कटौती करने के लिए एक एचएलटी निर्देश निष्पादित करेगा।
यह भी देखें
- ए.सी.पी.आई (एसीपीआई)
- उन्नत पावर प्रबंधन (एपीएम)
- कंप्यूटर आर्किटेक्चर
- रोकें और आग पकड़ें (कंप्यूटिंग)
- निष्क्रिय (सीपीयू)
- निर्देश सेट वास्तुकला
- एनओपी (कोड)
संदर्भ
- ↑ "Intel 64 and IA-32 Architectures Software Developer's Manual: Instruction Set Reference A-Z". Retrieved 2012-03-01.
- ↑ "Why does DOS use 100% CPU under Virtual PC?". microsoft.com. Retrieved 18 November 2018.
- ↑ "POWER.EXE और उन्नत पावर प्रबंधन (APM) समर्थन". Archived from the original on 2014-09-27. Retrieved 2015-09-27.
- ↑ "लिनक्स बूट प्रॉम्प्ट-कैसे करें". www.faqs.org. Retrieved 18 November 2018.
- ↑ "sched_yield(2) - Linux manual page". Retrieved 2020-09-02.