Главная страница
Навигация по странице:

  • Методы

  • Пассивное

  • Взаимное недоверие.

  • Немедленное

  • Избыточность.

  • Активное

  • Инж. техн. системы Метод. материалы (1). Министерство науки и высшего образования российской


    Скачать 61.41 Kb.
    НазваниеМинистерство науки и высшего образования российской
    Дата07.10.2021
    Размер61.41 Kb.
    Формат файлаdocx
    Имя файлаИнж. техн. системы Метод. материалы (1).docx
    ТипДокументы
    #242784
    страница9 из 11
    1   2   3   4   5   6   7   8   9   10   11

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





    1. Что такое протокол ошибок? Какая информация в нем со- держится?

    2. Как формируется протокол ошибок?

    3. Назовите основные команды управления протоколированием.

    4. Как можно очистить протокол ошибок? В каких случаях очистка проводится автоматически?

    5. Какие возможности имеются у администратора системы для внесения произвольных данных в протокол ошибок?



    Лабораторная работа 7. Выявление и устранение ошибок программного кода информационных систем

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

    Для выполнения лабораторной работы № 7 студент должен изучить приведенный ниже теоретический материал. Отчет сдается в распечатанном и электронном (файл Word) видах.
    Методы обнаружения ошибок
    Принимая во внимание, что в программном обеспечении будут ошибки, то, очевидно, в первую очередь следует принять меры для их обнаружения. Более того, если необходимо принимать дополни- тельные меры (например, исправлять ошибки или их последствия), то все равно сначала нужно уметь обнаруживать ошибки.

    По способу обнаружения ошибок можно выявить два метода:

    • пассивные попытки обнаружить симптомы ошибки в про- цессе «обычной» работы программного обеспечения;

    • активные попытки программной системы периодически об- следовать свое состояние в поисках признаков ошибок.


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

    Пассивное обнаружение ошибок базируется на следующих принципах:

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

    Немедленное обнаружение. Ошибки необходимо обнару- жить как можно раньше. Это не только ограничивает наносимый ими ущерб, но и значительно упрощает задачу отладки.

    Избыточность. Все средства обнаружения ошибок основаны на некоторой форме избыточности (явной или неявной).

    Используя данные принципы можно сформулировать конкрет- ные меры по обнаружению ошибок:

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

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

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

    4. Проверяйте допустимость всех вариантов значений. Если входное поле – код, обозначающий один из десяти районов, никогда не предполагайте, что если это не код ни одного из районов 1, 2,…, 9, то это обязательно код района 10.

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

    6. Там, где во входных данных нет явной избыточности, вве- дите ее. Если ваша система использует крайне важную таблицу, по- думайте о включении в нее контрольной суммы. Всякий раз, когда таблица обновляется, следует просуммировать (по некоторому мо- дулю) ее поля и результат поместить в специальное поле контроль- ной суммы. Подсистема, использующая таблицу, сможет теперь проверить, не была ли таблица случайно испорчена, – для этого только нужно выполнить контрольное суммирование.




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

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

    Активные средства обнаружения ошибок обычно объединяют- ся в диагностический монитор: параллельный процесс, который пе- риодически анализирует состояние системы с целью обнаружить ошибку. Большие программные системы, управляющие ресурсами, часто содержат ошибки, приводящие к потере ресурсов на длитель- ное время. Например, управление памятью операционной системы выделяет блоки памяти программам пользователей и другим частям операционной системы. Ошибка в этих самых «других частях» си- стемы может иногда вести к неправильной работе блока управления памятью, занимающегося возвратом сданной ранее выделенной процессу памяти, что вызывает постепенное ухудшение работы си- стемы.
    Диагностический монитор можно реализовать как периодиче- ски выполняемую задачу (например, она планируется на каждый час) либо как задачу с низким приоритетом, которая планируется для выполнения в то время, когда система переходит в состояние ожидания. Как и прежде, выполняемые монитором конкретные про- верки зависят от специфики системы, но некоторые идеи будут по- нятны из примеров. Монитор может обследовать основную память, чтобы обнаружить блоки памяти, не выделенные ни одной из вы- полняемых задач и не включенные в системный список свободной памяти. Он может проверять также необычные ситуации: например, процесс не планировался для выполнения в течение некоторого ра- зумного интервала времени. Монитор может осуществлять поиск

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

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

    «пустые» или «легкие» задания, чтобы убедиться, что система функционирует хотя бы самым минимальным образом.

    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта