01/10/2018, 01:16

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 ạ?

Tung Dao viết 03:31 ngày 01/10/2018

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

rogp10 viết 03:31 ngày 01/10/2018
stackoverflow.com
Leonel

What's the algorithm behind sleep()?

c, algorithm, sleep
asked by Leonel on 07:47PM - 06 Oct 08

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.

Hưng viết 03:27 ngày 01/10/2018

Em cảm ơn !!

Bài liên quan
0