Почему переменная xtime в ядре Linux обновляется каждые 1 миллисекунду? - PullRequest
0 голосов
/ 05 января 2019

В Linux переменная xtime (структура типа timepec внутри ядра Linux) хранит текущее время и дату. У него есть два поля - tv_sec, в котором хранится количество секунд с 1 января 1970 года, и tv_nsec, в котором хранится количество наносекунд, прошедших в течение последней секунды.

Значение xtime обновляется как часть процедуры обработки прерывания для прерывания, генерируемого программируемым таймером интервала на борту. По умолчанию ядро ​​Linux программирует это каждые 1 миллисекунду (это называется тик).

Я понимаю, что ядро ​​зависит от прерывания для множества других вещей, помимо обновления системных часов, но почему мы на самом деле редактируем переменную xtime на каждом тике? Разве это не бессмысленно, поскольку мы будем в основном перезаписывать его с тем же значением?

1 Ответ

0 голосов
/ 05 января 2019

Пользовательские программы получают текущее время и дату из переменной xtime, поэтому их необходимо постоянно обновлять

...