Как реализуются аппаратно таймеры в компьютерах на современных процессорах.
Сколько их может быть в программе. Насколько зависит от типа процессора?
Каждая операционная система по своему реализует таймеры. Если MS DOS работала непосредственно с часами реального времени, то многозадачные ОС это реализуют по-другому. Например, Windows,при старте запоминает показание часов реального времени и затем приращает к этому времени интервалы, используя виртуальные прерывания системного таймера. Периодически проходит синхронизация с часами реального времени.
Что касается таймеров, то это не аппаратные, а программные конструкции. При создании таймера, ОС из пула потоков берёт свободный поток (или создаёт новый в случае отсутствия свободного) и в качестве параметра передаёт ему ф-цию из какой-то системной DLL,которая призвана по команде ОС передавать сообщение WM_TIMER с определённым интервалом приложению. Причём управлением распределения интервалов занимается сама ОС.
В windows начиная с 3.1 снято ограничение на количество таймеров. Но это не значит, что если запустить 200 таймеров, то они все будут нормально работать. Сообщение WM_TIMER имеет самый низкий приоритет и передаётся только в том случае, если нет в очереди сообщений других сообщений. Так что в реальности до приложения будет доходить только часть этих сообщений. И чем больше таймеров, тем непредсказуемы результаты.
Таймеров в процессорах нет. На материнской плате есть программируемые тактовые генераторы. В программах их нет. Таймеры в программах вообще реализуются по принципу ожидания. Пили сколько хочешь но точность там не впечатляющая.
что в вашем понимании таймер?
в любом компьютере есть часы реального времени, что то типа наручных китайских часов, но их точность не велика.
В современных процессорах есть аппаратный счетчик тактов. Значение счетчика можно получить командой процессора rdtsc http://ru.wikipedia.org/wiki/Rdtsc
если знать частоту процессора можно измерять интервалы времени сочень высокой точностью
аппаратно реализуются через кварцевые генераторы