Автор работы: Пользователь скрыл имя, 30 Октября 2012 в 22:35, контрольная работа
Целью работы является исследование времени реакции сервера на сетевые запросы клиентов, формируемые в реальном масштабе времени.
Для достижения цели необходимо решить следующие задачи:
Разработать серверное приложение, которое получает запросы по протоколу TCP|UDP от некоторого количества клиентов и выполняет обработку этих запросов.
Разработать консольное клиентское приложение, которое производит подключение к заданному серверу и через некоторые промежутки времени формирует запрос к нему по протоколу TCP|UDP.
Исследовать время передачи и обработки пакетов серверным приложением.
1. Расчетно-графическая работа. Исследование временных характеристик многопоточного приложения в ОСРВ QNX во время обработки информации от периферийных устройств
2. Введение
3. Алгоритм
4. Программная реализация
5. Выводы
6. Литература
Содержание
Расчетно-графическая работа. Исследование временных характеристик многопоточного приложения в ОСРВ QNX во время обработки информации от периферийных устройств
Постановка задачи
Общие положения
Целью работы является исследование времени реакции сервера на сетевые запросы клиентов, формируемые в реальном масштабе времени.
Для достижения цели необходимо решить следующие задачи:
Объект исследования является процесс обработки пакетов сервером, полученных от удаленных клиентов.
Введение
Общие положения
Управление различными процессами в АСУ технологическими процессами (АСУ ТП) необходимо осуществлять не только эффективно, но и в заданные промежутки времени. Основу таких систем управления составляют сложные вычислительные комплексы, которые функционируют под управлением операционных систем реального времени (ОС РВ). Одной из наиболее эффективных и широко используемых в промышленности ОС является OS QNX.
Одним из главных отличий ОСРВ от универсальных ОС является способность гарантировать минимальный латентный период. В ОС общего назначения внешние прерывания попадают в очередь и обрабатываются только после того, как ОС завершит свою текущую операцию и обработает все остальные прерывания, находящиеся в очереди. Латентный период в ОС РВ непостоянен по величине, и никогда не достигает своего минимально возможного значения.
Другими словами, ОС РВ умеют прерывать текущую операцию для немедленной обработки прерывания. Как следствие, ОС РВ гарантируют обработку события в течение определенного временного интервала.
Встроенные приложения
Многие приложения реального времени являются встроенными, но не все встроенные системы работают в режиме реального времени. Встроенные системы и системы реального времени часто путают друг с другом, хотя для их описания используются различные характеристики. Для приложений реального времени главное - их временные характеристики, а встроенные системы охарактеризовать не так просто.
Встроенные системы - это нечто, чьи программные компоненты не взаимодействуют с пользователем непосредственно, как, например, сотовые телефоны или индустриальные микрокомпьютеры. Нет каких-то общих определяющих признаков для встроенных систем, тем не менее, они обычно требуют меньше памяти, используют более слабые процессоры и поддерживают меньшее количество устройств ввода- вывода, например, только клавиатуру. Поскольку они уступают в универсальности ОС на настольных компьютерах, используете их только для решения каких-то конкретных задач.
Процессы в реальном времени
Множеству измерительных и управляющих приложений требуется возможность работы в режиме реального времени. Для того, чтобы понять работу этих приложений реального времени, необходимо иметь представление о базовых принципах реального времени, и о том, насколько оно важно при управлении, обработке сигналов и реагировании на события.
Управление в реальном времени
Занимаясь управлением в реальном времени, непрерывно отслеживается или моделируется состояние физической системы. Управляющая программа циклически выполняет некоторую определенную пользователем процедуру, работа которой разделяется на временные отрезки, рис. 1. Человека окружает множество управляющих систем реального времени, таких как системы управления движением машины или термостатическая система управления климатом в доме. Есть несколько параметров, которыми можно охарактеризовать приложение реального времени:
Рис. 1. Управление в реальном времени
Продолжительность управляющего цикла
Большинство АСУ РВ взаимодействуют с физической системой путем сравнения ее текущего состояния с ожидаемым состоянием и дальнейшим предсказанием поведения системы на основе результата этого сравнения. Интервал времени между двумя такими сравнениями и есть продолжительность управляющего цикла. Необходимая продолжительность этого цикла зависит от системы. Например, продолжительность цикла в системе управления температурой в духовке довольно велика. Эта система измеряет температуру, сравнивает ее с желаемой температурой и включает/выключает нагревательные горелки. В этом случае вполне достаточен цикл продолжительностью 1 сек. С другой стороны, печи, используемые в промышленности, требуют очень точно выдержанного температурного режима, например, при выращивании кристаллов. В этом случае продолжительность управляющего цикла должны быть существенно меньше, чтобы удовлетворить жестким температурным ограничениям. В общем случае управление в режиме реального времени соответствует рис. 2.
Рис. 2. Типичное управляющее приложение реального времени
Предсказуемость
Предсказуемость характеризует постоянство определенных временных интервалов между событиями. Многие управляющие алгоритмы, требуют очень предсказуемого поведения. Например, подъемник постепенно перемещается к правильному этажу вследствие предсказуемого поведения управляющего алгоритма. Если бы предсказуемости не было, подъемник все еще добирался бы до нужного этажа, но не всегда.
Разброс
Все системы реального времени в той или иной мере встречаются с проблемой разброса. Разброс - другой способ охарактеризовать непредсказуемость систем реального времени. Вы можете оценить его как разницу между отдельной временной задержкой и ее желаемой величиной (см. рис. 3).
Рис. 3. Расчет разброса в допустимом интервале ±30 мс
Обработка сигналов в режиме реального времени
Обработка сигналов в режиме реального времени имеет много общего с управлением. Она требует предсказуемых временных интервалов между повторяющимися событиями. Но вместо вычисления отклика при этом выполняется обработка сигналов, полученных в результате сбора данных. Примером может служить оценка частотных характеристик сигнала. Приложение циклически собирает отсчеты сигнала в предсказуемые моменты времени и вычисляет спектр мощности. Такое приложение должно не только анализировать сигнал блоками, но и делать это в режиме точка-за-точкой.
Процедуры поточечного анализа
Во многих приложениях процедуры поточечного анализа требуют повышенной производительности. Вместо того, чтобы анализировать блоки данных, эти процедуры накапливают данные в памяти и вычисляют новые значения на основе этих данных и нового значения (имеется в виду, что процедуры сохраняют не собираемые данные, а только предыдущий результат, и вычисляют новый результат на основе предыдущего результата и вновь полученного отсчета). В процессе того, как эти процедуры анализа получают отдельные отсчеты, они генерируют и точечные оценки, и массивы значений. Например, поточечный цифровой фильтр получает отдельный отсчет и выводит отфильтрованное значение. Функция спектра мощности могла бы получать очередной отсчет и генерировать массив частотного профиля. Жесткое реальное время в этой ситуации необходимо, поскольку при потере отсчета или задержке отсчета во времени нарушится целостность накопленных данных.
Рис. 4. Поточечный анализ
Собственно производительность
Процедуры поточечного анализа позволяют уменьшить временную задержку между моментом сбора данных и моментом генерации результирующего массива. Например, простой цифровой фильтр собирает 1000 отсчетов в секунду, фильтрует данные и генерирует массив отфильтрованных значений. Такой массив генерируется в течение всей секунды, когда был принят отсчет, что вызывает большую временную задержку или сдвиг по фазе. При поточечной фильтрации массив выходных значений формируется после сбора каждого отсчета, что приводит к уменьшению временной задержки до микросекунд.
Улучшенное принятие решений
Можно достичь лучших результатов при принятии решений, если использовать в своем приложении процедуры поточечного анализа. Производя фильтрацию по приходу каждого нового отсчета, увеличивается разрешающую способность вашего процесса принятия решений. Если хотите отключить систему, если низкочастотная величина превышает некоторый уровень, можете обратиться к отфильтрованному сигналу и сравнить его значение с установкой. При поблочном анализе решение может занять всю секунду, в течение которой сигнал регистрируется и фильтруется. При поточечном анализе можете анализировать значения по мере их сбора и сравнивать их с установкой каждую миллисекунду.
Наивысшая производительность
Процедуры поточечного анализа часто более эффективны, чем их поблочные аналоги. Вместо того, чтобы пересчитывать выход по всему набору данных, поточечный анализ вычисляет текущее выходное значение на основе нескольких предыдущих значений, текущего значения и предыдущего результата.
Реагирование на события в реальном времени
Реагируя в реальном времени на события, можно откликаться на отдельное событие в течение отведенного временного промежутка. Система реального времени гарантирует минимальное время реакции на событие. События могут приходить периодически или случайно. Пример приложения, реагирующего на внешние события в реальном времени - фабричная система мониторинга безопасности. Если технологический процесс вступает в опасное состояние, система реального времени обязана гарантированно быстро отреагировать на это. Реагирование может заключаться в отключении критических компонентов.
Латентный период
Латентный период (latency) используется для описания времени реакции на событие. Эта характеристика подобна характеристике предсказуемости в управляющих системах. При реагировании на события в режиме реального времени гарантировать минимально возможный латентный период. Латентный период на промышленном производстве может рассматриваться как максимальное время, требуемое на отключение критических компонентов при возникновении «опасного» события.
Сети в системах реального времени
Построение АСУ РВ требует организации множества распределенных вычислительных систем в единую сеть. Отметим, что особой задачей построения АСУ РВ, является именно организация сетевого взаимодействия в реальном времени.
В системах, построенных на основе ОС РВ OS QNX получили распространение несколько типов сетей:
О сетях Ethernet сказано достаточно много, отметим лишь, что для целей АСУ РВ они не совсем подходят. В связи с этим и были разработаны сети QNET. Остановимся более детально на сетях QNET.
В простейшем случае локальная сеть обеспечивает разделяемый доступ к файлам и периферийным устройствам для нескольких соединенных между собой компьютеров. OS QNX идет гораздо дальше этого простейшего представления и объединяет всю сеть в единый, однородный набор ресурсов.
Любой процесс на любом компьютере в составе сети может непосредственно использовать любой ресурс на любом другом компьютере. С точки зрения приложений не существует никакой разницы между местным или удаленным ресурсом, и использование удаленных ресурсов не требует каких-либо специальных средств. Более того, чтобы определить, находится ли такой ресурс как файл или устройство на локальном компьютере или на другом узле сети, в программу не потребуется включать специальный дополнительный код!
Пользователи могут иметь
Модель единого компьютера
QNX изначально проектировалась как сетевая ОС. В некоторых отношениях сеть QNX напоминает скорее большую ЭВМ, нежели набор мини-компьютеров. Однако, в отличие от большой ЭВМ, «единый компьютер» QNX обеспечивает гораздо более быструю реакцию системы, т.к. соответствующий объем вычислительных ресурсов может быть выделен на каждом узле в соответствии с потребностями каждого пользователя.
В условиях управления производством используются программируемые контроллеры и другие устройства ввода/вывода, работающие в режиме реального времени, которые могут потребовать больше ресурсов, чем другие менее ответственные приложения, такие как, например, текстовый редактор. Сеть QNX достаточно «отзывчива», чтобы поддерживать оба этих типа приложений одновременно — QNX позволяет сфокусировать вычислительную мощность системы на производственном оборудовании там, где это необходимо, не жертвуя в то же время интерфейсом пользователя.
Гибкая поддержка сети
Сеть QNX может быть построена с использованием различного оборудования и стандартных промышленных протоколов. В силу своей полной прозрачности для прикладных программ и пользователей, новые сетевые архитектуры могут быть внедрены и исключены динамически, в любое время, не нарушая при этом целостности операционной системы и не прерывая ее работы.
Такая степень прозрачности является еще одним примером больших возможностей архитектуры QNX, основанной на передаче сообщений (IPC). Во многих ОС такие важные функции как поддержка сети и IPC выполнены в виде надстроек над ОС, а не интегрированы непосредственно в ее сердцевину. Результатом такого подхода является неуклюжий и неэффективный интерфейс с «двойным стандартом», когда связь между процессами — это одно дело, в то время как проникновение в скрытый интерфейс таинственного монолитного ядра — совершенно другое дело!