- •1. Основні ознаки розподілених програмних систем.
- •2. Характеристики розподілених систем, що впливають на продуктивність обчислень.
- •3. Характеристики розподілених систем, що впливають на надійність обчислень.
- •4. Характеристики розподілених систем, що впливають на економію ресурсів.
- •6. Недоліки розподілених систем, що пов’язані з їх використанням.
- •7. У чому полягає складність розробки розподілених систем?
- •8. Основні види архітектур розподілених систем.
- •9. Особливості архітектури клієнт/сервер.
- •10. Види архітектур клієнт/сервер та галузі їх застосування.
- •11. Особливості застосування архітектури Клієнт / сервер на Основі тонкого клієнта.
- •12. Особливості застосування архітектури Клієнт / сервер на Основі Товстого клієнта.
- •13. Особлівості багаторівневої архітектури Клієнт / сервер.
- •14. Характеристики архітектури розподіленіх об'єктів.
- •15. Основні Переваги архітектури розподіленіх об'єктів.
- •16. Основні недолікі архітектури розподіленіх об'єктів.
- •17. Характеристика систем реального часу.
- •18. Класифікація систем реального часу за типами вхідніх сігналів.
- •19. Особливості проектування систем реального часу.
- •20. Засоба підвіщення продуктівності систем реального часу.
- •21. Моделі систем реального часу.
- •22. Вимоги до засобів програмування систем реального часу.
- •23. Керуючі компоненти систем реального часу.
- •24. Компоненти, що підвищують надійність систем реального часу.
- •25. Особливості керування процесами в системах реального часу.
- •26. Види інтерфейсів користувача та їх особливості.
- •27. Переваги та недоліки графічного інтерфейсу користувача.
- •28. Особливості проектування інтерфейсу користувача.
- •29. Основні засади проектування інтерфейсу користувача.
- •31 Основні види взаємодії користувача і програми та сфери їх застосування.
- •32 Недоліки та переваги основних видів взаємодії користувача з програмою.
- •33 Способи подання інформації користувачу.
- •34 Основні правила використання кольору в інтерфейсах користувача.
- •35 Засоби інтерфейсу спрямовані на підтримку користувача.
- •36 Основні види документації для користувачів програмних систем.
- •37 Основні складові надійності програмних систем.
- •38 Обґрунтування потреби у високонадійних програмних системах.
- •39 Поняття критичної системи.
- •40 Основні типи критичних систем.
- •41. Основні джерела відмов та підходи до проектування критичних систем.
- •42. Основні підходи для підвищення безвідмовності систем.
- •43. Рівні безпечності програмних систем.
- •44. Способи підвищення безпечності програмних систем.
- •45. Типи пошкоджень систем, що викликаються зовнішніми чинниками.
- •46. Засоби підвищення захищеності програмних систем.
- •47 Основні підходи до проектування надійного програмного забезпечення.
- •48 Основні вимоги до розробки безвідмовного програмного забезпечення.
- •49. Конструкції мов програмування, що потенційно можуть призвести помилок.
- •50. Методи програмування, що потенційно можуть призвести до помилок.
- •51. Укривання даних, як спосіб підвищення надійності програмування.
- •52. Технологічні заходи мінімізації числа відмов у програмних системах.
- •53. У проблемі безвідмовності виділяють чотири аспекти.
- •54. Існує два підходи, що використовуються для розробки пз, стійкого до збоїв.
- •55. Обробка виключень в мовах програмування як засіб підвищення надійності.
- •56.Основні типи виявлення збоїв у програмних системах.
- •57. Способи локалізації помилок та пошкоджень даних в програмах.
- •58. Види стійких до відмов архітектур.
- •59. Основні підходи до створення стійкого до відмов програмного забезпечення.
- •60. Шляхи досягнення відмінностей між різними версіями програмного забезпечення. Досягти відмінності між різними версіями пз можна також такими способами:
56.Основні типи виявлення збоїв у програмних системах.
Мови програмування подібні Java і Ada мають строгі опису типів. Це дозволяє багато помилок, які служать причиною порушення станів і відмов системи, виявити під час компіляції. Компілятор може виявити порушення правил опису типів. Перевірка компілятора обмежена статичними величинами, але компілятор може також автоматично згенерувати програму, яка виконує, наприклад, перевірку присвоєння значень масивів. Вона перевірить, що індекси масиву не вийдуть за вказані межі і що значення масиву мають необхідний тип.
Перша ступінь засобів відмовостійкості повинна виявити, що збій (помилкове стан системи) стався або станеться, якщо негайно не будуть виконані деякі дії. Зазвичай у такій ситуації управління передається в блок програми, яка може керувати виявленим збоєм.
Існує два типи виявлення збоїв.
Превентивне виявлення помилок. У цьому випадку механізм виявлення помилок запускається перш, ніж відбудеться зміна стану. Якщо потенційне помилкове стан виявлено, то зміни стану не відбувається. Зазвичай система виявлення помилок обробляє виняткову ситуацію, яка визначає тип виявленої помилки.
Ретроспективне виявлення помилок. У цьому випадку механізм виявлення помилок запускається після того, як стався збій. Якщо помилку виявлено, повідомляється про виняткову ситуації і використовується механізм виправлення помилки.
Превентивне виявлення помилок часто виконується шляхом введення обмежень, що накладаються
на стани системи, і контролю за ними при переході від одного стану до іншого. Ця схема спрощується, якщо стан системи визначається станом низки об'єктів. Обмеження, які
застосовуються до окремих об'єктів, можна перевіряти автоматично і змінювати під час виконання методу (асоційованого з об'єктом), який може змінити стан. Цей підхід проілюстровано в лістингу 18.5, який на мові Java описує клас PositiveEven, який реалізує тип позитивних парних чисел.
57. Способи локалізації помилок та пошкоджень даних в програмах.
Локалізація помилок і збоїв полягає в аналізі стану системи для визначення масштабу її руйнування внаслідок збою. У багатьох випадках цього можна уникнути, визначаючи наявність помилок перш, ніж відбудеться остаточне зміна стану. Якщо помилку виявлено, зміна стану не допускається, що попереджає пошкодження системи. Але локалізація помилок і збоїв необхідна, коли зміни стану не можна уникнути або коли збій є результатом послідовності окремих правильних станів, які, тим не менш, призводять до сбойному станом системи.
Локалізація помилок і збоїв полягає не у виправленні помилок, а в оцінці того, які частини простору станів постраждали від збою. Це можна зробити за допомогою якоїсь "функції законності", яка перевіряє, чи є дане стан несуперечливим ("законним"). Якщо стану "незаконні", вони будь-яким способом виділяються. Серед інших методів, що використовуються для виявлення помилок і локалізації ушкоджень, виділимо наступні.
1. Використання контрольних сум і контроль розрядів у числових даних. 2. Використання надлишкових зв'язків у структурах даних, які містять покажчики. 3. Використання в паралельних системах контрольних таймерів.
При зміні даних та обмін ними для перевірки програм можна використовувати контрольну суму числових даних [121]. Контрольна сума - це величина, яка розраховується на основі даних за допомогою спеціальної математичної функції. Ця функція повинна дати єдине значення для групи даних, яка бере участь в обміні. Контрольну суму обчислює відправник даних і додає це значення до даних. Приймач даних застосовує до даних ту ж саму функцію і порівнює отримане значення з контрольною сумою. Якщо вони відрізняються, значить, сталося деяке порушення цілісності даних. Цей же механізм може використовуватися для виявлення вторгнення в захищені дані і навмисного їх зміни.
Коли використовуються пов'язані структури даних, їх подання можна зробити надлишковим шляхом включення зворотних посилань. Тоді для кожної прямого посилання від А до В буде існувати зворотній посилання від В до А. Якщо також є лічильник числа елементів у структурі, можна перевірити відповідність прямих і зворотних посилань і збіг еталонного і обчисленого розмірів структури.
Якщо процеси мають обмеження на час їх виконання, можна встановити контрольний таймер. Він починає діяти одночасно з процесом, визначаючи час його виконання, і повертається в початковий стан після виконання процесу. Він опитується блоком управління через постійні інтервали часу. Якщо з якихось причин процес не завершиться, контрольний таймер не повернеться, у вихідне положення. У такому випадку блок керування виявляє збій і вживає заходів для примусового завершення процесу.
