GNU / Linux ve diğer çoklu görev sistemleri bu şekilde çalışır, işlemciyi çalışan süreçler arasında paylaşırlar, dot
% 99'una sahip olmazlar, ancak% 99'unda% 100'ü vardır. Her işlem, belirli bir süre için işlemciye hükmeder.
Bu, zamanlayıcılar tarafından yönetilir (linux'un birkaç zamanlayıcı vardır, bazıları sadece normal stratejiyi kullanır, bazıları kullanıcı arayüzlerine daha fazla zaman vermeye çalışır, vb.).
Şimdi, sizin durumunuzda, sorun - muhtemelen - bu dot
çok fazla işlemci zamanı değil, çok fazla bellek gerektiriyordu. Ve bir programın kullandığı çok fazla bellek, olduğunda dayak tam da değil, sistem donma kılan bir süreçtir, dot
bir çok yapıyor ama çekirdek taşımak zorunda olduğu için bellek sayfalarını diske arasında ileri ve geri (swap bölümü) ve sistem belleği.
Bile dot
sadece işlemci% 99 zaman alıyordu, büyük ihtimalle bir metin terminaline değişen neredeyse anında olacağını vardır, ne olur çekirdek taşımak olmasıdır dot
o koymak böylece belleği yetersiz malzeme X
böylece bellekte geri X
tuşları görebilirsiniz sadece metin terminaline vurup hareket edersiniz, sonra çekirdek hala çalışmakta olan X
bellekten dışarı çıkmak zorunda kalır dot
ve sonra da dot
metin terminali işlemlerini (belki sadece login
?) belleğe taşımak için dışarı çıkar . (Bu dağınık görünüyorsa, sadece örnek dağınık olduğu için değil - gerçek bu dağınıktır.)
Örnek olarak metin terminalinde oturum açarsanız, sadece tuşlara basabilir, geri tuşuna basabilirsiniz ve mutlu bir şekilde gerçek zamanlı olur, ancak küçük bir aracı çalıştırmak kadar basit bir şey yaparsanız ps
, "donacaktır" "bir süreliğine yüklenecek belleği boşaltması gerektiğinden ps
(ve ayrıca ps
dosya sisteminden talep edene kadar verileri belleğe ve bellekten taşımak için kullanılan disk G / Ç kuyruğunda da beklemesi gerekir ) .