Meskipun jawaban Joel benar, pada kenyataannya, itu sedikit lebih rumit.
Hal pertama yang perlu dipertimbangkan (dan saya akan fokus hanya pada PC di sini) adalah bahwa ada beberapa jam di komputer dan masing-masing memiliki penggunaannya sendiri.
Paling populer dan termudah untuk dipahami adalah jam waktu nyata . Ini pada dasarnya adalah sebuah chip yang memiliki jam sederhana di dalamnya. Mereka biasanya memiliki jenis kristal kuarsa yang sama dengan jam standar dan biasanya memiliki baterai untuk menjaga waktu ketika komputer dimatikan. Masalahnya adalah mereka tidak terlalu akurat, seperti yang bisa dilihat dari tautan Syntech. Kristal 32,768 kHz terlalu lambat untuk ketepatan waktu pada sistem modern yang prosesornya berada dalam jangkauan megahertz dan gigahertz.
Di sini kita sampai pada poin berikutnya: Ada jam internal yang digunakan untuk pengukuran waktu yang tepat dan hitungan mundur.
Jam sederhana adalah penghitung waktu interval yang dapat diprogram . Apa yang dilakukannya adalah menunggu sejumlah waktu tertentu dan kemudian mengirim interupsi ke CPU. Ketika CPU menerima interupsi, itu akan menghentikan apa pun yang dilakukannya dan cenderung tugas yang menghasilkan interupsi. Dengan cara ini CPU tidak harus terus-menerus memeriksa apakah ada sesuatu yang dilakukan. Alih-alih itu bisa fokus pada pekerjaan lain dan minta PIT mengatakannya saat pekerjaan selesai. PIT menggunakan sumber clock 1,193182 MHz dan karenanya jauh lebih tepat daripada RTC sederhana.
Sistem pengukuran menarik berikutnya adalah penghitung cap waktu . Gagasan di baliknya adalah bahwa kita bisa mendapatkan pengukuran waktu yang jauh lebih tepat menggunakan sumber jam prosesor yang menggunakan berbagai pengatur waktu sistem. PIT memiliki clock 1,193182 MHz, tetapi bahkan prosesor x86 paling awal memiliki clock yang jauh lebih tinggi. Jadi kita akan memiliki timer yang diperbarui setelah setiap jumlah siklus prosesor. Pada saat itu prosesor memiliki jam yang sangat stabil dan penggunaan TSC adalah cara yang bagus untuk membuat pengukuran waktu yang tepat. Namun penggunaan TSC membawa sejumlah masalah. Prosesor yang berbeda memiliki laju centang yang berbeda dan mengukur waktu pada kecepatan yang berbeda. Kemudian, seiring dengan kemajuan teknologi, kami mendapatkan prosesor modern yang dapat mengubah frekuensi mereka. Itu adalah masalah utama, karena jam CPU tidak konstan lagi dan kami tidak dapat menggunakannya untuk mengukur waktu.
Dan itu sebabnya kami memiliki pengatur waktu acara presisi tinggi sekarang. HPET menggunakan clock 10 MHz dan karenanya lebih tepat daripada PIT. Di sisi lain, sumber jamnya tidak tergantung pada jam CPU dan dapat digunakan untuk mengukur waktu bahkan jika jam CPU berubah. Tidak seperti PIT, yang berfungsi sebagai hitungan mundur, HPET mengukur waktu sejak komputer dihidupkan dan membandingkan waktu saat ini dengan waktu saat diperlukan tindakan.
Ada sumber waktu lain yang tersedia untuk komputer yang saya percaya perlu disebutkan. Beberapa komputer terhubung ke jam atom dan dapat menggunakannya untuk mengukur waktu secara tepat.
Opsi yang lebih murah dan jauh lebih umum adalah menggunakan sumber waktu eksternal untuk mengkalibrasi sumber waktu internal komputer. Misalnya penerima GPS dapat digunakan untuk memberikan pengukuran waktu presisi tinggi, karena satelit GPS memiliki jam atom internal.
Pilihan lain yang kurang umum daripada penerima GPS adalah menggunakan penerima radio khusus yang menerjemahkan informasi waktu dari stasiun radio yang menjaga waktu seperti DCF77 misalnya. Stasiun waktu tersebut memiliki sumber waktu presisi tinggi dan mengirimkan outputnya melalui radio. Karena gelombang radio bergerak dengan kecepatan cahaya, penundaannya sering tidak signifikan.