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

Бесплатный доступ

Рассматривается особый класс приложений для операционной системы, которая предназначена для работы на нескольких режимах микропроцессора, - многоразрядные (мультиразрядные) приложения. Назначение рассматриваемых приложений - способность работать на нескольких режимах микропроцессора, который используется в экстремальных условиях окружающей среды. Указанный эффект в микропроцессоре достигается путем программного отделения поврежденных частей кристалла от целой части. Поэтому микропроцессор, режим работы которого определяется накопленными повреждениями, используется преимущественно в экстремальных условиях, к которым относятся условия космоса. В связи с этим для работы вычислительной системы в космических условиях дополнительно необходим не только специальный микропроцессор, но и особое программное обеспечение, которое способно работать на различных режимах микропроцессора. Рассмотрены базовые механизмы этого особого программного обеспечения на примере типа приложения на основе Windows исполняемого файла.

Еще

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

Короткий адрес: https://sciup.org/148326860

IDR: 148326860   |   DOI: 10.18137/RNU.V9187.23.03.P.202

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

При работе вычислительной системы в экстремальных условиях окружающей среды, каким является космическое пространство, возникает необходимость в дополнительном увеличении устойчивости системы к данным условиям. Для этого используются два способа [1; 2]:

  •    дублирование функционала – все компоненты задублированы;

  •    сжимание имеющегося функционала – в зависимости от степени повреждений изменяется функциональное наполнение.

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

Приходько Дмитрий Игоревич

Мультиразрядное программное обеспечение (далее – ПО) предназначено для работы в нескольких режимах микропроцессора, поэтому относится автоматически ко второму способу повышения устойчивости вычислительной системы.

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

Методология

Мультиразрядные приложения в упрощенном виде выглядят как набор версий для каждого режима работы микропроцессора, который считается приемлемым по качеству для выполнения задач. Поскольку исполняемые файлы в каждом семействе систем различны, для описания упрощения реализации необходимо рассмотреть мультиразрядное ПО, основанное на исполняемых файлах операционных систем Windows и MS-DOS, причем последняя взята с учетом того, что она работает в режиме i386 – самом младшем режиме работы микропроцессоров архитектуры AMD 64. Выбор указанной архитектуры объясняется тем же фактом, что и выбор операционной системы, – открытость документации и доступность со стороны пользователей.

Более того, система Windows XP использовалась активно на МКС, а также для одной из миссий на Марс в качестве операционной системы была выбрана Windows 98 SE и микропроцессор Pentium.

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

  •    приложение dual exe [3], представляет собой объединенные версии Windows и Dos в один исполняемый файл;

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

  •    приложение с технологией горячего переключения режима работы, данная технология подразумевает использование подмены функций одного режима другим через специальный набор правил (Thunk [4] скрипт);

  •    мультиверсионная программа, которая собирается из нескольких версий, и при запуске версия достается по некоторому условию из файла;

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

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

dual exe – единая программа, которая создается из приложений dos и Windows NT по правилам PE формата (см. Рисунок 1).

Рисунок 1. Структура исполняемого файла dual exe, использующегося в Windows NTи MS_DOS

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

  •    в выделенную область оперативной памяти и (или) жесткого диска, программным способом обозначенную системой как скрытая, выгружаются критические компоненты вычислительной системы;

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

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

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

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

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

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

Достоинства и недостатки всех технологий сведены в Таблицу 1.

Таблица 1

Обзорная таблица достоинств и недостатков технологий

Технология

Достоинства

Недостатки

dual-exe [9]

Легко решается вопрос переноса приложения между защищенным и реальным режимом

Технология устарела и требует доработки – не учитываетсятехнология режима Long Mod микропроцессора AMD64 формат PE64 для системы Windows 64 bit

Итоговый размер прогаммы для системы реального режима работы оказывается тяжелым

Технология ини

циализации в кэш

Надежность вычислений не страдает при условии целостности данных в специальном кэше

Необходимость держать полное приложение с избыточным размером в специально организованном хранилище

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

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

Горячее переключение разрядности

Высокая скорость переключения в различных режимах работы микропроцессора

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

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

Мультиверсион-ная программа

Высокая производительность – распаковывается необходимая версия по аналогии с портфелем

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

Контейнерная программа

Относительная компактность представления данных

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

Прогамма в целом обладает высоким быстродействием

Необходимость механизмов адресации

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

Результаты исследования

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

  •    исполняемый файл построен на основе технологии dual exe как частном случае муль-тиверсионного программного обеспечения;

  •    критические места кода объединены в обертки специальных процессорных команд – контейнер;

  •    некритические места меняются по двум правилам:

  • –    идет подмена функций со стороны операционной системы через смену ядра функций;

  • –    идет понижение разрядности аргументов в зависимости от требований к работе программы.

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

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

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

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

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

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

