Применение облачных вычислений в системах реального времени
Авторы: Соломаха С.С., Мальчева Р.В., Дегтярева И.И.
Источник: IX Международная научно–техническая конференция Информатика, управляющие системы, математическое и компьютерное моделирование
(ИУСМКМ — 2018) — 2018 / Материалы IX Международной научно-технической конференции Информатика, управляющие системы, математическое и компьютерное моделирование
(ИУСМКМ — 2018). — Донецк: ДонНТУ, 2018. с. 182-186. http://iuskm.donntu.ru/electronic/iusmkm2018.pdf
Аннотация
Соломаха С.С., Мальчева Р.В. Применение облачных вычислений в системах реального времени. Рассмотрена проблема использования облачных функций в системе реального времени. Построены математическая и физическая модели. Проведены исследования трудоемкости и определена граница эффективности использования облачных функций для рассматриваемой конфигурации аппаратных средств.
Annotation
Solomakha S.S., Malcheva R.V., Dzehtsiarova I.I. Application of the cloud computing in real-time systems. The problem of a cloud computing application in real-time systems is considered. The mathematical and physical models are developed. The results of modeling are presented. Investigations of labor intensity are carried out and the boundary of the effectiveness of using cloud functions for the considered hardware configuration is determined.
Общая постановка проблемы
Системы реального времени имеют жесткие ограничения на временные (динамические) характеристики работы [1]. В стремлении к компактности, вычислительная мощность таких систем уменьшается. Установленные ограничения на время выполнения программы и максимальная возможная частота микропроцессора определяют максимальную трудоемкость алгоритма. В случае наличия ограничений на размеры и вес устройства, а также выхода алгоритма за пределы максимально-допустимой трудоемкости, физическая реализация устройства оказывается под сомнением. Одним из подходов для решения данной проблемы может служить вынесение трудоемких частей алгоритма в виде функций на внешние вычислительные ресурсы — в облако — с обеспечением последующего доступа к ним.
Обобщенная математическая модель
Для формализации задачи рассмотрим обобщенную математическую модель. Известно, что трудоемкость алгоритма определяется необходимым количеством процессорных операций и операций ввода-вывода [2]. Допустим, что в рассматриваемой системе реального времени скорость обработки команд равна частоте базового микропроцессора, а длительность обработки одной команды составляет 1 такт. Тогда, при наличии в системе ограничения на время реакции и при постоянной частоте, можно определить максимальную трудоемкость алгоритма по следующей формуле:
(1) | |
где – максимальная трудоемкость алгоритма,
– частота обработки команд,
– время реакции на внешнее событие.
В случае вынесения алгоритма на внешние вычислительные ресурсы суммарное значение времени передачи данных (при передаче функции параметров), собственно времени выполнения функции и времени получения результата не должно превышать времени выполнения той же функции микропроцессором. Следовательно, должно выполняться условие:
(2) | |
где – время передачи данных облачной функции,
– время выполнения облачной функции,
– время получения результата от облачной функции,
– время обработки данных микропроцессором,
– количество передаваемых байт,
– количество получаемых байт,
– трудоемкость алгоритма.
Структурная схема модели
Основными элементами модели являются: микропроцессорная система реального времени, интерфейс передачи данных, среда передачи данных и облачный сервер.
Существует немало вариаций подключения микропроцессорных систем к облачным серверам. Модули взаимодействия с Интернетом могут быть подключены к универсальному асинхронному приемо-передатчику микропроцессора (UART-интерфейсу) [3]. В свою очередь, процесс доступа к облачной функции заключается в подключении к точке входа в облако, которую обычно обслуживает балансировщик сетевой нагрузки, распределяющий подключение на наиболее подходящий сервер, где выполняется функция [4].
Таким образом, можно упростить рассмотрение модели взаимодействия микропроцессора с облачным сервером, представив последний как компьютер (РС) с USB-входом. Для согласования UART и USB используется адаптер, который может быть и беспроводным [5].
Cтруктурная схема модели приведена на рис. 1.
При условии, что время приема и время передачи данных по UART равны, временные функции имеют вид:
(3) | |
где – скорость передачи данных, байт/сек;
– количество байт.
(4) | |
где – скорость передачи данных, бод/сек;
– количество байт;
– количество стоповых бит;
– бит четности (равен 1, если присутствует, иначе 0);
– количество битов в передаваемом байте.
(5) | |
где – частота обработки команд компьютером.
(6) | |
где – частота обработки команд микроконтроллером.
Физическая модель
Построение физической модели осуществлено в соответствии со структурной схемой, разработанной ранее (рис. 1).
Для построения модели использованы следующие компоненты:
— PC на базе AMD Phenom II B70 (3 ядра), под управлением Windows 10 Pro;
— отладочная плата MikroElektronika EasyPIC Fusion v7 с MCU PIC24EP512GU810.
Микроконтроллер PIC24EP512GU810 относится к серии промышленных микроконтроллеров и может применяться для построения систем реального времени [6].
Трудоемкость алгоритма затруднительно просчитать предварительно из-за наличия условных переходов, по ветвям которых находятся фрагменты разной длины. При этом трудоемкость алгоритма можно определить эмпирически, путем подсчета количества тактов процессора, в период выполнения алгоритма. Это можно сделать с помощью синхронного счетчика, запустив счет в начале выполнения алгоритма и остановив его в конце.
Исследование физической модели заключается в измерении времени выполнения алгоритмов полезной нагрузки одинаковой трудоемкости, выполняемых локально и удаленно, с учетом времени передачи данных. Для определения порога эффективности, трудоемкость алгоритма увеличивается итерационно. Измерение времени производится на стороне микроконтроллера, где в качестве средства измерения используется один из таймеров, задействованный в роли счетчика тактов. В изучаемой модели в качестве функции полезной нагрузки используется функция поиска в тексте фраз по их MD5 хеш-сумме.
Измерения времени предполагается производить для функций, использующих в реализации алгоритмы полезной нагрузки одинаковой трудоемкости, выполняемые локально и удаленно. Фрагмент исходного кода для осуществления измерений имеет вид:
// Измерение локальной функции
StartMeasure();
my_sz = md5search(Text, i*2+10, &md5c, bBuf1, szBuf1);
StopMeasure(&PERF);
telemetry_cloud(&PERF, F_MD5SRCH_LOCAL);
// Измерение удаленной функции
StartMeasure();
cl_sz = md5search_cloud(Text, i*2+10, &md5c, bBuf2, szBuf2);
StopMeasure(&PERF);
telemetry_cloud(&PERF, F_MD5SRCH_CLOUD);
Основные параметры моделей:
1) трудоемкость алгоритма — определяется экспериментально;
2) объем передаваемых данных, с учетом протокола обмена, в байтах, определяется по формуле (7):
(7) | |
где – номер итерации.
3) объем получаемых параметров с учетом протокола обмена
4) частота микроконтроллера
5) частота процессора ПК
6) UART — скорость передачи 9600, по 8 бит, с 1 стоповым разрядом и без четности.
Результаты моделирования
Для выполнения моделирования на базе математической модели необходимо получить значения трудоемкости алгоритма. Трудоемкость алгоритма определена путем измерения длительности выполнения алгоритма в тактах, при условии, что 1 такт соответствует 1 команде (операции). Измерения получены с использованием физической модели. Зависимость трудоемкости алгоритма полезной нагрузки от номера итерации отражена на графике (рис. 2).
В результате исследования математической и физической моделей было определено время выполнения алгоритма полезной нагрузки локально и удаленно, с учетом времени передачи данных. Зависимости времени выполнения алгоритмов полезной нагрузки, с учетом времени передачи данных, от номера итерации (трудоемкости алгоритма) отражены на графике (рис. 3), отклики математической модели отображены пунктиром. Графики, отражающие время выполнения алгоритма полезной нагрузки локально и удаленно, пересекаются в точке A.
В результате моделирования удалось определить, что для данной конфигурации аппаратных средств имеет смысл вынести в облако функции с трудоемкостью более 3,2 млн. операций.
Выводы
На основе математической модели разработана физическая модель, получены данные моделирования, проведен анализ процесса использования облачных функций в системах реального времени. Для использованной конфигурации аппаратных средств определена граница эффективности вынесения функций в облако.
Литература
- Климентьев К.Е. Системы реального времени: обзорный курс лекций / Самар. гос. аэрокосм. ун-т. Самара, 2008. 45 c.
- Оценка трудоемкости алгоритма / URL: http://life-prog.ru/1_56130_otsenka-trudoemkosti-algoritma.html (дата обращения: 12.04.2018)
- Востриков А.А., Балонин Н.А., Сергеев А.М. Внутриплатные интерфейсы встраиваемых систем: Учеб. пособие / СПбГУАП. СПб., 2012.
- Федоров А. Н. и Мартынов Д. В. Windows Azure: Облачная платформа Microsoft, М.:, 2010. — 100 с.
- Malcheva R., Naaem H. Development of the Data Transferring System Using SoC // European Scientific Journal. 2014. Т. 10. № 7. PP. 168-172.
- 16-битные микроконтроллеры Microchip / URL: http://www.pic24.ru/doku.php/articles/mchp/16_bit_mcu (дата обращения: 12.04.2018)