Параллельные процессы обработки потоков данных в системах безопасности

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 17.11.2015
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

if(MapHandleF) CloseHandle(MapHandleF);

if(MapFileHandleF) CloseHandle(MapFileHandleF);

sprintf(Section,"%s\\mpchannelmng_f%d.exc",CW_AlgPath,NumberCW);

DeleteFile(Section);

MappedPointerF=NULL;

MapHandleF=NULL;

MapFileHandleF=NULL;

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

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

3.3 Разработка процедур распределения потоков данных и сбора результатов

Рассмотрим написание процедур запуска исполнительных модулей, распределения потоков в основном модуле и сбор конечных результатов. Для этого в сервер Ядра системы MegaSenseV7 внесем изменения, связанные с переходом от последовательной обработки каналов на единой копии библиотеки Megalib к параллельной обработке данных с использование исполнительных модулей и класса взаимодействия. Как было описано ранее, основной процесс берет на себя функции ввода изображений по всем каналам. В зависимости от устройства ввода (или нескольких разнородных устройств) определяется максимальное количество разрешенных каналов ввода и основной модуль инициализирует свою собственную библиотеку, но без каналов обработки. Загружает устройство ввода и определяет максимальное число рабочих каналов.

UINT MaxSecChannels = MPResource(NULL);

UINT MaxUsesCarChannels = MPResource(CFENABLED);

MPCreateEx(MaxSecChannels,0,0,0);

HDEVICE md = IDAdd(DeviceName,0);

UINT MaxUsesChannels = IDGetMaxChannels();

Устанавливаем разрешенное количество исполнительных модулей равное числу максимально возможного количества каналов ввода.

#define MAX_ENABLED_CLASSES 32

TCWClass *WChannel[MAX_ENABLED_CLASSES];

UINT CW_Number;

memset(WChannel,0,sizeof(TCWClass *)* MAX_ENABLED_CLASSES );

CW_Number = MAX_ENABLED_CLASSES;

if(MaxUsesChannels<CW_Number) CW_Number = MaxUsesChannels;

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

UINT *CW_Num = new UINT [CW_Number];

memset(CW_Num,0,sizeof(UINT)*CW_Number);

UINT CW_Count=0;

