मैं एक ऑपरेटिंग सिस्टम के आंतरिक कामकाज के बारे में पूरी तरह से परिचित हूं, लेकिन मैं कई कार्यों के अनुमानित व्यवहार को कम या ज्यादा कर सकता हूं। एक बात जो मैं समझ नहीं पा रहा हूं, हालांकि, मल्टीटास्किंग है।
सिद्धांत रूप में, ऑपरेटिंग सिस्टम विभिन्न कार्यक्रमों को चलाने के लिए छोटे अंतराल के लिए सीपीयू के अनुसार, समय का प्रबंधन करता है। लेकिन यह स्पष्ट नहीं है कि यह वास्तव में कैसे काम करता है।
कहो कि ऑपरेटिंग सिस्टम मेरा प्रोग्राम शुरू करना चाहता है। मशीन कोड रैम में कहीं लोड होता है, एक निश्चित पते पर शुरू होता है। मुझे लगता है कि उस पते पर एक छलांग लगाई जानी चाहिए, जिससे मेरा कोड निष्पादित हो सके। लेकिन इस तरह से, जब तक मैं वापस कूद नहीं जाता, ओएस नियंत्रण हासिल नहीं कर सकता।
मूल रूप से, मैं इस काम को बनाने के सिर्फ दो तरीकों की कल्पना कर सकता हूं, लेकिन न तो वास्तव में उपयुक्त लगता है:
ऑपरेटिंग सिस्टम उन मशीन निर्देशों को पढ़ सकता है जिन्हें मैं सीधे निष्पादित करने के बजाय उन्हें प्रदर्शन और अनुकरण करना चाहता हूं। मैं जानबूझकर अस्पष्ट हूं, क्योंकि मुझे नहीं पता कि यह कैसे काम करेगा, लेकिन ऐसा लगता है कि यह कार्यक्रम को काफी धीमा कर देगा।
वैकल्पिक रूप से, ऑपरेटिंग सिस्टम तब तक इंतजार कर सकता है जब तक मैं सिस्टम कॉल नहीं करता। उस क्षण में यह नियंत्रण हासिल कर लेता है और जांच कर सकता है कि मैं कितने समय से चल रहा हूं और इसकी टाइमिंग सामान कर रहा हूं। यह काम कर सकता है, लेकिन यह अविश्वसनीय लगता है, क्योंकि मैं एक लंबी गणना कर सकता था जिसमें सिस्टम कॉल शामिल नहीं है और थोड़ी देर के लिए सब कुछ लटका हुआ है।
इसलिए, ऐसा लगता है कि न तो तंत्र बहुत अच्छा काम करेगा। मल्टीटास्किंग वास्तव में कैसा प्रदर्शन किया जाता है?
interrupt
INT
निर्देश निष्पादित करने का कोई तरीका नहीं है । मेरे लिए अभी भी कुछ रहस्यमय है