В рамках доступных режимов работы для построения структуры были выбран режим i8086 и MS-DOS для поддержки реального режима работы, режим i386 и система Windows NT для IA32 команд, для режима AMD64 – Windows NT [3].

Согласно Рисунку 2 дублированные участки кода объединяются в контейнеры, которые работают на нескольких режимах работы процессора. Основное назначение такой структуры – сократить время переноса программы при смене режима работы микропроцессора (смену разрядности вычислений). При изменении разрядности поведение программы будет следующим:

  • 1.    При смене режима работы микропроцессора секции распадаются на набор контейнеров.

  • 2.    Универсальный контейнер, если он работает на данном режиме микропроцессора, продолжает работать.

  • 3.    Локальный контейнер меняется на соответствующий конкретному режиму. Если смена невозможна по причине физического отсутствия контейнера в программе, программа выгружается средствами системы из памяти и кэша.

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

Рисунок 2. Структура контейнерной программы, работающей под DOS-16 bit, Windows 32 bit и Windows 64 bit

Механизмы кэширования данных в контейнерной программе на момент публикации статьи используются следующие:

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

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

Важно отметить, что механизмы кэширования целиком и полностью зависят от используемых возможностей в операционной системе [4], которая относятся к классу муль-тиразрядных.

Главное назначение механизмов кэширования и их использование заключается в следующих пунктах:

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

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

Например, стандартный механизм адресации 32 бит составляет 4 Гб, следовательно, используя области более 5 Гб, можно добиться того, что система не будет видеть использования избыточного ресурса ПК, и работа системы не нарушится.

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

С учетом приведенных структур использования механизмов кэширования на Рисунках 3 и 4 возникает серьезный технологический вопрос: как именно передавать аргументы функций при смене разрядности вычислений.

Для этого можно использовать разработанную систему взаимодействия Windows 16 bit и Windows 32 bit с подсистемами Universal Thunk [4]. Эта технология позволяет приложениям Windows 16 bit вызвать 32 bit функции, и наоборот. Однако она требует доработки для Windows 64 bit.

Рисунок 3. Структура контейнерной программы с кэшированием на жесткий диск

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

Поэтому данное ПО пригодно для использования только в экстремальных условиях окружающей среды, которой является космическое пространство. Как правило, механизмы, работающие в экстремальных условиях, являются крайне сложными [6; 7], и поэтому разработка ПО требует особой методики разработки.

Например, для проектирования данного программного обеспечения можно использовать методику, представленную в Таблице 2.

Следует отметить важную особенность: этот тип программного обеспечения зависит от проекта, и внесение поправок в проект требует аккуратности. Преимущества и недостатки предложенной методологии проектирования ПО представлены в Таблице 3.

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

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

Win 32

DOS контейнер

Нет

Да

Таблица Секций

