Mặc dù câu trả lời của Joel là chính xác, nhưng thực tế, nó phức tạp hơn một chút.
Điều đầu tiên cần được xem xét (và tôi sẽ chỉ tập trung vào PC ở đây) là có một số đồng hồ trong máy tính và mỗi loại có một công dụng riêng.
Phổ biến nhất và dễ hiểu nhất là đồng hồ thời gian thực . Về cơ bản, nó là một con chip có đồng hồ đơn giản bên trong. Chúng thường có cùng loại tinh thể thạch anh như đồng hồ tiêu chuẩn và thường có pin để giữ thời gian khi máy tính bị tắt nguồn. Vấn đề với họ là chúng không chính xác lắm, như có thể thấy từ các liên kết của Syntech. Tinh thể 32.768 kHz là quá chậm đối với bất kỳ máy chấm công nào trên các hệ thống hiện đại có bộ xử lý nằm trong phạm vi megahertz và gigahertz.
Ở đây chúng ta đến điểm tiếp theo: Có đồng hồ bên trong được sử dụng để đo thời gian và đếm ngược chính xác.
Một đồng hồ đơn giản là bộ đếm thời gian lập trình . Những gì nó làm là đợi một khoảng thời gian nhất định và sau đó gửi một ngắt đến CPU. Khi CPU nhận được ngắt, nó sẽ dừng bất cứ thứ gì nó đang làm và hướng đến nhiệm vụ tạo ra ngắt. Bằng cách này, CPU không phải liên tục kiểm tra nếu có gì đó được thực hiện. Thay vào đó, nó có thể tập trung vào các công việc khác và yêu cầu thuế TNCN khi công việc được hoàn thành. PIT sử dụng nguồn xung nhịp 1.193182 MHz và do đó chính xác hơn nhiều so với RTC đơn giản.
Hệ thống đo lường thú vị tiếp theo là bộ đếm thời gian . Ý tưởng đằng sau đó là chúng ta có thể có được các phép đo thời gian chính xác hơn nhiều bằng cách sử dụng nguồn đồng hồ của bộ xử lý sử dụng các bộ định thời hệ thống khác nhau. PIT có xung nhịp 1.193182 MHz, nhưng ngay cả bộ xử lý x86 sớm nhất cũng có xung nhịp cao hơn nhiều. Vì vậy, chúng ta sẽ có một bộ đếm thời gian được cập nhật sau mỗi chu kỳ bộ xử lý. Vào thời điểm đó, bộ xử lý có đồng hồ rất ổn định và sử dụng TSC là một cách hay để thực hiện các phép đo thời gian chính xác. Việc sử dụng TSC tuy nhiên mang lại một số vấn đề. Các bộ xử lý khác nhau có tốc độ đánh dấu khác nhau và đo thời gian ở các tốc độ khác nhau. Sau này, khi công nghệ tiến bộ, chúng tôi đã có bộ xử lý hiện đại có thể thay đổi tần số của chúng. Đó là một vấn đề lớn, vì đồng hồ CPU không còn nữa và chúng ta không thể sử dụng nó để đo thời gian.
Và đó là lý do tại sao chúng ta có bộ hẹn giờ sự kiện chính xác cao . HPET sử dụng xung nhịp 10 MHz và do đó chính xác hơn PIT. Mặt khác, nguồn đồng hồ của nó không phụ thuộc vào đồng hồ của CPU và nó có thể được sử dụng để đo thời gian ngay cả khi đồng hồ của CPU thay đổi. Không giống như PIT, hoạt động như đếm ngược, HPET đo thời gian kể từ khi máy tính được bật và so sánh thời gian hiện tại khi cần một hành động.
Có những nguồn thời gian khác có sẵn cho máy tính mà tôi tin rằng cần phải được đề cập. Một số máy tính được kết nối với đồng hồ nguyên tử và có thể sử dụng chúng để đo thời gian chính xác.
Một tùy chọn ít tốn kém và phổ biến hơn nhiều là sử dụng nguồn thời gian bên ngoài để hiệu chỉnh các nguồn thời gian bên trong của máy tính. Ví dụ, máy thu GPS có thể được sử dụng để cung cấp các phép đo thời gian chính xác cao, bởi vì các vệ tinh GPS có đồng hồ nguyên tử bên trong của chúng.
Một tùy chọn khác ít phổ biến hơn máy thu GPS là sử dụng máy thu radio đặc biệt để giải mã thông tin thời gian từ các đài phát thanh thời gian như DCF77 chẳng hạn. Các trạm thời gian như vậy có nguồn thời gian chính xác cao của riêng họ và truyền đầu ra của họ qua radio. Vì sóng vô tuyến truyền đi với tốc độ ánh sáng, độ trễ thường không đáng kể.