Главная » Просмотр файлов » Диссертация

Диссертация (1148255), страница 15

Файл №1148255 Диссертация (МАКС DSM Система распределённой общей памяти для мультиагентных систем в IoT) 15 страницаДиссертация (1148255) страница 152019-06-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 15)

Неполучив от Копии ответа в течение заданного времени, Сервер делает вывод овыходе Копии из строя и назначает один из Клиентов новой Копией, отправивему специальное сообщение. Поскольку все узлы поддерживают текущее состо­яние блокировок в актуальном состоянии, любой из них может занять рольКопии.Выход из строя Сервера возможен в следующих случаях:1. После получения сообщения CLN_ASK_SRV_*_LOCK.Копия отслеживает появление таких сообщений и ожидает получить отСервера сообщение SRV_ASK_BCK_*_LOCK в течение заданного времени. Ес­ли ожидаемое сообщение не было получено, Копия «делает вывод» о вы­1Этот и другие таймауты определяются низлежащим сетевым уровнем и зависят от способа организациимеханизма упорядоченной доставки широковещательных сообщений.86ходе Сервера из строя и берёт на себя его роль.

Один из Клиентов назна­чается новым Сервером новой Копией, и система продолжает работу.2. После получения сообщения BCK_CNF_SRV_*_LOCK.ЗдесьКопияотслеживаетотправкуСерверомсообщенияSRV_CNF_CLN_*_LOCK и, в случае его отсутствия, действует аналогичнопредыдущему пункту.3. ПослеполучениясообщенияCLN_ASK_SRV_UPDATEилиCLN_ASK_SRV_RELEASE_LOCK.Сервер должен отреагировать сообщением SRV_ASK_BCK_UPDATE илиSRV_ASK_BCK_RELEASE_LOCK.

Обработка аналогична пунктам выше.4. ПослеполучениясообщенияBCK_CNF_SRV_UPDATEилиBCK_CNF_SRV_RELEASE_LOCK.Сервер должен отреагировать сообщением SRV_CNF_CLN_UPDATE илиSRV_CNF_CLN_RELEASE_LOCK соответственно. Обработка аналогична пунк­там выше.5. При выделении блокировки следующему по очереди узлу.Копия не поддерживает очереди запросов на блокировки и не может рас­познать такую ситуацию. Однако если узел, ожидающий выполнения за­проса на блокировку, не обнаруживает активности Сервера в течение за­данного времени, то запрос на блокировку повторяется.

В этом случаеКопия отработает процедуру согласно пункту 1.Одновременный выход из строя Сервера и Копии является максимальносложным случаем. Ситуация определяется по отсутствию активности Сервера втечение длительного времени. В этом случае Клиент с минимальным значениемID берет роль Сервера на себя и назначает новую Копию. Список имеющихсяID предоставляется системой гарантированной доставки сообщений1 .1Что выглядит лишней связью между уровнями абстракции, и в перспективе данный механизм может873.5. Программная архитектура3.5.1.

Верхнеуровневая архитектураНа верхнем уровне узел МАС, функционирующий под управлением ОСРВМАКС с интегрированным решением МАКС DSM можно представить в виде,изображенном на рис. 3.2.Рисунок 3.2 – МАКС DSM в составе функционирующего узла МАСОсновными компонентами являются:1. Прикладное ПО. Соответствует пользовательскому приложению, разрабо­танному для функционирования под управлением ОСРВ МАКС и исполь­зующему возможности МАКС DSM для совместной работы с даннымигруппы устройств в системе.2.

Прикладной интерфейс МАКС DSM. Предоставляет интерфейс для ис­быть реализован иначе.88пользования разделяемых данных. Содержит средства для описания раз­деляемых переменных, а также определения секций доступа.3. Ядро МАКС DSM. Содержит алгоритмы DSM и осуществляет реализа­цию прикладного интерфейса. Выполняет операции, необходимые для сов­местного доступа к данным (блокировки, копирование, управление объек­тами синхронизации), формирует и обрабатывает сообщения протоколаDSM, обеспечивает выполнение узлом назначенной ему роли.4.

