Модернизация процесса измерений интервалов времени в операционных системах современных компьютеров - page 3

цессоров и длительностью бит-тайма технологии Gigabit Ethernet со-
временных сетей.
Целью настоящей работы является повышение точности измере-
ний утилиты ping путем полной модификации ее исходного кода, с
заменой функции gettimeofday( ) на clock_gettime( ).
Для модификации исходного кода утилиты ping была выбрана опе-
рационная система Linux в реализациях: Debian для платформы IBM
PowerPC [6] и Ubuntu для платформы Intel [7]. В обеих реализациях
ОС для управления программным обеспечением используются паке-
ты формата dpkg и менеджер управления пакетами APT (Advanced
Packaging Tool). Для доступа к исходным кодам утилиты ping можно
воспользоваться набором команд, представленным на рис. 3.
Рис. 3. Набор команд доступа к исходным кодам утилиты ping
В данный пакет входят версии утилиты ping для протоколов IPv4
и IPv6. Для исключения из процесса сборки утилиты версии IPv6 и
подключения библиотеки, реализующей функцию clock_gettime(), был
модифицирован файл Makefile пакета (рис. 4).
Рис. 4. Модификация файла Makefile
Исходными файлами утилиты ping из пакета iputils являются фай-
лы ping_common.h, ping_common.c и ping.c.
Для вычисления временных параметров сети в оригинальной вер-
сии утилиты ping временной штамп, полученный функцией
gettimeofday( ), помещается в поле data пакета icmp. Поскольку размер
структуры timeval, которой оперирует функция gettimeofday(), со-
впадает с размером структуры timespec, которой оперирует функция
clock_gettime(), то можно регулярно проводить замены в исходном
коде функции gettimejfday() на clock_gettime(), структур timeval на
timespec и их элементов tv_usec на tv_nsec.
46 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012. № 4
1,2 4,5,6,7,8,9,10,11,12,13,...16
Powered by FlippingBook