Наихудшая точность синхронизации операционной системы?
-
20-09-2019 - |
Вопрос
Я не уверен, относится ли этот вопрос к StackOverflow, но вот он.
Мне нужно сгенерировать временную метку с помощью C # для некоторых данных, которые должны быть переданы от одной стороны к другой стороне, и мне нужно знать, какова наихудшая точность системных часов во всех операционных системах (Windows, Linux и Unix)?Что мне нужно, так это определить точность, чтобы все операционные системы могли проверять эту временную метку.
В качестве примера, разрешение часов для операционных систем Windows Vista составляет приблизительно 10-15 миллисекунд.
Решение
Интересно.Основные операционные системы имеют - в худшем случае — разрешение в сто секунд (0,01 секунды), хотя оно часто встроено с большей точностью.
Linux предлагает разрешение до микросекунд в своих временных метках (см. man utime
) в зависимости от тактового оборудования компьютера.Windows NT/ Win2K/XP / и т.д.обеспечивает точность в миллисекундах для временных меток файлов (используя только NTFS), хотя учитывает все системные временные метки в 0.000 000 1
секундные единицы (десять миллионов в секунду).
Если точно и между системами требуется точное временное разрешение, GPS-приемники легко достигают точности в 100 наносекунд в качестве побочный эффект того, как они работают, и многие недорогие модели работают так же хорошо, как и 10 нс. Специальные модели GPS сделайте полученное время доступным для внешнего использования.
Другие советы
Вы хотите создать что-то вроде временная метка unix за данными?Или найти временную метку, которая не будет конфликтовать с существующим файлом?Если это произойдет позже, вы всегда можете использовать галочки.
Проблема с любой "длинной" временной меткой заключается в том, что она будет относиться к машине, генерирующей ее, но не будет гарантировать отсутствие коллизии в другой системе, поскольку часы могут быть установлены по-другому (не с плавающей точкой, но на самом деле быть установлены по-другому).
Если данные защищены / конфиденциальны и вы рассматриваете механизм синхронизации ключей, основанный на времени (ALA Керберос) Я бы не советовал создавать свой собственный, поскольку необходимо преодолеть множество препятствий, особенно в системах синхронизации и поддержании их синхронности.