Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТ_ОРГ_1.doc
Скачиваний:
29
Добавлен:
18.11.2019
Размер:
1.27 Mб
Скачать

Лабораторная работа № 4. Системное время в компьютерах ibm pc

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

Современные компьютеры оснащаются двумя подсистемами таймеров, параллельно отсчитывающими текущее время. Один таймер расположен в микросхеме с низким потреблением энергии (КМОП-микросхеме), которая при выключении питания компьютера продолжает работать, получая энергию от встроенного в компьютер аккумулятора. Этот таймер обычно называют часами реального времени. Другой таймер (его часто называют системным) работает, как и все остальные узлы компьютера, только когда компьютер включён.

Все современные микропроцессоры (с первых моделей Pentium) содержат в своём составе точное средство измерения времени – 64-разрядный счётчик тактов TSC (Time Stamp Counter). Счётчик тактов входит в состав блока мониторинга производительности процессора. Минимальный и максимальный измеряемые временные интервалы зависят от внутренней тактовой частоты процессора. Максимальный измеряемый период времени тактов. Даже при частоте ядра 1 ГГц это будет соответствовать периоду приблизительно в 585 лет. Минимальное значение равно 1 такту частоты ядра процессора.

Чтобы воспользоваться этим счётчиком для измерения времени необходимо провести его калибровку по системным часам или часам CMOS, т.к. длительность такта зависит от частоты процессора (системное время не зависит от частоты процессора). Счётчик тактов обнуляется в момент сброса процессора, после чего начинает подсчёт тактов, прошедших с момента сброса. Прочитать его содержимое можно с помощью команды RDTSC (машинный код этой команды – 0Fh, 31h). После её выполнения в регистре EDX будет размещена старшая часть, в регистре EAX – мл. часть значения числа тактов на момент выполнения команды. При выполнении задания по данной лаб. работе необходимо изучить оба таймера, разработать алгоритм и программу калибровки счётчика тактов, написать программу для формирования заданного временного интервала с использованием TSC (см. пример программы «тестирование скорости» в теоретической части этого раздела, рекомендации в [2] и раздел 2.4). Варианты задания на лабораторную работу приведены в таблице 1.

Варианты задания

Разработать алгоритм и написать программу на ассемблере для формирования 3-х временных интервалов (см. табл. 1). По истечении каждого интервала вывести соответствующее сообщение (например, «первые 10 секунд истекли»).

Таблица 1

Интервал (сек)

Сообщение

T1

T2

T3

1

10

15

20

Время i- ого интервала истекло

2

5

10

13

Третий интервал завершился

3

20

8

7

Лабораторная работа №4 завершилась

4

26

15

5

Резидентная программа активизирована

5

7

14

25

Заданное время истекло

6

16

12

5

Ждем 16 / 12 / 5 секунд

7

21

14

7

Второй интервал равен 14 сек

8

12

22

26

Общая задержка равна 1 минуте

9

30

10

3

Изучаем резидентные программы

10

4

12

24

Формирование заданного временного интервала

11

15

10

5

Первые 15 сек истекли и т.д

12

11

22

33

Третий интервал завершился

13

13

26

39

Первый интервал равен 13 сек

14

25

5

7

Я сделал лабораторную работу

15

40

15

5

Ждем 40 / 15 / 5 секунд

16

33

13

7

Второй интервал равен 13 сек

17

17

20

13

Все! Временные интервалы сформированы

18

18

9

12

Первые 18 сек истекли и т.д

19

19

4

8

Программа работает

20

20

10

5

Общая задержка равна 35 секунд

21

21

7

14

(На усмотрение автора)

22

22

11

5

Изучили резидентные программы успешно

23

23

30

15

Программа решает поставленную задачу

24

24

12

6

(На усмотрение автора)

25

25

18

9

(На усмотрение автора)

26

26

13

7

Изучаем резидентные программы

27

27

7

3

Третий интервал равен 3 сек

28

28

14

7

Ура! Я сделал лабораторную работу