यदि कोई सॉफ़्टवेयर अपवाद फेंकता है तो ऑपरेटिंग सिस्टम-स्तर पर क्या होता है?


1

उच्च-स्तरीय प्रोग्रामिंग भाषाओं में (उदाहरण के लिए जावा) आपके पास अपवादों की अवधारणा है।

ये अपवाद या तो निहित या स्पष्ट रूप से फेंके जा सकते हैं। एक अपवाद को फेंक दिए जाने के बाद इसे कुछ विशेष त्रुटि-हैंडलिंग शाखा में पकड़ा जा सकता है।

अब मैं सोच रहा हूँ: हुड के नीचे क्या होता है?

ऑपरेटिंग सिस्टम के लिए एक अपवाद क्या है?

एक अपवाद "पकड़ा" कैसे है?

जवाबों:


1

MSDN से जानकारी: यहाँ

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

हैंडलर खोजने का क्रम है:

  • एक डीबगर कार्यक्रम से जुड़ा
  • फ़्रेम आधारित अपवाद हैंडलर ढूंढें (भाषा विशिष्ट)
  • डीबगर से फिर पूछें
  • यदि इसकी डिबगिंग नहीं हो रही है, या डिबगर नहीं है, तो अपवाद को संभालना ओएस अपने डिफ़ॉल्ट हैंडलिंग प्रदान करेगा। अधिकांश अपवादों के लिए डिफ़ॉल्ट क्रिया ExitProcess को कॉल करना है।

यदि इसका कर्नेल-मोड कोड (ऑपरेटिंग सिस्टम) है तो यह एक अपवाद हैंडलर खोजने की कोशिश करता है। यदि कोई नहीं है, या एक उपलब्ध उस विशेष अपवाद को नहीं संभालता है तो ExitWindows फ़ंक्शन कहा जाता है। यदि आप अनुमान लगा सकते हैं कि ब्राउनी क्या करती है।

दूसरे शब्दों में, इसकी आपकी उच्च स्तरीय भाषा जो अपवादों से संबंधित है, OS केवल अंतिम उपाय का विकल्प प्रदान करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.