Частота импульсов таймера: HZ
Частота импульсов таймера: HZ
Частота системного таймера (частота импульсов, tick rate) программируется при загрузке системы на основании параметра ядра НZ, который определен с помощью директивы препроцессора. Значение параметра HZ отличается для различных поддерживаемых аппаратных платформ. На самом деле, для некоторых аппаратных платформ значение параметра HZ отличается даже для разных типов машин.
Данный параметр ядра определен в файле <asm/param.h>. Частота системного таймера равна значению параметра HZ, период таймера равен 1/HZ. Например, в файле include/asm-i386/param.h для аппаратной платформы i386 этот параметр определен следующим образом.
#define HZ 1000 /* internal kernel time frequency */
Поэтому для аппаратной платформы i386 прерывание таймера генерируется с частотой 1000 Гц, т.е. 1000 раз в секунду (каждую тысячную долю секунды или одну миллисекунду). Для большинства других аппаратных платформ значение частоты системного таймера равно 100 Гц. В табл. 10.1 приведен полный список всех поддерживаемых аппаратных платформ и определенных для них значений частоты системного таймера.
Таблица 10.1. Значение частоты системного таймера
Аппаратная платформа Частота (в герцах) alpha 1024 arm 100 cris 100 h8300 100 i386 1000 ia64 32 или 1024[54] m68k 100 m68knommu 50, 100 или 1000 mips 100 mips64 100 parisc 100 или 1000 ppc 100 ppc64 1000 s390 100 sh 100 spare 100 sparc64 100 um 100 v850 24, 100 или 122 x86-64 1000При написании кода ядра нельзя считать, что параметр HZ имеет определенное заданное значение. В наши дни это уже не такая часто встречающаяся ошибка, так как поддерживается много различных аппаратных платформ с разными частотами системного таймера. Раньше аппаратная платформа Alpha была единственной, для которой частота системного таймера отличалась от 100 Гц, и часто можно было встретить код, в котором жестко было прописано значение 100 там, где нужно использовать параметр HZ. Примеры использования параметра HZ в коде ядра будут приведены ниже.
Частота системного таймера достаточно важна. Как будет видно, обработчик прерывания таймера выполняет много работы. Вся информация о времени в ядре получается из периодичности системного таймера. Весь компромисс состоит только в том, чтобы выбрать правильное значение данного параметра исходя из взаимоотношения между разными факторами.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Пример: использование таймера ожидания
Пример: использование таймера ожидания В программе 14.3 демонстрируется применение таймера ожидания для генерации периодических сигналов.Программа 14.3. TimeBeep: генерация периодических сигналов /* Глава 14. TimeBeep.с. Периодическое звуковое оповещение. *//* Использование: TimeBeep
Обработчик прерываний таймера
Обработчик прерываний таймера Теперь, когда мы разобрались, что такое jiffies и HZ, а также какова роль системного таймера, рассмотрим реализацию обработчика прерываний системного таймера. Обработчик прерываний таймера разбит на две части: часть, зависимую от аппаратной
Источники прерываний таймера
Источники прерываний таймера На этом мы, пожалуй, закончим наш краткий экскурс по стране таймеров и перейдем к вещам, которые уже не так очевидны.Откуда возникают прерывания таймера? На рисунке ниже приведены аппаратные компоненты (и некоторые характерные для PC значения
Создание таймера
Создание таймера Первый этап — это создание таймера с помощью функции timer_create():#include <time.h>#include <sys/siginfo.h>int timer_create(clockid_t clock_id, struct sigevent *event, timer_t *timerid);Аргумент clock_id сообщает функции timer_create(), на какой временном базисе вы формируете таймер. Это вещь из области POSIX —
Обработка прерываний таймера
Обработка прерываний таймера Каждый компьютер имеет аппаратный таймер или системные часы, которые генерируют аппаратное прерывание через фиксированные интервалы времени. Временной интервал между соседними прерываниями называется тиком процессора или просто тиком (CPU
Частота звука
Частота звука Частоту звука можно установить при помощи другого устройства, называемого "Программируемым интервальным таймером 8253". Этот контроллер в числе прочего определяет, сколько импульсов в секунду следует послать на громкоговоритель. Устройство 8253 вырабатывает
Пример использования таймера
Пример использования таймера Данная программа выводит 1 каждые 100 миллисекунд в течение 3 секунд:uses Timers;procedure TimerProc;beginwrite(1);end;begin var t := new Timer(100,TimerProc);t.Start;Sleep(3000);end.Вызов Sleep здесь обязателен, иначе программа после создания таймера сразу закончится, и обработчик таймера ни
Частота ядра
Частота ядра Частота ядра – это показатель, влияющий на скорость выполнения команд процессором. Она не характеризует его быстродействие: в зависимости от конструкции ядра и его наполнения различными аппаратными блоками, ядро за один такт способно выполнять разное