Радиомодуль. Аппаратура для передачи данных через эфир. Содержитприемопередатчик и средства управления им.5. ОСРВ МАКС. Является средой для выполнения всех программных ком­понентов. Управляет пользовательскими и служебными задачами, предо­ставляет интерфейс к аппаратуре, содержит вспомогательные алгоритмы,а также указанные ниже компоненты.6. Сетевой уровень.

Служит для приёма и отправки широковещательныхсообщений с гарантированной доставкой. Является низлежащим уровнемсистемы связи относительно МАКС DSM.7. Драйвер радиомодуля. Предоставляет программный интерфейс к возмож­ностям радиомодуля. Преобразует пакеты сетевого уровня для отправкичерез физический канал и обратно.Результаты данного исследования воплощены в компонентах, указанныхв списке выше под номерами 2 и 3. Однако так как реализация прикладногоинтерфейса МАКС DSM уже была достаточно подробно рассмотрена в разделе3.1, сосредоточимся на описании ядра созданной системы.3.5.2. Основные компоненты ядра МАКС DSMВ нотации UML основные классы МАКС DSM представлены на рис. 3.3.Используется упрощенный вариант нотации (опущена информация по членам89классов, а также множество менее значимых классов).Рисунок 3.3 – Основные классы МАКС DSM в нотации UMLОсновой реализации МАКС DSM является класс DSM_Node.

Существуетединственный экземпляр этого класса для каждого узла (паттерн проектиро­вания «Одиночка»). Объект хранит всю информацию, относящуюся к МАКСDSM, контролирует приём и передачу сообщений через низлежащий сетевойуровень, а также обеспечивает пользовательский интерфейс, представленныйсекциями доступа к разделяемым данным.Для хранения информации о разделяемых данных предназначен классDSM_Context. Список экземпляров классов данного типа хранится внутриDSM_Node.

В DSM_Context также содержится опущенная на схеме информа­ция о состоянии блокировки, очередь запросов на блокировку (см. классDSM_LockReq), мьютексы, обеспечивающие потокобезопасность, а также отра­женный на схеме список объектов типа MDSM_Shared для секций, ожидающихизменения данных.Класс MDSM_Shared служит для работы с разделяемой переменной. Суще­ствует единственный экземпляр, хранящий её текущее значение. Помимо этого,могут быть созданы экземпляры с копией значения, используемые в секцияхдля отслеживания изменений и мгновенного доступа без блокировки.90Сообщения МАКС DSM представлены классом DSM_Msg.Для получениясообщений служит класс DSM_RecvTask (задача ОСРВ МАКС).

Он получаетпакет из низлежащего сетевого уровня, преобразует этот пакет в сообщение, и,в зависимости от типа сообщения, вызывает метод из DSM_Node для его обработ­ки. Кроме этого, производится фильтрация сообщений – таким образом, узел всистеме получает только те сообщения, что предназначены для его роли.Класс DSM_LockReq представляет собой запрос на блокировку. Он содер­жит ID узла, пытающегося осуществить блокировку и признак эксклюзив­ности доступа.

Экземпляры образуют очередь FIFO, связанную с объектомDSM_Context. После того, как разделяемая переменная становится доступнадля блокировки, Сервер выбирает из очереди следующий по порядку запроси выполняет соответствующую операцию. Если требуется неэксклюзивная бло­кировка, то в течение одного сеанса будут удовлетворены все запросы данноготипа в очереди, так как они не зависят друг от друга, и принципы моделиконсистентности не нарушаются.3.6. ЭкспериментВ данном разделе рассмотрим простую задачу, демонстрирующую работо­способность созданной системы МАКС DSM.Постановка задачиПусть необходимо обеспечить отказоустойчивое выполнение некоторой вы­числительной задачи несколькими устройствами. Под отказоустойчивостьюздесь понимается продолжение выполнения задачи при выходе из строя одногоили более произвольных устройств системы до тех пор, пока остаётся, по край­ней мере, одно исправное устройство.

