Насколько точна эпоха в наносекундах?

Я хочу узнать, насколько точным является время, которое было показано при вводе даты +% s% N в терминале.

Я знаю, что это дает нам время в наносекундах, но цифры действительны ?. Является ли это моментом, когда я нажимаю enter в наносекундах или это подделка с некоторой точностью и ниже, скажем, миллисекунды?

1
задан 1 July 2014 в 06:42

1 ответ

Конечно, нет. Все, что вы делаете, требует измеримого времени. От удара введите, чтобы реагировать на клавиатуру, передав ее в оболочку, которая будет запускать date, чтобы отобразить вывод на вашем терминале и прочитать его.

Если мы снова используем диаграммы из этого сообщения:

d3] Вход

      +-------------------+               +-------------+
----->| terminal emulator |-------------->| application |
      +-------------------+               +-------------+
keypress                    character or
                           escape sequence

Выход

+-------------+               +-------------------+
| application |-------------->| terminal emulator |
+-------------+               +-------------------+
               character or
               escape sequence

Каждая из стрелок и каждого из приведенных выше полей представляет собой процессы, которые занимают измеримое количество времени. В случае программы date время, которое вы видите, это время, которое было получено, когда оно запросило систему в течение текущего времени. Этот процесс будет похож на

You hit enter --> `date` is executed -> queries current time

. Снова, каждый из вышеперечисленных шагов (и другие, более мелкие, запустите strace date, чтобы получить представление) потребуется время, так что нет, возвращенное время не будет точный момент, когда вы нажмете Enter.

К моменту, когда результат будет напечатан на вашем терминале, время (с точностью до наносекунды) снова изменится. То, что вы видите, это то, что было возвращено системой, когда date спросил.

Однако вы можете быть уверены, что он достаточно точен для всего, что вы можете захотеть сделать на своем компьютере. Если вам нужна точность на уровне наносекунды, вам, вероятно, понадобится специальное оборудование.

2
ответ дан 24 May 2018 в 06:08
  • 1
    Так что скажем, что невозможно синхронизировать две машины / компьютеры на уровне наносекунды? Это не должно быть в реальном времени. Я просто хочу, чтобы они синхронизировались .. – mrapsogos 1 July 2014 в 22:48

Другие вопросы по тегам:

Похожие вопросы: