Ответ 1
Это действительно особенность истории ПК. В оригинальном IBM-PC использовался чип под названием "Часы реального времени", на котором была сделана резервная батарея (помните ли вы, что нужно менять батареи на них?) Они срабатывали, когда машина была выключена, и сохранили время. Частота их составляла 32,768 кГц (2 ^ 15 циклов в секунду), что позволило легко вычислить время на 16-битной системе. Эти часы реального времени были затем записаны в CMOS, который был доступен через систему прерываний в более старых операционных системах.
Более новый стандарт отсутствует от Microsoft и Intel под названием High Precision Event Timer, который определяет тактовую частоту 10 МГц http://www.intel.com/hardwaredesign/hpetspec_1.pdf Даже новые архитектуры ПК используют это и помещают его в контроллер Northbridge, а 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, и вы найдете ответы на вопрос о том, как сделать более точные таймеры, работающие