Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IPZ_1modul.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
611.93 Кб
Скачать

56.Основні типи виявлення збоїв у програмних системах.

Мови програмування подібні Java і Ada мають строгі опису типів. Це дозволяє багато помилок, які служать причиною порушення станів і відмов системи, виявити під час компіляції. Компілятор може виявити порушення правил опису типів. Перевірка компілятора обмежена статичними величинами, але компілятор може також автоматично згенерувати програму, яка виконує, наприклад, перевірку присвоєння значень масивів. Вона перевірить, що індекси масиву не вийдуть за вказані межі і що значення масиву мають необхідний тип.

Перша ступінь засобів відмовостійкості повинна виявити, що збій (помилкове стан системи) стався або станеться, якщо негайно не будуть виконані деякі дії. Зазвичай у такій ситуації управління передається в блок програми, яка може керувати виявленим збоєм.

Існує два типи виявлення збоїв.

  1. Превентивне виявлення помилок. У цьому випадку механізм виявлення помилок запускається перш, ніж відбудеться зміна стану. Якщо потенційне помилкове стан виявлено, то зміни стану не відбувається. Зазвичай система виявлення помилок обробляє виняткову ситуацію, яка визначає тип виявленої помилки.

  2. Ретроспективне виявлення помилок. У цьому випадку механізм виявлення помилок запускається після того, як стався збій. Якщо помилку виявлено, повідомляється про виняткову ситуації і використовується механізм виправлення помилки.

Превентивне виявлення помилок часто виконується шляхом введення обмежень, що накладаються

на стани системи, і контролю за ними при переході від одного стану до іншого. Ця схема спрощується, якщо стан системи визначається станом низки об'єктів. Обмеження, які

застосовуються до окремих об'єктів, можна перевіряти автоматично і змінювати під час виконання методу (асоційованого з об'єктом), який може змінити стан. Цей підхід проілюстровано в лістингу 18.5, який на мові Java описує клас PositiveEven, який реалізує тип позитивних парних чисел.

57. Способи локалізації помилок та пошкоджень даних в програмах.

Локалізація помилок і збоїв полягає в аналізі стану системи для визначення масштабу її руйнування внаслідок збою. У багатьох випадках цього можна уникнути, визначаючи наявність помилок перш, ніж відбудеться остаточне зміна стану. Якщо помилку виявлено, зміна стану не допускається, що попереджає пошкодження системи. Але локалізація помилок і збоїв необхідна, коли зміни стану не можна уникнути або коли збій є результатом послідовності окремих правильних станів, які, тим не менш, призводять до сбойному станом системи.

Локалізація помилок і збоїв полягає не у виправленні помилок, а в оцінці того, які частини простору станів постраждали від збою. Це можна зробити за допомогою якоїсь "функції законності", яка перевіряє, чи є дане стан несуперечливим ("законним"). Якщо стану "незаконні", вони будь-яким способом виділяються. Серед інших методів, що використовуються для виявлення помилок і локалізації ушкоджень, виділимо наступні.

1. Використання контрольних сум і контроль розрядів у числових даних. 2. Використання надлишкових зв'язків у структурах даних, які містять покажчики. 3. Використання в паралельних системах контрольних таймерів.

При зміні даних та обмін ними для перевірки програм можна використовувати контрольну суму числових даних [121]. Контрольна сума - це величина, яка розраховується на основі даних за допомогою спеціальної математичної функції. Ця функція повинна дати єдине значення для групи даних, яка бере участь в обміні. Контрольну суму обчислює відправник даних і додає це значення до даних. Приймач даних застосовує до даних ту ж саму функцію і порівнює отримане значення з контрольною сумою. Якщо вони відрізняються, значить, сталося деяке порушення цілісності даних. Цей же механізм може використовуватися для виявлення вторгнення в захищені дані і навмисного їх зміни.

Коли використовуються пов'язані структури даних, їх подання можна зробити надлишковим шляхом включення зворотних посилань. Тоді для кожної прямого посилання від А до В буде існувати зворотній посилання від В до А. Якщо також є лічильник числа елементів у структурі, можна перевірити відповідність прямих і зворотних посилань і збіг еталонного і обчисленого розмірів структури.

Якщо процеси мають обмеження на час їх виконання, можна встановити контрольний таймер. Він починає діяти одночасно з процесом, визначаючи час його виконання, і повертається в початковий стан після виконання процесу. Він опитується блоком управління через постійні інтервали часу. Якщо з якихось причин процес не завершиться, контрольний таймер не повернеться, у вихідне положення. У такому випадку блок керування виявляє збій і вживає заходів для примусового завершення процесу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]