एक रुकावट एक "असामान्य" घटना होती है , जो कुछ और होने की परवाह किए बिना, तुरंत संसाधित होने की आवश्यकता होती है । मैं उद्धरणों में "असामान्य" कहता हूं, क्योंकि वे आवश्यक रूप से अप्रत्याशित या खराब नहीं हैं, लेकिन सीपीयू के दृष्टिकोण से "असामान्य" हैं क्योंकि वे "बस होते हैं" जबकि यह कोड निष्पादित करने में व्यस्त है जो असंबंधित हो सकता है।
सीपीयू में रुकावट सुनने के लिए कुछ तंत्र है, और विभिन्न प्रकार के व्यवधान होने पर "क्या करें" को कॉन्फ़िगर करने का कोई तरीका है। यह ऑपरेटिंग सिस्टम को यह व्यवस्था करने की अनुमति देता है कि जब हार्डवेयर डिवाइस चीजें करते हैं (सभी महत्वपूर्ण हार्डवेयर घड़ी, जो बस नियमित अंतराल पर व्यवधान उत्पन्न करता है) सहित इसे अधिसूचित किया जाएगा। सीपीयू के इंटरप्ट हैंडलिंग कॉन्फ़िगरेशन के माध्यम से, ओएस में नामित कोड जब भी बाधित होता है, नियंत्रण हासिल कर लेगा।
कंप्यूटर एक बहुत अप्रिय स्थिति में है (एक अनुप्रयोग प्रोग्रामर के लिए) जब एक बाधा हैंडलर चलने लगता है; मशीन कुछ और करने में व्यस्त थी (जो कुछ भी हो सकता है ) और अब ओएस को सूचित किया गया है कि "कुछ हुआ है"। यह वास्तव में किसी भी अन्य जानकारी को इकट्ठा करने के लिए आवश्यक है जिसे मशीन में चारों ओर लेटा हुआ होना चाहिए और बिना किसी गड़बड़ी के प्रसंस्करण की आवश्यकता होती है जो कि "कुछ भी हो सकता है" जो सीपीयू पर चल रहा था, उसे इकट्ठा करना है। यदि OS स्विच करना चाहता है जो वर्तमान में चल रहा है, तो इसे बाद में पुनर्स्थापित करने में सक्षम होने के लिए पर्याप्त संदर्भ को सहेजना होगा (फिर से, उस संदर्भ को परेशान किए बिना), फिर कुछ अन्य संदर्भ लोड करें, और फिर सीपीयू को फिर से सामान्य करें उस संदर्भ में निष्पादन।
जैसा कि उल्लेख किया गया है, इंटरप्ट का उपयोग हार्डवेयर उपकरणों से सूचनाएं प्राप्त करने के लिए किया जाता है (केवल विकल्प समय-समय पर उनकी जांच करेगा), समय का ध्यान रखते हुए और एक आवेदन प्रक्रिया से नियंत्रण हासिल करने के लिए गारंटीकृत अवसर प्राप्त करने के लिए (जो कि एप्लिकेशन चल रहा है स्विच करने के लिए) अमान्य निर्देशों को क्रियान्वित करने वाली आवेदन प्रक्रियाओं से उबरने और ओएस के अनुरोध करने के लिए अनुप्रयोगों को सक्षम करने के लिए भी। इन अंतिम को सिस्टम कॉल के रूप में जाना जाता है। अनुप्रयोगों को मशीन और एक-दूसरे को गड़बड़ाने से रोकने के लिए, वे सामान्य रूप से "उपयोगकर्ता मोड" में मशीन के साथ चलते हैं, जो एप्लिकेशन को मूल रूप से पढ़ने और लिखने (वर्चुअल) मेमोरी के अलावा कुछ भी करने से रोकता है। इसका मतलब है कि कुछ भी करने के लिएअन्य (पढ़ने / लिखने वाली फाइलें, अधिक मेमोरी के लिए पूछना, उपकरणों का एक्सेस करना, आदि) एप्लिकेशन को एक सिस्टम कॉल करना है; यह मूल रूप से कुछ जानकारी को छोड़ कर ऐसा करता है कि यह क्या करना चाहता है यह जानता है कि ओएस इसके लिए देखेगा, फिर एक सीपीयू निर्देश निष्पादित करना जो सही प्रकार के व्यवधान का कारण बनता है। OS तब देख सकता है कि एप्लिकेशन क्या करने का प्रयास कर रहा था और यह निर्धारित कर रहा था कि उसे उस अनुरोध को पूरा करना चाहिए या नहीं। यह गारंटी देता है कि ओएस किसी भी प्रक्रिया में शामिल होगा 'कुछ भी करने की कोशिश जो प्रक्रिया के बाहर किसी भी चीज को प्रभावित करती है, एकमात्र तरीका है कि एक्सेस नीतियों को लागू किया जा सकता है।
तो अनिवार्य रूप से, हाँ, ओएस बाधित द्वारा संचालित है। एक "अमूर्त" ओएस बूटस्ट्रैप को मशीन को "सामान्य ऑपरेशन" स्थिति में और कुछ बिंदु पर "सामान्य" प्रक्रिया के लिए नियंत्रण से बाहर कर देता है। सामान्य परिस्थितियों में, ओएस तब केवल व्यवधानों को नियंत्रित करके नियंत्रण हासिल करेगा; लेकिन जब से एक रुकावट के बिना बहुत दिलचस्प कुछ नहीं होता है, तो मूल रूप से ओएस के पास हर समय सब कुछ का नियंत्रण होता है।