Программа измерения задержки интерфейса дверей

Программа измерения задержки интерфейса дверей

Пpoгрaммa измерения задержки для интерфейса дверей дана в листинге А.17. Дочерний процесс создает дверь и связывает с ней функцию server. Родительский процесс открывает дверь и вызывает door_call в цикле. В качестве аргумента передается 1 байт данных, и ничего не возвращается.

Листинг А.17. Программа измерения задержки интерфейса дверей

//bench/lat_door.c

1  #include "unpipc.h"

2  void

3  server(void *cookie, char *argp, size_t arg_size,

4   door_desc_t *dp, size_t n_descriptors)

5  {

6   char c;

7   Door_return(&c, sizeof(char), NULL, 0);

8  }

9  int

10 main(int argc, char **argv)

11 {

12  int i, nloop, doorfd, contpipe[2];

13  char c;

14  pid_t childpid;

15  door_arg_t arg;

16  if (argc != 3)

17   err_quit("usage: lat_door <pathname> <#loops>");

18  nloop = atoi(argv[2]);

19  unlink(argv[1]);

20  Close(Open(argv[1], O_CREAT | O_EXCL | O_RDWR, FILE_MODE));

21  Pipe(contpipe);

22  if ((childpid = Fork()) == 0) {

23   doorfd = Door_create(server, NULL, 0);

24   Fattach(doorfd, argv[1]);

25   Write(contpipe[1], &c, 1);

26   for(;;) /* дочерний процесс = сервер */

27    pause();

28   exit(0);

29  }

30  arg.data_ptr = &c; /* родительский процесс = клиент */

31  arg.data_size = sizeof(char);

32  arg.desc_ptr = NULL;

33  arg.desc_num = 0;

34  arg.rbuf = &c;

35  arg.rsize = sizeof(char);

36  if (Read(contpipe[0], &c, 1) != 1) /* ждем создания */

37   err_quit("pipe read error");

38  doorfd = Open(argv[1], O_RDWR);

39  Door_call(doorfd, &arg); /* запуск */

40  Start_time();

41  for (i = 0; i < nloop; i++)

42   Door_call(doorfd, &arg);

43  printf("latency: %.3f usec ", Stop_time() / nloop);

44  Kill(childpid, SIGTERM);

45  unlink(argv[1]);

46  exit(0);

47 }

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

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

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

День открытых дверей

Из книги Журнал «Компьютерра» №27-28 от 26 июля 2005 года автора Журнал «Компьютерра»

День открытых дверей За неделю выставки Computex найти свободное время оказалось непросто. Тем не менее, я пожертвовал целым днем - сотрудники компании MSI предложили познакомиться со своим подразделением R amp;D (Research amp;Development) - центром разработки. Разговоры с инженерами и


ФМ-ВЕЩАНИЕ: Дни приоткрытых дверей

Из книги Журнал «Компьютерра» № 13 от 04 апреля 2006 года автора Журнал «Компьютерра»

ФМ-ВЕЩАНИЕ: Дни приоткрытых дверей Автор: Феликс МучникНесмотря на затянувшуюся зиму (надеюсь, к выходу номера она все-таки закончится — достала уже) и предвесенний авитаминоз, на российском IT-фронте совсем не без перемен. Хотя я сам предсказывал в начале года (см.


Создание стен, дверей и окон в режиме конструирования

Из книги Домашний архитектор. Подготовка к ремонту и строительству на компьютере автора Булат Виталий

Создание стен, дверей и окон в режиме конструирования Строительный план имеет трехмерное представление. Оно является неотъемлемой частью плана, реализующей дизайнерскую составляющую проекта. В режиме просмотра 3D-модели можно добавлять, удалять и редактировать


Проектирование дверей

Из книги ArchiCAD 11 автора Днепров Александр Г

Проектирование дверей Для создания дверей в ArchiCAD существует специальный инструмент, кнопка активизации которого – Door (Дверь) – находится на палитре ToolBox (Палитра инструментов). При щелчке на этой кнопке на информационной палитре появляются параметры данного объекта


Создание дверей

Из книги ArchiCAD. Начали! автора Орлов Андрей Александрович

Создание дверей При создании дверей ArchiCAD, в соответствии с типом и установленными параметрами выбранной двери, вырезает в стене необходимый проем и вставляет туда дверь. Операция вставки двери проста. Основное время уходит на подбор значений параметров. Однако после их


Проектирование дверей

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

Проектирование дверей Для создания дверей нужно нажать кнопку палитры инструментов Door (Дверь) – на информационной палитре появятся элементы управления настройкой параметров двери (рис. 6.4). Рис. 6.4. Элементы управления настройкой параметров


Создание дверей

Из книги Новый ум короля [О компьютерах, мышлении и законах физики] автора Пенроуз Роджер

Создание дверей Создать дверь просто. После выбора инструмента Door (Дверь), настройки ее параметров и выбора места вставки программа ArchiCAD, в соответствии с типом и установленными параметрами вырезает в стене необходимый проем и вставляет туда дверь. Основное время уходит


Результаты измерения задержки

Из книги Разработка ядра Linux автора Лав Роберт

Результаты измерения задержки В табл. А.1 приведены значения задержки в Solaris 2.6 и Digital Unix 4.0B.Таблица А.1. Задержка при передаче сообщения размером 1 байт (в микросекундах)  Канал Очередь сообщений Posix Очередь сообщений System V Двери Sun RPC TCP Sun RPC UDP Сокет TCP Сокет UDP Доменный


Программа измерения полосы пропускания очереди System V

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

Программа измерения полосы пропускания очереди System V В листинге А.7 приведен текст функции main, измеряющей полосу пропускания очередей сообщений System V, а в листинге А.8 —текст функций reader и writer.Листинг А.7. Функция main для измерения полосы пропускания очереди сообщений System


Программа измерения полосы пропускания дверей

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

Программа измерения полосы пропускания дверей Программа измерения полосы пропускания интерфейса дверей сложнее, чем предыдущие, поскольку нам нужно вызвать fork перед созданием двери. Родительский процесс создает дверь и с помощью канала оповещает дочерний процесс о


Программа измерения задержки канала

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

Программа измерения задержки канала Программа для измерения задержки канала приведена в листинге А.14.Листинг А.14. Программа измерения задержки канала//bench/lat_pipe.c1  #include "unpipc.h"2  void3  doit(int readfd, int writefd)4  {5   char c;6   Write(writefd, &c, 1);7   if (Read(readfd, &c, 1) != 1)8    err_quit("read error");9 


Программа измерения задержки очередей сообщений Posix

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

Программа измерения задержки очередей сообщений Posix Пpoгрaммa измерения задержки для очередей сообщений Posix приведена в листинге А.15.Листинг А. 15. Программа измерения задержки для очереди сообщений Posix//bench/lat_pxmsg.с1  #include "unpipc.h"2  #define NAME1 "lat_pxmsg1"3  #define NAME2 "lat_pxmsg2"4  #define MAXMSG 4 /*


Программа измерения времени задержки Sun RPC

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

Программа измерения времени задержки Sun RPC Для измерения времени задержки Sun RPC мы напишем две программы: клиент и сервер, аналогично измерению полосы пропускания. Мы используем старый файл спецификации RPC, но на этот раз клиент вызывает нулевую процедуру сервера.


Короткие задержки

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

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