Pertanyaan:
- Bagaimana kutu CPU dihitung dan apa yang diwakilinya?
- Apakah satu
tick
sama dengan10 miliseconds
demikian jika beberapa thread dilaporkan tidak dipanggil untuk (5 * 10 ticks = 500 ticks
) apakah ini berarti CPU mungkin terlalu sibuk untuk menjadwalkan thread tersebut untuk bekerja ?
Jawaban:
Sebuah centang adalah unit sewenang-wenang untuk mengukur waktu sistem internal. Biasanya ada penghitung internal-OS untuk kutu; waktu dan tanggal saat ini yang digunakan oleh berbagai fungsi OS berasal dari penghitung itu.
Berapa milidetik yang diwakili oleh kutu tergantung pada OS, dan bahkan dapat bervariasi di antara instalasi. Gunakan mekanisme OS untuk mengubah kutu menjadi detik.
sysconf(_SC_CLK_TCK);
. Lihat misalnya http://linux.die.net/man/2/timesMengenai mengapa utas melaporkan itu tidak disebut: Itu akan tergantung pada apakah utas memblokir di suatu tempat (menunggu, I / O dll.). Jika tidak memblokir, maka ya, penjadwal OS akan memutuskan kapan akan berjalan, yang mungkin lama jika sistem sibuk.
Edit:
Perhatikan bahwa, mungkin sayangnya, beberapa penulis juga menggunakan centang sebagai sinonim untuk siklus jam prosesor (misalnya teks ini ). Saya percaya penggunaan ini kurang tersebar luas, tetapi tetap, lebih baik untuk mencari tahu dulu apa yang orang bicarakan.
sumber
Sunting: Diambil dari Perangkat Keras PC secara singkat :
"Jam prosesor mengoordinasikan semua operasi CPU dan memori dengan secara berkala menghasilkan sinyal referensi waktu yang disebut clock cycle atau tick . Frekuensi clock ditentukan dalam gigahertz (GHz), yang menentukan miliaran kutu per detik. Kecepatan clock menentukan seberapa cepat instruksi dijalankan. Beberapa instruksi memerlukan satu centang, lainnya beberapa centang, dan beberapa prosesor menjalankan beberapa instruksi selama satu centang. "
Waktu antara kutu ditentukan oleh kecepatan jam Anda, dan dibutuhkan satu hingga banyak kutu tergantung pada OP yang dilakukan. Sebagai contoh, CPU kelas 286 membutuhkan 20 kutu untuk mengalikan dua angka.
Jika Anda membutuhkan pengatur waktu kinerja tinggi, maka saya tidak berpikir Anda dapat mengandalkan kutu yang konstan di semua sistem.
Penjadwal CPU dapat menunda utas, terutama jika ada utas lain dengan prioritas lebih tinggi. Jadi ya, CPU bisa saja terlalu sibuk.
sumber
ticks
pada sistem Unix biasanya terjadi 60 atau 100 kali per detik, dan tidak terikat pada kecepatan proc.tick
sinonim untukprocessor cycle
. Tetap saja, saya kebanyakan melihattick
digunakan seperti dijelaskan dalam jawaban saya di atas. Tapi saya kira terminologi bervariasi, seperti biasa :-(. Saya mengedit jawaban saya.