Общая характеристика задач фиксации времени выполнения программ: выполнение процессов реального времени, профилирование. Программируемый интервальный таймер как весьма сложная система. Анализ основных функций, возвращающих стандартное время Windows.
Аннотация к работе
Фиксация времени выполнения программ является одной из ключевых функций в широком классе задач. Так, например, при профилировании программ требуется чрезвычайно высокая разрешающая способность таймера (не ниже 1 миллисекунды) и в то же время нет необходимости в измерении больших промежутков времени (минуты, часы, дни). Однако кроме аппаратной реализации, использование которой напрямую зачастую запрещено операционной системой, существуют также и программные, представленные в виде различных функций и процедур операционных систем. 1.Аппаратные решения Для решения задач, требующих измерения времени, в компьютерах IBM-PC и совместимых начиная с первых версий (XT) устанавливается специальный таймер. В пространстве портов ввода-вывода для таймера выделена область от 40h до 5Fh: порт 40h - канал 0 (генерирует IRQ0) порт 41h - канал 1 (поддерживает обновление памяти) порт 42h - канал 2 (управляет динамиком) порт 43h - управляющий регистр первого таймера порты 44h - 47h - второй таймер компьютеров с шиной MicroChannel порты 48h - 4Bh - второй таймер компьютеров с шиной EISA Таймер можно использовать для управления динамиком, для точных измерений отрезков времени, для создания задержек, для управления переключением процессов и даже для выбора случайного числа с целью запуска генератора случайных чисел - текущее значение счетчика канала 0 представляет собой идеальный вариант такого начального числа для большинства приложений. Так, прямое программирование возможно только в однозадачных операционных системах (таких как DOS, например). В операционных системах семейства Windows прямое программирование таймера запрещено, так как таймер используется для внутренних нужд системы (в частности переключение процессов), изменение его работы может привести к выходу из строя всей системы. Будем рассматривать операционную систему Windows и средства, ею предоставляемые (в частности структуры и функции API 32). 3.Таймеры Таймер в WinAPI рассматривается как стандартное устройство ввода.