Seperti yang telah Anda katakan sendiri, Anda dapat menekan Huntuk menampilkan utas pengguna.
Hanya untuk referensi di masa mendatang (dan untuk bersenang-senang), mari kita hitung pemanfaatan CPU!
Sedikit latar belakang:
Dalam sistem operasi modern, ada Penjadwal. Ini bertujuan untuk memastikan bahwa semua Proses dan utasnya mendapatkan waktu komputasi yang adil. Saya tidak akan terlalu banyak menjadwalkan (itu benar-benar rumit). Tetapi pada akhirnya ada sesuatu yang disebut run queue . Di sinilah semua instruksi dari semua proses berbaris untuk menunggu giliran mereka dieksekusi.
Proses apa pun menempatkan "tugas" di antrian proses, dan begitu prosesor siap, ia mengeluarkannya dan menjalankannya. Ketika sebuah program pergi tidur, misalnya, ia menghapus dirinya sendiri dari antrian run dan kembali ke "akhir baris" setelah siap dijalankan lagi.
Mengurutkan pada antrian ini berkaitan dengan Prioritas proses (juga disebut "nilai bagus" - yaitu proses yang baik tentang sumber daya sistem).
Panjang antrian menentukan Beban sistem. Beban 2,5 misalnya berarti bahwa ada 2,5 instruksi untuk setiap instruksi CPU dapat menangani secara real time .
Di Linux, omong-omong, beban ini dihitung dalam interval 10 ms (secara default).
Sekarang ke nilai Persentase pemanfaatan CPU:
Bayangkan Anda memiliki dua jam, satu disebut t
dan itu mewakili waktu nyata . Mengukur satu detik untuk setiap detik. Jam lain yang kita panggil c
. Ini hanya berjalan jika ada proses yang harus dilakukan. Itu berarti, hanya ketika suatu proses menghitung sesuatu, jam berjalan. Ini juga disebut waktu CPU. Setiap proses pada sistem 'memiliki' salah satunya.
Pemanfaatan prosesor sekarang dapat dihitung untuk satu proses:
atau untuk semua proses:
Pada mesin multi-core, ini dapat menghasilkan nilai 3,9 tentu saja, karena CPU dapat menghitung komputasi bernilai empat detik setiap detik, jika digunakan dengan sempurna.
Wikipedia memberikan contoh ini:
Aplikasi perangkat lunak yang berjalan di mesin UNIX 6-CPU menciptakan tiga proses UNIX untuk memenuhi kebutuhan pengguna. Masing-masing dari ketiga proses ini menciptakan dua utas. Pekerjaan aplikasi perangkat lunak didistribusikan secara merata pada 6 utas eksekusi independen yang dibuat untuk aplikasi tersebut. Jika tidak ada menunggu sumber daya terlibat, Total waktu CPU diharapkan menjadi enam kali waktu nyata berlalu.
Berikut potongan python kecil yang melakukan ini
>>> import time
>>> t = time.time()
>>> c = time.clock()
>>> # the next line will take a while to compute
>>> tuple(tuple(i**0.2 for i in range(600)) for i in range(6000))
>>> print (time.clock() / (time.time() - t)) * 100, "%"
66.9384021612 %
Di dunia yang sempurna, Anda dapat menyimpulkan bahwa beban sistem adalah 100 - 66,93 = 33,1%. (Tetapi pada kenyataannya itu salah karena hal-hal kompleks seperti I / O tunggu, penjadwalan ketidakefisienan dan sebagainya)
Berbeda dengan memuat , perhitungan ini akan selalu menghasilkan nilai antara 0 dan jumlah prosesor, yaitu antara 0 dan 1 atau 0 hingga 100%. Sekarang tidak ada cara untuk membedakan antara mesin yang menjalankan tiga tugas, memanfaatkan cpu 100%, dan mesin yang menjalankan sejuta tugas, hampir tidak ada pekerjaan yang dilakukan pada salah satu dari mereka, juga pada 100%. Jika Anda, misalnya, mencoba menyeimbangkan banyak proses di banyak komputer, pemanfaatan cpu hampir tidak berguna. Muat apa yang Anda inginkan di sana.
Pada kenyataannya, ada lebih dari satu jam waktu pemrosesan. Ada satu untuk menunggu di I / O misalnya. Jadi Anda juga bisa menghitung pemanfaatan sumber daya I / O.
Ini mungkin tidak membantu mengenai pertanyaan awal, tapi saya harap ini menarik. :)