Itulah cara kerja GNU / Linux dan sistem multitasking lainnya, mereka berbagi prosesor di antara proses yang sedang berjalan, dot
tidak 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 dot
tidak 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 dot
melakukan banyak hal, tetapi karena kernel harus memindahkan halaman memori bolak-balik antara disk (partisi swap) dan memori sistem.
Bahkan jika dot
hanya mengambil 99% dari waktu CPU, kemungkinan bahwa mengubah ke terminal teks akan segera, apa yang terjadi adalah bahwa kernel harus memindahkan dot
barang dari memori sehingga dapat dimasukkan X
kembali ke memori sehingga X
dapat melihat kunci Anda cukup menekan dan pindah ke terminal teks, maka kernel harus X
keluar dari memori dot
yang masih berjalan, dan kemudian juga pindah dot
untuk 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 ps
dari sistem file) .