CPU làm gì để "tính" thời gian?

Em có một thắc mắc là khi thực hiện một lệnh như là chờ 3s rồi sau đó thực hiện một lệnh nào đó, thì CPU làm gì để nó biết là 3s đã qua để thực hiện lệnh ấy ạ?

1 Like

Mọi hoạt động của CPU sẽ dụa vào xung clock, từ việc đọc lệnh, xử lý logic, tính toán.
Còn với VD chờ 3s của bạn thì có nhiều cách để chờ, có thể CPU sẽ thực hiện những lệnh vô nghĩa cho đủ 3s rồi thực hiện lệnh kế, hoặc CPU có thể giao nhiệm vụ này cho module khác là Timer để đếm dùm, hết 3s Timer sẽ thông báo để CPU biết thực hiện lệnh kế, cách thứ 2 thường được áp dụng nhiều hơn vì việc canh thời gian đã có module khác đảm nhiệm CPU có thể rãnh rỗi làm việc khác

2 Likes

tl;dr: 1 HĐH đa nhiệm sẽ dành một khoảng thời gian nhất định cho một thread duy nhất chạy để tạo cảm giác là nhiều thread chạy cùng lúc. (round-robin: luân phiên) Khi bạn yêu cầu chờ 3000ms thì (trong Win) sẽ đợi (tối thiểu) 3000 ticks trước khi cho thread của bạn chạy.

1 Like

Em cảm ơn !! :smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?