При выходе из строя устройств системы,потери данных (промежуточных результатов) решаемой задачи происходить недолжно.91Решение задачиПод вычислительной задачей примем простое увеличение целочисленно­го счётчика. Система будет состоять из трёх устройств, аналогичных описан­ным в разделе 3.7.1 и дополненных цветными LCD экранами. Имитация выходаустройств из строя производится путём их выключения (отключения питания).Визуализация работы системы производится путём отображения на экранахустройств текущего значения счётчика. С целью повышения наглядности, уве­личение счётчика должно происходить примерно один раз в секунду.Ключевые фрагменты программы представлены на рис.

3.4, при этом опу­щен код для создания потоков и реализация функции Show, осуществляющейвывод на экран.1 MDSM_DECLARE(X)2int c o u n t e r ;3 MDSM_DECLARE_END45// Поток №16while ( true )7{8MDSM_ACCESS_RW(X)9++ MDSM_ITEM( c o u n t e r ) ;10Task : : Delay ( 1 SEC ) ;1112MDSM_ACCESS_END}1314// Поток №215while ( true )16{17MDSM_ACCESS_ON(X)18Show (MDSM_ITEM( c o u n t e r ) ) ;1920MDSM_ACCESS_END}Рисунок 3.4 – МАКС DSM программа «счётчик»Аналогично представленному в разделе 3.1 примеру, в строках 1–3 опре­92деляется группа распределённых переменных с именем , содержащая един­ственную переменную counter.Строки 6–12 являются ключевыми – именно здесь выполняется «вычисли­тельная задача» – увеличение распределённого счётчика.

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

Задержка же, размещенная внутри критической сек­ции, гарантирует, что блокировки не будут случаться чаще, чем раз в секунду.Как только время задержки истечёт, будет осуществлена блокировка другим(или тем же самым)1 устройством и выполнится очередное увеличение значе­ния счётчика.Строки 15–20 показывают содержимое второго потока, отвечающего заотображение значения счётчика на экране. Здесь используется секция, блоки­рующая выполнение потока до возникновения события изменения распределён­ных данных.

Как только текущее устройство обнаружит факт изменения, вы­полнится вход в секцию (причём значением объектов группы будет резуль­тат произошедшего обновления). Функция Show выводит значение, переданноев качестве параметра на экран. После выхода из секции начинается новый цикложидания.После загрузки данной программы в тестовые устройства, отладочныйстенд вёл себя в полном соответствии с ожиданиями: устройства отображалиодно и то же значение, возрастающее на единицу каждую секунду2 . При этом1Поскольку узел МАКС DSM, выполняющий роль Сервера (см. раздел 2.2.2), поддерживает очередизапросов на блокировки, запрос от текущего устройства окажется в конце очереди, а блокировку получиткакое-то другое устройство.

Впрочем, это не существенно для выполнения условий поставленной задачи.2Возникновения дополнительных задержек удалось избежать благодаря поддержке очередей запросов93отображение нового значения выполнялось на всех устройствах синхронно1 .Выполнение требования отказоустойчивости было проверено методом бета­тестирования – в серии экспериментов произвольным образом отключалось пи­тание у одного, а затем и второго устройства из трёх. Ни в одном из экспе­рименов сбоя системы добиться не удалось – счётчик корректно и монотонноувеличивался на остающихся устройствах (остающемся устройстве).

Однако бы­ло замечено, что секундная задержка в случае выключения устройств не всегдавыдерживается. Проведенный анализ показал, что:1. Если устройство владеет блокировкой и отсчитывает секундную паузу,выключение такого устройства в самом начале его отсчёта приводит ксокращению паузы между приращениями счётчика. Это происходит попричине передачи блокировки другому устройству, которое при её полу­чении сразу выполняет увеличение счётчика, и только затем начинаетотсчитывать новую задержку. Таким образом, информация о задержкеотключённого устройства теряется.2. Выключение Сервера примерно в момент завершения интервала задерж­ки приводит к увеличению стандартной паузы за счет дополнительноговремени, необходимого на восстановление Сервера.Эффект под номером 2 визуально заметить сложно, однако первый эф­фект вполне различим, и его можно усилить, увеличив интервал задержки донескольких секунд.

Характеристики

Тип файла
PDF-файл
Размер
806,38 Kb
Высшее учебное заведение

Список файлов диссертации

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее