Это действительно особенность истории ПК.
В оригинальном IBM-PC использовалась микросхема, называемая часами реального времени, с резервным питанием от батареи (помните ли вы о необходимости замены батарей на них?). Они работали, когда машина была выключена, и сохраняли время. Частота их составляла 32,768 кГц (2 ^ 15 циклов в секунду), что позволило легко рассчитать время в 16-битной системе.
Эти часы реального времени были затем записаны в CMOS, которая была доступна через систему прерываний в более старых операционных системах.
Более новый стандарт от Microsoft и Intel называется High Precision Event Timer, который определяет тактовую частоту 10 МГц.
http://www.intel.com/hardwaredesign/hpetspec_1.pdf
Даже более новые архитектуры ПК принимают это и устанавливают его на контроллер северного моста, а HPET может настраиваться на частоте 100 МГц или даже больше.
При 10 МГц мы должны получить разрешение 100 нс, а при 100 МГц мы должны получить разрешение 10 нс.
Известно, что следующие операционные системы не могут использовать HPET: Windows XP, Windows Server 2003 и более ранние версии Windows, более старые версии Linux
Известно, что следующие операционные системы могут использовать HPET: Windows Vista, Windows 2008, Windows 7, x86-версии Mac OS X, операционные системы Linux с ядром 2.6 и FreeBSD.
При использовании ядра Linux вам необходим более новый драйвер аппаратных часов "rtc-cmos", а не оригинальный драйвер "rtc"
Все это говорит о том, как нам получить доступ к этому дополнительному разрешению?
Я мог бы вырезать и вставить из предыдущих статей stackoverflow, но не - просто поищите HPET, и вы найдете ответы о том, как заставить работать более точные таймеры