Математическая морфология.
Электронный математический и медико-биологический журнал.
Том 11. Вып. 2. 2012.
УДК 681.3.06
АЛГОРИТМ КОНТРОЛЯ РАСПРЕДЕЛЕНИЯ ПАМЯТИ СПЕЦИАЛИЗИРОВАННОЙ ЭВМ
2012 г. Волосенков В. О.
Рассматривается задача распределения памяти специализированной ЭВМ в условиях ограниченных ресурсов. Предлагается алгоритм позволяющий обеспечить максимальную независимость проверяемых частей, а также простоту контроля программы. Контроль программы производится последовательно по частям без повторений, каждая часть проверяется полностью, независимо от других частей, а их совместная проверка выполняется без учета деталей их автономной проверки.
Ключевые слова: специализированная ЭВМ, программное обеспечение, распределение памяти, отладка программ.
Задача распределения памяти специализированной ЭВМ возникает в связи с необходимостью её эффективного использования в условиях ограниченных ресурсов. В программах часто встречаются участки, в которых для правильного выполнения определенных операций необходима предварительная подготовка определенных состояний регистров памяти. Примерами операций такого рода могут быть: считывание из регистров заранее подготовленной в ней информации; формирование исполнительного адреса по адресу команды и содержимому индексного регистра; использование результата, оставшегося на сумматоре после предыдущей операции для последующих вычислений или установка сумматора в исходное состояние.
Встречается достаточно много нарушений правил использования памяти специализированной ЭВМ, отличающихся типом ошибки, видом условий и характером состояний. Наиболее часто эти ошибки появляются, когда в качестве входного языка программирования используются автокод или машинный код команд специализированной ЭВМ, вследствие чего программирование операций, выполняющих установку требуемых состояний памяти, частично или целиком возлагается на программиста.
При распределении регистров памяти специализированной ЭВМ ошибки возникают, как правило, из-за отсутствия предварительной записи в регистр величины, считываемой с этого регистра. Причинами этого могут быть:
операция записи вообще отсутствует;
операция записи имеется, но запись выполняется не на тот регистр;
запись производится на требуемый регистр, но записывается не та величина;
имеет место уничтожение установленной ранее величины какой-либо непредусмотренной записью.
Операции, образующие эти сочетания, не обязательно должны относиться к смежным командам. В общем случае они могут принадлежать командам, разделенным некоторой последовательностью команд, ни одна из которых не содержит операций считывания или записи на этот регистр. При оптимизации распределения памяти наиболее часто оказываются пропущенными операции записи или считывания требуемых величин только на некоторых маршрутах исполнения программы. В случае распределения памяти ограниченного объема (например, индексных регистров) типичным является пропуск операций сохранения и восстановления значения некоторой величины (индекса), необходимой для правильного исполнения программы. Ошибки пропуска операций записи и считывания возникают иногда при объединении модулей в комплекс программ вследствие нарушения правил связей по управлению и по информации.
Контроль распределения памяти специализированной ЭВМ включает две задачи: построение диагностической модели подпрограммы и организацию просмотра модели с целью выявления недопустимых сочетаний операций считывания и записи величин.
Трудности практической реализации контроля распределения памяти сложных комплексов программ, имеющих многочисленные вызовы функциональных и стандартных программ, во многом определяются высокой размерностью моделей комплексов программ.
Для контроля распределения памяти предлагается способ, позволяющий обеспечить максимальную независимость проверяемых частей, а также простоту и регулярность просмотра отдельных частей и их совокупностей (рисунок 1). При этом особенностью способа является то, что просмотр программы производится последовательно по частям без повторений, каждая часть проверяется полностью, независимо от других частей, а их совместная проверка выполняется без учета деталей их автономной проверки.
Данный способ проверки основан на организации последовательного, независимого просмотра иерархических упорядоченных частей модели комплекса программ с предварительным выделением в модели только той информации, которая имеет непосредственное отношение к контролируемым величинам и к ячейкам памяти.
При выполнении проверки памяти используется трехуровневое представление модели комплекса программ:
уровень команд образующих линейные участки;
уровень линейных участков, входящих в подпрограммы;
уровень подпрограмм и линейных участков, образующих контролируемый комплекс программ в целом.
Рисунок 1 – Логическая схема способа контроля распределения памяти специализированной ЭВМ
Линейные участки и подпрограммы каждого из уровней проверяются независимо друг от друга.
При проверке использования каждого регистра или ячейки памяти модель, представляющая описание программы иди некоторой ее части, преобразуется. В результате исключаются все те вершины, команды которых не используют контролируемый регистр. При этом размер модели уменьшается, а просмотр для проверки условий наличия запрещенных сочетаний операций записи-считывания сводится к попарной проверке связанных между собой вершин.
Проверка выполняется последовательно по всем контролируемым регистрам для частей модели одного уровня с последующим переходом к проверке частей менее детального уровня представления модели. При переходе от одного уровня анализа к другому каждая независимая часть описывается перечнем своих входов и выходов. Для входов определяется перечень регистров, с которых выполняется считывание контролируемых величин при исполнении программы с соответствующего входа. Для каждого выхода формируется перечень регистров, на которые выполняется запись контролируемых величин. Связь между частями модели на следующем уровне детализации осуществляется по информации о входах и выходах из описания программы.
Алгоритм контроля распределения памяти специализированной ЭВМ представлен на рисунке 2.
Функционирование алгоритма начинается с ввода исходных данных из блока начальной настройки. В счетчик команд узла формирования адресов устройства управления (СчК УзФА) записывается адрес начала программы. По данному адресу происходит вычисление исполнительного адреса команды, и обращение по нему в постоянное запоминающее устройство (ПЗУ). Выбранная команда из ПЗУ поступает на регистр команд устройства управления эмулятора. В регистре команд по коду операции (КОП) определяется тип команды (безадресная, одноадресная или передачи управления).
Если команда безадресная, то происходит ее выполнение в арифметико-логическом устройстве. Счетчик команд увеличивается на единицу, и результат выводится в модуль визуализации.
В противном случае определяется одноадресная команда или передачи управления.
Если команда одноадресная, то вычисляется исполнительный адрес операнда, по которому осуществляется обращение в оперативное запоминающее устройство (ОЗУ) или ПЗУ.
Одновременно происходит обращение в базу данных обращения к ОЗУ, где фиксируется количество обращений к ОЗУ, какая программа и с какого адреса производит обращение. Выбранный операнд поступает в регистр числа.
В арифметико-логическом устройстве происходит выполнение команды и результат записывается в регистр сумматора один (РгСМ1). Далее счетчик команд увеличивается на единицу, и результат выводится в модуль визуализации.
Если поступает команда передачи управления, то вычисляется исполнительный адрес команды перехода. Выполняется вспомогательная операция по сохранению точки ухода, в случае, если это необходимо. Значение адреса команды перехода записывается в счетчик команд, и результат выводится в модуль визуализации.
Рисунок 2 – Алгоритм контроля распределения памяти специализированной ЭВМ
Если с устройства обмена не поступал сигнал прерывания, то вычисление исполнительного адреса осуществляется по адресу, находящемуся в счетчике команд.
По приходу сигнала прерывания через устройство обмена происходит обработка статистической информации обращения к различным зонам оперативного запоминающего устройства, поступающей из базы данных.
Достоинствами предлагаемого алгоритма контроля распределения памяти специализированной ЭВМ является то, что он позволяет обеспечить максимальную независимость проверяемых частей сложного комплекса программ, а также простота просмотра отдельных частей программы и их совокупностей. При этом просмотр программы производится последовательно по частям без повторений, каждая часть программы проверяется полностью, независимо от других частей, а их совместная проверка выполняется без учета деталей их автономной проверки.
Литература
-
Липаев В.В. Надежность программных средств. Серия "Информатизация России на пороге XXI века". – М.: СИНТЕГ, 1998.
-
Липаев В. В. Проектирование программных средств. М., Высшая школа, 1990.
-
Липаев В.В. Отладка сложных программ. – М.: Энергоатомиздат, 1993.
-
Гончарик Л.П., Мороз Л.Е., Суркова А.В., Сухоручкин В.М. Система комплексной отладки для программного обеспечения АСУ реального времени. – Вопросы радиоэлектроники, 1983, серия общие вопросы радиоэлектроники, вып. 6.
ALGORITHM OF THE CONTROL OF DISTRIBUTION OF MEMORY OF THE SPECIALIZED COMPUTER
Volosenkov V. O.
The problem of distribution of memory of the specialised COMPUTER in the conditions of the limited resources is considered. It is offered allowing to provide algorithm the maximum independence of checked parts, and also simplicity of the control of the program. The program control is made consistently in parts without the repetitions, each part is checked completely, irrespective of other parts, and their joint check is carried out without details of their independent check.
Key words: the specialised COMPUTER, the software, memory distribution, debugging of programs.
Военная академия войсковой противовоздушной обороны Вооруженных Сил Российской Федерации
имени Маршала Советского Союза А. М. Василевского
Поступила в редакцию 24.04.2012.
Достарыңызбен бөлісу: |