Itulah cara kerja GNU / Linux dan sistem multitasking lainnya, mereka berbagi prosesor di antara proses yang sedang berjalan, dottidak akan memiliki 99%, tetapi 100% selama 99% dari waktu. Setiap proses mendominasi prosesor untuk periode waktu tertentu.
Ini ditangani oleh penjadwal (linux memiliki beberapa penjadwal, beberapa hanya menggunakan strategi biasa, beberapa mencoba memberikan lebih banyak waktu untuk antarmuka pengguna, dan sebagainya).
Sekarang, dalam kasus Anda, masalahnya adalah - mungkin - yang dottidak memakan banyak waktu prosesor, tetapi banyak memori. Dan ketika sebuah program menggunakan terlalu banyak memori, ada meronta - ronta , yang merupakan proses yang membuat sistem membeku, bukan karena dotmelakukan banyak hal, tetapi karena kernel harus memindahkan halaman memori bolak-balik antara disk (partisi swap) dan memori sistem.
Bahkan jika dothanya mengambil 99% dari waktu CPU, kemungkinan bahwa mengubah ke terminal teks akan segera, apa yang terjadi adalah bahwa kernel harus memindahkan dotbarang dari memori sehingga dapat dimasukkan Xkembali ke memori sehingga Xdapat melihat kunci Anda cukup menekan dan pindah ke terminal teks, maka kernel harus Xkeluar dari memori dotyang masih berjalan, dan kemudian juga pindah dotuntuk memindahkan proses terminal teks (mungkin saja login?) kembali ke memori. (Jika ini terlihat berantakan, itu bukan hanya karena contohnya berantakan - kenyataannya adalah berantakan ini .)
Contohnya adalah jika Anda login di terminal teks, Anda mungkin dapat menekan saja tombol, tekan backspace, dan itu akan terjadi secara real-time, tetapi jika Anda melakukan sesuatu yang sederhana seperti menjalankan alat kecil seperti ps, itu akan "membeku "untuk sementara waktu karena harus membebaskan memori untuk memuat ps(dan juga harus menunggu di antrian disk I / O, yang sedang banyak digunakan untuk memindahkan data ke dan dari memori, hingga ia dapat meminta psdari sistem file) .