for(int i=0;i<MaxUsesChannels;i++){

CW_Num[CW_Count]++;

CW_Count++;

if(CW_Count>=CW_Number) CW_Count=0;

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

for(int i=0;i<CW_Number;i++){

WChannel[i] = new TCWClass(this);

strcpy(WChannel[i]->CW_AlgPath,AlgPath);

WChannel[i]->CW_MPCreateEx(0,CW_Num[i],0,0);

delete CW_Num;

Далее обращение к функциям модулей производится как к обычным локальным функциям, но через класс WChannel. Например:

WChannel[channel-channel/CW_Number*CW_Number]->CW_СFCHRestart(channel/CW_Number,&InitParam);

Для установки параметров кадра и передачи изображений введены дополнительные функции, которых нет в стандартных функциях библиотеки:

VOID TCWClass::CW_CFCHSetFrameParam(UINT Channel, TCHANNELPROPERTY *prop);

UINT TCWClass::CW_CFCHPutData(UINT Channel,void *imgbuf);

UINT TCWClass::CW_CFCHGetData(UINT Channel,MOTIONRESULT *MotResult,char *maskl);

Функция CW_CFCHSetFrameParam осуществляет установку параметров кадра для осуществления обмена меду классом и исполнительным модулем, функция CW_CFCHPutData осуществляется запуск исполнительного модуля на обработку, а функция CW_CFCHGetData обеспечивает чтение результатов обработки.

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

if(WChannel[ch-ch/CW_Number*CW_Number]->MFlag[ch/CW_Number]==FLAG_EMPTY)

WChannel[ch-ch/CW_Number*CW_Number]->CW_MDCHPutData(ch/CW_Number,Image);

Одновременно с этим в том же самом цикле осуществляем проверку окончания обработки ранее загруженного изображения и в случае наличия флага FLAG_READY осуществляем чтение результата. После завершения процедуры обмена флаг готовности исполнительного модуля устанавливается в состояние FLAG_EMPTY, что означает его готовность к приему очередных данных.

if(WChannel[ch-ch/CW_Number*CW_Number]->MFlag[ch/CW_Number]==FLAG_READY){

WChannel[ch-ch/CW_Number*CW_Number]->CW_MDCHGetData(ch/CW_Number);

WChannel[ch-ch/CW_Number*CW_Number]->MFlag[ch/CW_Number] = FLAG_EMPTY;

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

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

for(int i=0;i<CW_Number;i++){

if(WChannel[i]) {

WChannel[i]->CW_MPRelease();

delete WChannel[i];

}

WChannel[i]=NULL;

MPRelease();.

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

3.4 Оформление разработанных модулей в конечный продукт

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

Разработанный и скомпилированный исполнительный модуль mpchannelmng.exe размещается в каталог библиотеки с соответствующим отражением в руководстве пользователя. В каталог документации размещается исходный код управляющего класса с подробным описанием всех методов и переменных, которые использует данный объект. К данным файлам относятся CWManager.cpp - исходный код на языке программирования C++ и CWManager.h - файл описания класса.

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

4. Тестирование

4.1 Сравнительная оценка производительность конечной системы

Произведена сравнительная оценка производительности конечной системы. Тестирование производится на 4-х ядерном процессоре Intel® Core™ i7 930 @2.80GHz, в аппаратно-программном комплексе MegaSense V7, предназначенном для решения задач по охране, видеонаблюдению, аудио контролю, регистрации данных, контролю доступа и т.д. В этом комплексе уже активно используются разработаннаые модули. Информация о состоянии процессора будет получена с помощью встроенного в операционную систему Windows приложения "Диспетчер задач".

Для начала будет запущен 1 исполнительный модуль и 16 каналов с поступающими и обрабатываемыми данными.

Вся нагрузка располагается на единственном исполнительном модуле mpchannelmng.exe, при этом основной модуль MSKernel.exe оказывается в режиме ожидания, так как вся мощность находится в единственном исполнительном модуле. При этом загрузка центрального процессора составляет 26%.

Рисунок 11. Нагрузка при одном исполнительном модуле

Главной задачей является обеспечение обработки 16 каналов в режиме реального времени. Воспользовавшись статистикой выполнения операций программного комплекса MegaSense V7, были получены следующие данные:

Рисунок 12. Статистика быстродействия

В окне статистики для каждого из каналов выводятся усредненные за 5 секунд параметры быстродействия:

среднее время ввода одного кадра (колонка "Ввод");

среднее количество введенных кадров в секунду (колонка "Кадров");

среднее количество обработанных кадров в секунду (колонка "Обраб.");

Необходимо, чтобы среднее число введенных кадров в секунду и количество обработанных кадров в секунду равнялось примерно 25 кадров в секунду, а время ввода одного кадра составляло 40 миллисекунд. Как видно в статистике, не все каналы справляются с поставленной задачей, так как в секунду 16 каналов должны обрабатывать 400 кадров. Поэтому следующим шагом будет запуск 16 видеоканалов с включенными детекторами на 4-х исполнительных модулях.

Рисунок 13. Нагрузка при четырех исполнительных модулях

Как видно на рисунке 13, нагрузка распределяется поровну на нескольких исполнительных модулях, что повышает производительность, так как обработка происходит параллельно на четырех исполнительных модулях. При этом основной модуль загружается и получает возможность независимо от исполнительных модулей выполнять прочие поставленные задачи. Центральный процессор загружается на 35%.

Рисунок 14. Статистика быстродействия при четырех исполнительных модулях

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

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

Рисунок 15. График зависимости числа обработанных кадров в секунду от количества исполнительных модулей

Как видно по рисунку 15, при увеличении количества исполнительных модулей, растет производительность системы и увеличивается количество кадров в секунду. Отсюда следует, что самым оптимальным вариантом для достижения обработки в режиме реального времени, количество кадров должно быть равно количеству каналов, то есть 16-ти.

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

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

Рисунок 16. График зависимости повышения производительности основного модуля от количества исполнительных модулей

При использовании 16 исполнительных модулей и обработке 16 каналов на них, центральный процессор загружается до 45%, основной модуль потребляет 11% нагрузки, а исполнительные модули потребляют по 1-2% от общей нагрузки. Это означает, что остается достаточно большой запас ресурсов процессора, который позволит увеличить количество каналов обработки и количество исполнительных модулей до 32.

4.2 Определение оптимального соотношения количества вычислительных модулей и количества ядер вычислительной системы

Для определения оптимального соотношения количества вычислительных модулей и количества ядер вычислительной системы, было проведено тестирование, в ходе которого уменьшалось количество ядер в процессоре и подавалась точно такая же нагрузка, как и при 4-х ядрах в тестировании в пункте 4.1. Это тестирование позволяет определить минимальные системные требования для работы системы обработки в режиме реального времени.

При выключении двух ядер, активными остаются 2 ядра и благодаря технологии Hyper Threading, они способны выполнять 4 потока вычисления.

После включения 16 каналов обработки данных, на 16 исполнительных модулях производительность намного уменьшается.

Рисунок 17. Статистика быстродействия при 16 исполнителях модулях, на двухъядерном процессоре с поддержкой HyperThreading

Но, не смотря на понижение производительности, система близка к обработке 16 каналов в режиме реального времени.

При их обработке на двухъядерном процессоре, загрузка процессора будет на предельно высоком уровне и равна 94%.

Рисунок 18. Нагрузка при 16 исполнительных модулях на двухъядерном процессоре

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

Таблица 3

Количество ядер (потоков вычисления)

Число исполнительных модулей

Число кадров в секунду

Загрузка центрального процессора

4(8)

16

400

45%

4(8)

12

396

40%

4(8)

8

384

37%

4(8)

4

376

35%

4(8)

1

367

26%

2(4)

16

400

94%

2(4)

12

394

84%

2(4)

8

380

80%

2(4)

4

370

80%

2(4)

1

256

58%

1(2)

16

254

100%

1(2)

12

185

100%

1(2)

8

252

100%

1(2)

4

232

100%

1(2)

1

182

100%

Как видно по таблице 3, добиться обработки 16 каналов в режиме реального времени возможно только при 4 и 2 активных ядрах процессора. Двухъядерные процессоры позволяют производить обработку максимум 16 каналов, так как дальнейшее повышение количества каналов и количества исполнительных модулей будет сильно уменьшать быстродействие.

Одноядерные процессоры не позволяют производить обработку 16 каналов в режиме реального времени, чтобы узнать, какое количество каналов может обрабатывать процессор в режиме реального времени, необходимо уменьшить количество каналов. Для достижения цели было необходимо уменьшить количество каналов и исполнительных модулей до 8, при этом центральный процессор был загружен до 96%. Отсюда следует, что одноядерный процессор способен обрабатывать одновременно в режиме реального времени всего 8 каналов, на 8 исполнительных модулях.

многоядерный вычислительный аппаратный программный

Заключение

Высокая производительность системы, является очень важным параметром любого компьютера, но зачастую не все программное обеспечение способно использовать всю скорость компьютера. Существуют программы для обработки потоков данных, которые сильно уменьшают скорость работы системы из-за медленной обработки. В данной работе разработаны модули, позволяющие производить параллельную (одновременную) обработку данных в системах безопасности, что позволяет увеличить скорость работы всего программного комплекса, а также позволяет использовать все доступные ресурсы системы.

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

В процессе разработки были получены следующие результаты:

На основе созданной библиотеки MegaLib были разработаны независимые вычислительные модули.

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

Подробно описаны методы распределения каналов между модулями в системы и представлена полная блок-схема работы алгоритма программы.

Разработаны процедуры распределения потоков данных и сбора результатов.

Проведено тестирование системы, результаты которого демонстрируют распределение нагрузки между исполнительными модулями и всеми ядрами системы. Проверены условия, при которых уровень обработки достигает реального времени. Определены минимальные системные требования процессора, для обработки 16 каналов, вычислена загрузка центрального процессора при разных нагрузках, рассмотрена производительность двухъядерных и одноядерных систем. Разработанные модули активно используются в аппаратно программном комплексе MegaSense V7 и обеспечивают параллельную обработку всех поступающих данных.

Список использованной литературы и источников

1. Многозадачность // OSDev URL: http://ru.osdev.wikia.com/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C (дата обращения: 05.05.2015).

2, 3. Голиков В.А Руководство по изучению дисциплины "Разработка windows приложений на С++". Москва: 2005.

4. Hypervisors, virtualization // IBM URL: http://www.ibm.com/developerworks/cloud/library/cl-hypervisorcompare/ (дата обращения: 06.05.2015).

5. Intel® I/O Acceleration Technology // Intel® URL: http://www.intel.com/content/www/us/en/wireless-network/accel-technology.html (дата обращения: 06.05.2015).

6. Технология Hyper-Threading от Intel // 3DNews URL: http://www.3dnews.ru/172013 (дата обращения: 06.05.2015).

7. Financial Applications on IBM's POWER7+ // Xcelerit URL: http://blog.xcelerit.com/financial-applications-on-ibms-power7/ (дата обращения: 05.05.2015).

8. Теория и практика параллельных вычислений // Интернет-Университет Суперкомпьютерных Технологий URL: http://www.intuit.ru/studies/courses/1156/190/lecture/4942?page=4 (дата обращения: 05.05.2015).

9. Алексей Борзенко. Многоядерные процессоры.

10. Библиотека для создания приложений по определению автомобильных номеров, определению номеров железнодорожных вагонов, систем видеонаблюдения и систем охраны с использованием детекции движения MegaLib V1.2 // Megapixel URL: http://www.mpixel.ru/download/MegaLibV12.pdf (дата обращения: 15.05.2015).

11. В.П. Гергель, Р.Г. Стронгин Основы параллельных вычислений для многопроцессорных вычислительных систем. Издание 2-е, дополненное изд. Нижний Новгород: Издательство Нижегородского госуниверситета, 2003.

12. Скотт Мюллер Модернизация и ремонт ПК. 17-Е ИЗДАНИЕ изд. Москва: Издательский дом “Вильямс”, 2007.

13. Сергей Орлов. Многоядерность, параллелизм, виртуализация. Журнал "LAN", #05, 2006 год // Издательство "Открытые системы"

Размещено на Allbest.ru

...

Подобные документы

  • Аналитический обзор видеосистем с элементами интеллектуальной обработки видеоконтента: FaceInspector, VideoInspector Xpress. Разработка алгоритма организации вычислительных средств комплекса, в структуру поэтапного решения задачи анализа видеообъекта.

    дипломная работа [3,4 M], добавлен 14.06.2012

  • Абстрактные модели и способы параллельной обработки данных, допустимая погрешность вычислений. Понятие параллельного процесса, их синхронизация и гранулы распараллеливания, определение закона Амдаля. Архитектура многопроцессорных вычислительных систем.

    дипломная работа [1,3 M], добавлен 09.09.2010

  • Процесс создания комплексной системы информационной безопасности, предназначенной для обеспечения безопасности всех важных данных сети аптек "Таблэтка". Исследования практики функционирования систем обработки данных и вычислительных систем. Оценка риска.

    курсовая работа [38,8 K], добавлен 17.06.2013

  • Изучение особенностей информационного процесса обработки данных. Процессы, связанные с поиском, хранением, передачей, обработкой и использованием информации. Основные режимы обработки данных на ЭВМ. Организация обслуживания вычислительных задач.

    реферат [130,9 K], добавлен 28.09.2014

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

    дипломная работа [1,3 M], добавлен 01.07.2011

  • Классификация вычислительных систем по способам взаимодействия потоков выполняемых команд и потоков обрабатываемых данных, их разновидности и функциональные особенности. Принципы расширения классификации Флинна. Виды топологии соединительной сети.

    презентация [175,6 K], добавлен 11.10.2014

  • Разработка политики безопасности компании в условиях информационной борьбы. Повышение информационной безопасности в системах обработки данных. Обеспечение устойчивости к противодействию диверсионной и технической разведке. Защита локальной сети.

    курсовая работа [841,2 K], добавлен 13.06.2012

  • Микропроцессор как универсальное устройство для выполнения программной обработки информации. Функциональные возможности и архитектурные решения. Микроконтроллеры в системах управления и обработки информации. Классификация электронно-вычислительных машин.

    курсовая работа [189,6 K], добавлен 12.10.2015

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

    реферат [280,6 K], добавлен 01.12.2010

  • Иcпoльзoвaние мoдeлиpoвaния для oцeнки функциoниpoвaния peaльныx cиcтeм, иccлeдoвaние peжимов paбoты вычиcлитeльныx cиcтeм. Системы обработки данных: реального времени и оперативной обработки. Однопрограммные и мультипрограммные режимы обработки данных.

    лабораторная работа [21,6 K], добавлен 27.11.2009

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

    презентация [8,3 M], добавлен 11.10.2014

  • Определение иерархии системы управления и контроля, а также структуры АСКУЭ. Разработка программного модуля обработки данных счётчиков электроэнергии. Определение технико-экономической актуальности, необходимости и возможности модернизации системы.

    дипломная работа [1,0 M], добавлен 20.05.2017

  • Периоды применения средств вычислительной техники. Переход к новому поколению электронно-вычислительных машин. Системы, основанные на знаниях. Экспертные системы и искусственный интеллект. Этапы обработки данных на ЭВМ. Иерархическая структура знания.

    презентация [170,6 K], добавлен 14.08.2013

  • Создание систем автоматизированного сбора и обработки данных. Разработка информационной системы гостиничного комплекса. Выбор требуемой СУБД и программного обеспечения. Концептуальное, логическое проектирование. Организация ввода данных в базу данных.

    дипломная работа [790,1 K], добавлен 13.02.2016

  • Информационные и автоматизированные системы управления технологическими процессами на промышленных предприятиях. Базы данных в автоматизированных системах управления. Системы планирования ресурсов предприятия, сбора и аналитической обработки данных.

    контрольная работа [486,7 K], добавлен 29.10.2013

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

    дипломная работа [2,9 M], добавлен 04.11.2012

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

    доклад [102,9 K], добавлен 30.04.2011

  • Требования, предъявляемые к свойствам систем распределенной обработки информации. Логические слои прикладного программного обеспечения вычислительных систем. Механизмы реализации распределенной обработки информации. Технологии обмена сообщениями.

    курсовая работа [506,8 K], добавлен 03.03.2011

  • Методы и средства защиты информационных данных. Защита от несанкционированного доступа к информации. Особенности защиты компьютерных систем методами криптографии. Критерии оценки безопасности информационных компьютерных технологий в европейских странах.

    контрольная работа [40,2 K], добавлен 06.08.2010

  • Входные данные - статистические сведения о работе механообрабатывающего цеха, представленные в виде файла. Способы расчета основных характеристик работы. Описание работы созданного программного комплекса. Формы отображения выходных данных проекта.

    курсовая работа [36,8 K], добавлен 23.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.