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