Таймер

Таймер

Никогда нельзя привязываться к какой-либо конкретной частоте генерации прерывания системного таймера и, соответственно, к тому, сколько раз в секунду изменяется переменная jiffies. Всегда необходимо использовать константу HZ, чтобы корректно определять интервалы времени. Это очень важно, потому что значение частоты системного таймера может отличаться не только для разных аппаратных платформ, но и для одной аппаратной платформы при использовании разных версий ядра.

Например, константа HZ для аппаратной платформы x86 сейчас равна 1000. Это значит, что прерывание таймера возникает 1000 раз в секунду, или каждую миллисекунду. Однако до серии ядер 2.6 для аппаратной платформы x86 значение константы HZ было равно 100. Для разных аппаратных платформ эти значения отличаются: для аппаратной платформы alpha константа HZ равна 1024, а для платформы ARM — 100.

Никогда нельзя сравнивать значение переменной jiffies с числом, таким как 1000, и думать, что это всегда будет означать одно и то же. Для получения интервалов времени необходимо всегда умножать или делить на константу HZ, как в следующем примере.

HZ /* одна секунда */

(2*HZ) /* две секунды */

(HZ/2) /* полсекунды */

(HZ/100) /* 10 мс */

(2*HZ/100) /* 20 мс */

Константа HZ определена в файле <asm/param.h>. Об этом подробно рассказано в главе 10, "Таймеры и управление временем".

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Системный таймер

Из книги автора

Системный таймер Системный таймер играет более значительную роль для отслеживания хода времени ядром. Независимо от аппаратной платформы, идея, которая лежит в основе системного таймера, одна и та же — это обеспечение механизма управления прерываниями, которые


Какой таймер выбрать?

Из книги автора

Какой таймер выбрать? Создав таймер, теперь вы должны решить, какого типа будет этот таймер. Это осуществляется путем комбинирования аргументов функции timer_settime(), которая обычно применяется для собственно запуска таймера:#include <time.h>int timer_settime(timer_t timerid, int flags, struct itimerspec


8.3 ТАЙМЕР

Из книги автора

8.3 ТАЙМЕР В функции программы обработки прерываний по таймеру входит:• перезапуск часов,• вызов на исполнение функций ядра, использующих встроенные часы,• поддержка возможности профилирования выполнения процессов в режимах ядра и задачи;• сбор статистики о системе и


Таймер с обратным отсчетом

Из книги автора

Таймер с обратным отсчетом В сочетании с данным приемом хорошо работает ограничение скидки по времени – когда рядом с товаром в режиме реального времени тикает анимированный таймер с обратным отсчетом (рис. 6). Поставьте на нем ограничение, например 1 час. Этого вполне


Инструмент Таймер

Из книги автора

Инструмент Таймер Инструмент Таймер (рис. 6.33) может быть использован на уроках при изучении часов, проверке техники чтения в начальных классах, выполнении заданий на время, при подготовке к публичным выступлениям и в других случаях. Инструмент может работать в режиме


Инструмент Таймер/часы

Из книги автора

Инструмент Таймер/часы Инструмент Таймер/часы (рис. 8.18) может быть использован на уроках при изучении часов, проверке техники чтения в начальных классах, выполнении заданий на время, при подготовке к публичным выступлениям и в других случаях.Инструмент может работать в