जिस तरह से GNU / Linux और अन्य मल्टीटास्किंग सिस्टम काम करते हैं, वे प्रोसेसर को चल रही प्रक्रियाओं के बीच साझा करते हैं, dot
99% नहीं होगा, लेकिन 99% समय के दौरान 100% होगा। प्रत्येक प्रक्रिया समय की एक निश्चित अवधि के लिए प्रोसेसर पर हावी होती है।
यह शेड्यूलर्स द्वारा नियंत्रित किया जाता है (लिनक्स में कई शेड्यूलर होते हैं, कुछ सामान्य रणनीति को नियोजित करते हैं, कुछ उपयोगकर्ता इंटरफेस को और अधिक समय देने की कोशिश करते हैं)।
अब, आपके मामले में, समस्या यह थी - शायद - यह dot
बहुत प्रोसेसर समय नहीं ले रहा था, लेकिन बहुत सारी मेमोरी। और जब कोई प्रोग्राम बहुत अधिक मेमोरी का उपयोग करता है, तो थ्रेशिंग होता है , जो वास्तव में एक प्रक्रिया है जो सिस्टम को फ्रीज करता है, क्योंकि नहींdot
बहुत कुछ कर रहा है, बल्कि इसलिए कि कर्नेल को मेमोरी पेज को डिस्क के बीच आगे और पीछे ले जाना पड़ता है (स्वैप पार्टीशन) और सिस्टम मेमोरी।
यहां तक कि अगर dot
केवल 99% CPU समय ले रहा था, तो संभावना है कि टेक्स्ट टर्मिनल में बदलना लगभग तत्काल होगा, क्या होता है कि कर्नेल को dot
मेमोरी से सामान बाहर ले जाना पड़ता है ताकि यह X
मेमोरी में वापस डाल सके ताकि X
चाबियाँ देख सकें आप सिर्फ टेक्स्ट टर्मिनल पर हिट और मूव करते हैं, फिर कर्नेल को X
मेमोरी से बाहर जाना पड़ता है , dot
जिसके लिए वह अभी भी चल रहा है, और फिर dot
टेक्स्ट टर्मिनल प्रोसेस (शायद सिर्फ login
?) को वापस मेमोरी में ले जाने के लिए बाहर निकलता है । (यदि यह गन्दा दिखता है, तो यह सिर्फ इसलिए नहीं है क्योंकि उदाहरण गन्दा है - वास्तविकता यह है यह गन्दा है।)
एक उदाहरण यह है कि यदि आप पाठ टर्मिनल में लॉग इन करते हैं, तो आप बस कुंजियों को हिट करने, बैकस्पेस को हिट करने में सक्षम हो सकते हैं, और यह खुशी से वास्तविक समय में होगा, लेकिन अगर आप एक छोटा सा उपकरण चलाने के रूप में सरल रूप में कुछ करते हैं ps
, तो यह "फ्रीज" होगा "थोड़ी देर के लिए क्योंकि इसे लोड करने के लिए मेमोरी को खाली करना पड़ता है ps
(और इसे डिस्क I / O कतार में भी इंतजार करना पड़ता है, जिसका उपयोग डेटा को मेमोरी से और तब तक स्थानांतरित करने के लिए किया जा रहा है, जब तक कि यह ps
फाइलसिस्टम से अनुरोध करने में सक्षम नहीं हो जाता ) ।