| Сигнатура РЕ [ -<---1

Выгружаем DOS приложение в скрытую память

Используем DOS версию

Нет

/Режим '\DOS Да "''Г'

Общий контейнер функций, не относящийся к вызову функций из библиотек контейнер вызова 64 и 32 bit (Опциональный заголовок)

Оставшийся код приложения нужной разрядности в памяти

Сброс в Скрытую память 32-х битной части Windows приложения

Сброс в Скрытую память 32х битной части Windows приложения

Данные Windows приложений одинаковой разрядности

Выгружаем Windows приложение в __ скрытую память __

Windows 32/64 Универсальный контейнер

Сигнатура MS-DOS

Заглушка MS-DOS

Рисунок 4. Использование кэша в оперативной памяти

Таблица 2

Методика проектирования программного обеспечения

Этап

Средства

Разработка идеи информационной системы

Формирование идеи проекта. На данном этапе разработка не идет

Анализ эксплуатационных требований

Оценка технических требований и соответствия внешних условий ИС

Создание концептуальной модели на основерассмо-тренного ранее анализа

Выполнение структурно-функционального и/или объектно ориентированного моделирования

Оценка спроектированной концептуальной модели

Оценка построенной концепции с точки зрения эксплуатации, уточнение возникших нюансов

Создание математической модели

Моделирование по типу информационного (логического) и математического

Оценка спроектированной математической модели

Оценка построенной математической или логической модели с точки зрения эксплуатации, уточнение возникших нюансов

Создание первичной реализации ИС

Создание базового функционала ИС, который обязателен для итоговой версии

Экстремальная эксплуатация первичной реализации ИС

Тестирование основного функционала в требуемых условиях эксплуатации. Оценка полученных результатов

Окончание Таблицы 2

Этап

Средства

Разработка итоговой физической модели и итогого программного обеспечения ИС

Реализация выбранной в логической модели логики, разработка итогового аппаратного обеспечения и программного кода на основе математической модели

Экстремальная эксплуатация готовой реализации ИС

Проверка готового технического решения на соответствие ТЗ, коррктировки реализации перед передачей заказчику

Эксплуатация ИС

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

Таблица 3

Достоинства и недостатки предложенной методологии проектирования

Достоинства

Недостатки

Улучшенная модель проектирования позволяет сразу оценить внешние условия

Сложность в проектировании. Не всегда можно однозначно предусмотреть все внешние условия систем

Модель позволяет гибко определить набор испытаний еще на этапе проектирования

Требует периодической корректировки исходного плана реализации

На момент составления проекта решений можно однозначно определить детали и нюансы решения

Обсуждение

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

Ранее рассматривались несколько работ по мультиверсионным приложениям. Например, в работе [8] указывается общее построение мультиверсионного программного обеспечения, но так как не учитывается возможность изменения режимов работы ПО, то гарантировать работоспособность мультиверсионных приложений в общем случае нельзя. В работе [9] рассмотрен вопрос реализации мультиверсионной операционной системы как набора нескольких параллельно работающих версий, однако при этом не рассматривается вопрос о том, что произойдет, когда текущий режим микропроцессора не позволит использовать возможности текущего режима работы, и необходимо будет использовать предыдущий режим. В работе [10] рассматривается модельный аспект мультиверсионного ПО, однако вопрос повреждения микропроцессора там тоже не рассматривается в явном виде.

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

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

Заключение

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

Приведенный пример построения приложений для мультиверсионной операционной системы на основе систем Windows и MS-DOS является частным случаем. Для построения мультиразрядных приложений в других семействах оперативных систем, например linux, необходим детальный анализ программного обеспечения, которое было выпущено для этой системы.

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

Список литературы Обзор принципиальных схем мультиразрядного программного обеспечения и методики его разработки

  • Артюхова М.А., Кулыгин В.Н. Разработка автоматизированной системы обеспечения радиационной стойкости бортовой аппаратуры космических аппаратов // Инновации на основе информационных и коммуникационных технологий. 2011. № 1. С. 323-324. EDN: PEVDUV
  • Полесский С., Жаднов В., Артюхова М., Прохоров В. Обеспечение радиационной стойкости аппаратуры космических аппаратов при проектировании // Компоненты и технологии. 2010. № 9 (110). С. 93-98. EDN: MWMEXL
  • PE-файлы: заголовок и заглушка DOS [Электронный ресурс]. URL: http://cs.usu.edu.ru/docs/pe/dos.html (дата обращения: 26.09.2022).
  • US6763518B2. Automatic client/server translation and execution of non-native applications: Google Patents. URL: https://patents.google.com/patent/US6763518 (дата обращения: 26.09.2022).
  • Приходько Д.И., Мокряков А.В., Горшков В.В. Обзор базовых механизмов мультиразрядных операционных систем, предназначенных для эксплуатации в космических условиях // Авиакосмическое приборостроение. 2022. № 12. С. 39-48. EDN: EQBRRZ
  • Мокряков А. В., Приходько Д.И. Общие концепции и идеи теории эксплуатации в контексте вычислительной техники // Современная наука: актуальные проблемы теории и практики. Серия: Естественные и технические науки. 2020. № 12. EDN: FJJSRV
  • Приходько Д.И. Разработка и оптимизация методов эксплуатации информационных систем как этапа их жизненного цикла с учетом воздействия агрессивной внешней среды / РГУ им. А.Н. Косыгина. М., 2021. 204 с.
  • Карцан И.Н., Ефремова С.В. Мультиверсионная модель программного обеспечения систем управления космическим аппаратом с ранжированием принятия решения // Сибирский аэрокосмический журнал. 2021. Т. 22, № 1. С. 32-46. DOI: 10.31772/2712-8970-2021-22-1-32-46 EDN: BAYYYO
  • Поздняков Д.А. Компонентная программная архитектура мультиверсионных систем обработки информации и управления // Современные наукоемкие технологии. 2006. № 4. С. 62-64. EDN: JSADTP
  • К вопросу реализации мультиверсионной среды исполнения бортового программного обеспечения автономных беспилотных объектов средствами операционной системы реального времени / И.В. Ковалев, В.В. Лосев, М.В. Сарамуд [и др.] // Вестник СибГАУ 2017. № 1 (18). С. 58-61. EDN: YKKCWL
Еще
Статья научная