Операционные системы реального времени. Программно-аппаратный экспериментальный комплекс, в составе которого инструментальный компьютер, страница 13

res = name_attach(NULL, "int_server", 0 );

в клиенте:

изменить параметр 3 в функции name_open на 0

coid = name_open("int_server", 0 ).

4.4.  Пример работы.

Inp.txt:

10         100

0           1

1           10

2           18

3           24

4           28

5           30

6           31

7           31.5

8           31.75

9           31.875

Outp.txt:

0.000    1.000

0.091       1.000

0.182       1.000

0.273       1.000

0.364       1.000

0.455       1.000

0.545       1.000

0.636      1.000

0.727       1.000

0.818       1.000

0.909       1.000

1.000       2.000

1.091       2.000

1.182       2.000

1.273       2.000

1.364       2.000

1.455       2.000

1.545       2.000

1.636       2.000

1.727       2.000

1.818       2.000

1.909       2.000

2.000       3.000

2.091       3.000

2.182       3.000

2.273       3.000

2.364       3.000

2.455       3.000

2.545       3.000

2.636       3.000

8.727      31.750

8.818      31.750

8.909      31.750

9.000      31.875

(зеленая кривая – после интерполяции, синяя – исходные данные)

  1. Профайлинг.

5.1. Настройка профайлинга.

В среде QNX Momentics есть два вида профайлинга – системный и прикладной.

Для каждого из них можно задать множество опций.

Задание настроек системного профайлинга происходит в окне Log Configurations, которое можно вызвать с панели инструментов.

В окне на нескольких вкладках задается конфигурации системного профайлинга.

Для каждой конфигурации на вкладке main можно задать: имя, место для сохранения, машину, для которой делается профайлинг.

На вкладке Trace Settings важно не забыть указать длительность наблюдения.

На других вкладках можно также настроить захватываемые события и многое другое.

Параметры прикладного профайлинга задаются в окне Run Configurations.

В этом окне следует выбрать кладку Tools.

И выбрать опцию Add/delete tool.

Здесь можно дополнительно настроить системный профайлинг, а также задать настройки для прикладного.

Так, можно указать, чтобы данные для системного профайлинга начинали собираться только с запуском приложения.

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

В фильтре мы можем увидеть весь список процессов и указать, данные для какого процесса нужно выводить.

Результаты системного профайлинга могут быть представлены во множестве видов.

Это может быть TimeLine – линия жизни процесса.

Это может быть Trace Event Log – таблица событий.

Есть вариант рассмотрения занятости процессора.

Кроме того статистика может быть представлена  целом по системе.

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

5.2. Пример рассмотрения результатов профайлинга.

Сделаем системный профайлинг для сервера и клиента, которые обмениваются сообщениями.

Сервер:

События для сервера:

По диаграмме и таблице для сервера точно видно, как получая сообщения, сервер выходит из receive-блокированного состояния, делает необходимые операции, посылает reply процессу-отправителю, и снова становится receive-блокированным.

Клиент:

События клиента:

Для клиента также видна последовательность смены состояний и его действия: после отправка сообщения он становится reply-блокированным и только с приходом ответа от сервера он снова становится ready и начинает работать.

5.3. Прикладной профайлинг для клиент-серверного приложения, осуществляющего интерполяцию.

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

Результаты для 20 точек:

Результаты для 500 точек: