Проектирование с использованием IDE (Отчет о выполнении научно-исследовательской работы), страница 4

      break;

      }

      ChannelDestroy(chid);

      printf("\nEnd of server\n" );

      return EXIT_SUCCESS;

}

Для получения информации профилирования нужно настроить целевую платформу в проекте следующим образом.

В окне QNX System Profiler Perspective есть иконка QNX Logging ->Log Configurations (рис. 6). Основным параметром настройки в этом окне является Period Length – длительность логгирования. Если программы зациклены, то удобно запускать сначала их, а потом Logger, тогда параметр Period Length может быть небольшим (1 с, например). Если программы не зациклены, то можно запустить Logger (10 с, например), а потом запустить клиент.

Рис. 6.

В итоге навигаторе целевой платформы отображается файл с расширением .kev.

При запуске этого файла отражается информация о системе в графическом представлении.Summary показывает какую часть времени выполнялись пользовательские процессы, системные и обработчики прерываения. CPU Usage показывает загруженность процессора и количество времени, в течение которого выполнялось приложение.

Рис. 6

Рис. 7

Рис. 7.

      Наибольший интерес при изучении IPC представляет представление состояния системы в режиме Timeline (рис. 7). Фиолетовым цветом отмечен промежуток, когда клиент «спит». Затем от оправляет сообщение серверу, который до этого момента Recieve-блокирован (синий). После этого клиент Send-блокирован. На стр. 6 указан метод получения аналогичной информации в текстовой форме с помощью утилит traceprinter и tracelogger. Содержимое этого файла logg.txt:

                       pid:974897

t:0xbe7f9e24 CPU:00 THREAD  :THCREATE      pid:974897 tid:1

t:0xbe7fa33a CPU:00 THREAD  :THRECEIVE     pid:974897 tid:1

                      path:/proc/974897/as

                      …

                      path:/proc/974897/as

t:0xc015af43 CPU:00 KER_CALL:CONNECT_ATTACH/39 nd:0x00000000 pid:974897

t:0xc01a50a5 CPU:00 COMM    :SND_MESSAGE   rcvid:0x00000003 pid:974897

t:0xc01aee56 CPU:00 THREAD  :THREADY       pid:974897 tid:1

t:0xc01af51b CPU:00 THREAD  :THRUNNING     pid:974897 tid:1

t:0xc01b191a CPU:00 COMM    :REC_MESSAGE   rcvid:0x00000003 pid:974897

t:0xc01ffdb3 CPU:00 THREAD  :THREPLY       pid:974897 tid:1

t:0xc0280d3e CPU:00 COMM    :REPLY_MESSAGE tid:1 pid:974897

t:0xc028147a CPU:00 THREAD  :THREADY       pid:974897 tid:1

t:0xc02f3c3a CPU:00 THREAD  :THRUNNING     pid:974897 tid:1

t:0xc033d978 CPU:00 THREAD  :THRECEIVE     pid:974897 tid:1

t:0xc0d23d45 CPU:00 COMM    :SND_PULSE_DIS scoid:0x40000003 pid:974897

t:0xc0d254ff CPU:00 THREAD  :THREADY       pid:974897 tid:1

t:0xc124849c CPU:00 THREAD  :THRUNNING     pid:974897 tid:1

t:0xc12505a6 CPU:00 COMM    :REC_PULSE     scoid:0x40000003 pid:974897

t:0xc127d665 CPU:00 THREAD  :THREPLY       pid:974897 tid:1

t:0xc131846d CPU:00 COMM    :REPLY_MESSAGE tid:1 pid:974897

t:0xc1319899 CPU:00 THREAD  :THREADY       pid:974897 tid:1

t:0xc15f1696 CPU:00 THREAD  :THRUNNING     pid:974897 tid:1

t:0xc16137f3 CPU:00 THREAD  :THRECEIVE     pid:974897 tid:1

                      path:/proc/974897/as

                      …

                      path:/proc/974897/as

t:0xcf974897 CPU:00 THREAD  :THRECEIVE     pid:1 tid:9

      Кроме того, все действия протоколируются в IDE. Если выделить область с момента отправки сообщения серверу до момента приема ответа от него, то можно получить временную характеристику реакции сервера, что особенно важно при решении задач управления в реальном времени. Выделенная область занимает 272,214 мкс.