Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Выбор способа реализации программных модулей и их взаимодействия со средой исполненияСодержание книги
Поиск на нашем сайте Рассмотрев содержание структуры (см. раздел 1, [2]), можно перейти к более сложному вопросу: определение типов связей между модулями системы. Для этого, попробуем определить, в каких модулях может произойти непредвиденный отказ, последствия которого нужно предотвратить. Данные проекта, загружаются в начале работы, и (при необходимости) сохраняются при завершении — отказ при хорошей отладке произойти не может. Отказ ИУ и УИ в любом случае приведет к искажению данных и, как следствие, к отказу всей системы, поэтому подстраховаться тут универсальными программными средствами невозможно. Модуль сравнения двух результатов содержит довольно простой алгоритм и простым тестированием этого модуля можно свести вероятность отказа в нем к нулю. Следовательно, связь этих модулей со средой исполнения можно реализовать через статическую компоновку или статические или динамические библиотеки. Таким образом, единственное «слабое звено» нашей системы – это мультиверсии, так как в них производятся сложные вычислительные операции. Здесь возможны несколько вариантов взаимодействия со средой (представлены, по порядку возрастания потребности в памяти).
1. Статическая компоновка: из исходных кодов, либо с использованием статических библиотек. Проект программной системы выглядит как набор исходных текстов (либо объектных кодов) СМВИ, в который требуется поместить под строго заданными именами исходные тексты (либо объектные коды) мультиверсий, ИУ, УИ, модуля сравнения двух результатов. После этого вызывается makefile – файл сборки проекта (в данном случае, хранящий данные проекта) и получается исполняемый модуль, готовый к исполнению. Преимущества: + простые механизмы взаимодействия между модулями Обращение к функции модуля является простым вызовом функции. Это позволяет снизить объем кода, а следовательно и количество возможных ошибок. К тому же, это самый быстрый из всех вариантов взаимодействия. + эта модель обладает самой большой производительностью и самой низкой потребностью к памяти + данная модель не требует от ОС (либо эмулирующего ее модуля) только наличия функций поддержки многопотоковости и объектов синхронизации.
Недостатки: - общий процесс для всех модулей Одно необработанное исключение в любом модуле приведет к отказу процесса, а, следовательно, и всей системы управления. - общее адресное пространство у версий и среды исполнения При «зависании» одной из версий, СМВИ вынуждена будет ее перезапустить, т.е. удалить старый поток и создать его заново. Из-за общего адресного пространства операционная система (ОС) заблокирует весь процесс на время удаления потока (что может продлиться от миллисекунд до нескольких секунд), что может оказаться катастрофичным для объекта управления. - накапливаемые утечки памяти При перезапуске версии, неизбежно будут возникать «утечки памяти», которые могут привести к неработоспособности (либо отказу) как среды исполнения, так и перезапущенных версий. Бороться с ними можно либо создав в СМВИ общие механизмы выделения и освобождения памяти, и обязать использовать их мультиверсии (что несколько снизит производительность), либо использовать статическую память (что не всегда возможно). - для внесения изменений в любую часть системы, необходимо перекомпилировать всю систему и заново производить сборку проекта
2. Компоновка с использованием динамических библиотек В этом случае, среда мультиверсионного исполнения представлена исполняемым модулем. Файлы с ИУ, УИ, версиями, модулем сравнения двух результатов и файл проекта выполнены в виде динамических библиотек со строго заданными в файле проекта именами. Для запуска такого проекта, достаточно поместить все файлы в одну папку и запустить исполняемый модуль.
Преимущества: + простые механизмы взаимодействия между модулями + данная модель не требует от ОС (либо эмулирующего ее модуля) только наличия функций поддержки многопотоковости и объектов синхронизации.
Недостатки: - общий процесс для всех модулей - общее адресное пространство у версий и среды исполнения - накапливаемые утечки памяти
3. Компоненты выполнены в отдельных исполняемых модулях Для запуска проекта необходимо запустить все эти модули. Делать это вручную нецелесообразно, так как это ставит в зависимость производительность среды от оператора. Поэтому следует создать специальные программы-агенты, следящие за запуском всех модулей и перезапускающие их при необходимости. При использовании такой модели для исполнения всех моделей на одном компьютере, агенты можно встроить в саму среду исполнения через дополнительный код в файле проекта. Но при сетевом распределении модулей, встроить агентов в среду будет затруднительно, потому что возникнут трудности с отслеживанием состояния процесса на удаленной машине и его удаленного перезапуска. Данную модель можно разделить на две, по виду взаимодействия между исполняемыми модулями:
А) через общие участки памяти (например, файлы);
Преимущества: + нет утечек памяти при рестарте потоков + утечки памяти не катастрофичны + необработанное исключение приведет только к отказу одного модуля, и безопасно для системы
Недостатки: - усложнение модулей, для обеспечения синхронизации доступа к общим участкам памяти и, как следствие, возможное снижение надежности. К тому же, могут возникнуть ситуации, способные привести к отказу системы. Например, отказ одного из модулей в момент передачи данных: помещенные в память данные не корректны, из-за удаления процесса с модулем, последний уже никогда не сможет сообщить о завершении операции передачи данных среде, а среда не сможет определить, что ОС уничтожила модуль из-за отказа, полагая, что тот производит передачу данных. Все такие ситуации невозможно предусмотреть. По статистике, более 90% сбоев и отказов программ связано с некорректной работой с памятью. - необходимо написание специальных программ-агентов для рестарта модулей - Данная модель компоновки модулей применима только, если ОС (либо эмулирующий ее модуль) поддерживает динамическое подключение библиотек.
В) через сетевой протокол.
Преимущества: + нет утечек памяти при рестарте потоков + утечки памяти не катастрофичны + необработанное исключение приведет только к отказу одного модуля, и безопасно для системы + возможность распределения вычислений по сети Однако, это не исключает запуск и выполнение всех модулей на одной ЭВМ: современные сетевые протоколы позволяют производить соединение с самим собой, что нередко используется в различном программном обеспечении. Недостатки: - необходимо написание специальных программ-агентов для рестарта модулей. - Данная модель компоновки модулей применима только для ОС (либо эмулирующих ее модулей), поддерживающих работу с сетевыми протоколами.
В рамках данной работы были реализованы все рассмотренные варианты взаимодействия модулей со средой. При сборе своего собственного проекта, можно указать любой из них через директивы компилятора.
|
||
|
Последнее изменение этой страницы: 2017-02-21; просмотров: 403; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |