Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НИС.doc
Скачиваний:
27
Добавлен:
31.08.2019
Размер:
929.79 Кб
Скачать

Тема 4.3. Программно-логические методы контроля

Необходимость программного контроля обусловлена недостатками существующих аппаратных методов контроля: недостаточными полнотой охвата и глубиной контроля всех устройств, большими затратами оборудования и, как следствие, большой стоимостью. Кроме того, для ряда устройств и блоков ЭВМ в принципе трудно реализовать аппаратурный контроль.

Наибольший интерес представляют методы программного контроля, позволяющие контролировать вычислительный процесс, т. е. правильность решения задачи с помощью ЭВМ.

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

Алгоритмическим контролем называются специальные программные методы проверки правильности реализации с помощью ЭВМ алгоритмов обработки информации и управления. Под реализацией алгоритмов понимается как процесс вычислений, так и преобразование потока информации в требуемую форму для последующей обработки или передачи потребителю.

Алгоритмический контроль предназначен для обнаружения и исправления случайных сбоев, возникающих в процессе обработки информации в ИС. Он является частным случаем контроля методом двойного счета, но более экономичным с точки зрения затрат машинного времени. При этом виде контроля задача решается дважды: один раз по усеченному (упрощенному) алгоритму, а второй раз ― по основному. Полученные результаты сравниваются между собой по формуле:

, (4.4)

где хi0 ― результаты решения задачи по основному алгоритму в i-м цикле вычислений; хiy ― то же, но по усеченному алгоритму; ΔXi ― величина невязки, в пределах которой расхождения между хi0 и хiy в i-м цикле считаются допустимыми.

В случае вычисления хi0 и хiy по одному алгоритму (при двойном счете) сравнение результатов ведется на абсолютное равенство (ΔXi = 0).

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

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

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

Например, правильность вычисления значений вероятностей различных событий контролируется по выполнению соотношения

0 ≤ P ≤ 1.

Если вычисляются углы A, B, C треугольника, то правильность их определения можно проконтролировать по выполнению равенства

A+B+C−π = 0 .

Одним из частных случаев этого метода контроля является контроль скорости изменения переменных. Он применяется для контроля переменных хi, имеющих некоторый физический смысл и являющихся непрерывными функциями времени. Сущность контроля заключается в том, что определяется скорость изменения переменной и проверяется условие xi min ≤ xi ≤ xi max.

  • Контрольные соотношения с использованием дополнительных переменных. Метод состоит во введении искусственных переменных, которые либо связаны известными соотношениями с основными переменными, либо значения этих переменных при определенных условиях известны заранее.

Пусть решается алгебраическое уравнение

Pn(x) = a0xn+a1xn-1+…an-1x+ab = 0,

корни которого Xk (k = 1, 2, ..., n).

Перейдем к новому уравнению Pn+1(x) = (x-a)·Pn(x) = 0, корни которого обозначим Xl (l = 1, 2,..., n, n +1) . Первые n корней вспомогательного уравнения совпадают с корнями исходного, а последний (n+1)-й корень равен а. Тогда алгоритм контроля правильности функционирования программы решения алгебраического уравнения будет состоять в следующем:

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

    • найти все корни хl вспомогательно уравнения;

    • для каждого полученного значения корня осуществить проверку .

Если хотя бы для одного из корней неравенство выполняется, считается, что уравнение решено верно.

В этом примере в качестве дополнительной переменной выступает заранее известное значение одного из корней.

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

Данный метод может быть применен для контроля решения некоторых дифференциальных уравнений. Допустим, решается уравнение при начальных условиях y(x0) = y0. Для контроля введем дополнительную переменную z, продифференцировав дважды исходное уравнение:

,

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

  • Контроль обратным просчетом. В данном методе по полученному результату находят исходные данные (аргументы) и сравнивают их с начальными исходными данными. Если они совпадают (с заданной точностью), то полученный результат считается верным.

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

. (4.5)

При выполнении этого условия делается вывод о правильности работы подпрограммы.

Достоинство этого метода состоит в том, что он обнаруживает ошибки, возникшие как в результате сбоев, так и отказов.

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

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

Контрольные вопросы

  1. Чем обусловлена необходимость программного контроля?

  2. Какой метод контроля широко применялся на первых этапах развития методов программного контроля?

  3. Для чего предназначен алгоритмический контроль?

  4. Что понимается под усечённым контролем?

  5. Что понимается под логическим контролем?

  6. В чём заключается метод контроля по предельным значениям вычисляемых параметров?

  7. В чём заключается метод контрольных соотношений с использованием дополнительных переменных?

  8. В чём заключается метод контроля обратным просчетом?

  9. В чём заключается метод контроля повторным счетом?