Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8. Операційні системи.docx
Скачиваний:
101
Добавлен:
17.07.2024
Размер:
68.32 Кб
Скачать

8.1.3. Вимоги до операційних систем, поняття відмовостійкості

Окрема операційна система зазвичай може виконуватись на обмеженому переліку обладнання, яке забезпечує потрібні їй механізми. Сучасні універсальні (і не тільки) операційні системи зазвичай вимагають апаратної підтримки наступних механізмів:

  • підтримка сторінкового поділу оперативної пам'яті з можливістю апаратного захисту сторінок від модифікації даних окремими задачами (процесами);

  • підтримка захищеного режиму виконання процесора (режиму ядра ОС), який передбачає можливість виконання команд вводу/виводу (та інших привілейованих інструкцій для керування апаратурою), при цьому спроба виконати подібну операцію в прикладній програмі блокується апаратно.

Основні вимоги до систем реального часу. Нині обов'язковою умовою, що пред'являється до ОС, що претендує на застосування в завданнях реального часу, є реалізація в ній механізмів багатозадачності. Та ж тенденція є присутньою і в ОС загального призначення. Але для СРЧ до реалізації механізмів багатозадачності пред'являється ряд додаткових, в порівнянні з системами загального призначення, вимог. Визначаються ж ці вимоги тією обов'язковою властивістю СРЧ, про яку вже говорилося, - передбачуваністю.

Загальноприйнято відділяє ОСРЧ від операційних систем загального призначення наступна умова: час реакції операційної системи при будь-яких варіантах завантаження повинен залишатися постійним. На практиці це означає високу стабільність таких характеристик системи як латентність переривань (тобто час від моменту ініціації переривання до першої команди програмного обробника), час перемикання контекстів процесів і потоків, і так далі. Також для ОСРЧ дуже важливий час вирішення конфліктів, таких як прихід низькопріоритетного і високопріоритетного переривань підряд у вказаному порядку з невеликим тимчасовим розривом. Стабільний малий час, за який управління буде передано обробникові високопріоритетного переривання, є хорошою характеристикою ОСРЧ. Проте тут необхідно відмітити такий важливий факт, що самий по собі час реакції системи не грає особливої ролі, тимчасові характеристики повинні розглядатися в контексті параметрів зовнішнього процесу. Необхідно пам'ятати, що в системах реального часу ключовими є не статистичні (середні) оцінки, а максимальні значення, оскільки перевищення часу реакції навіть в одному випадку з мільйона в завданнях жорсткого реального часу може привести до катастрофічних наслідків.

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

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

Функціональні вимоги:

ефективне керування ресурсами;

забезпечення зручного інтерфейсу для користувача і прикладних програм;

реалізація мультипрограмної обробки, віртуальної пам'яті;

підтримка багатовіконного інтерфейсу;

Ринкові вимоги: розширюваність, мобільність, надійність і відмовостійкість, сумісність, безпека, продуктивність.

Очевидно, що головною вимогою, що пред'являється до операційної системи, є здатність виконання основних функцій: ефективного управління ресурсами і забезпечення зручного інтерфейсу для користувача і прикладних програм.

Відмовостійкість або поступова деґрадація (англ. graceful degradation), або поступо́ве скоро́чення можли́востей, або поступо́вий ви́хід із робо́ти, або пла́вне зни́жування ефекти́вності це властивість системи (часто комп'ютерної), що дозволяє їй продовжувати правильно діяти у випадку помилки або декількох помилок в деяких її частинах. Якщо при цьому падає якість експлуатації, то це відбувається пропорціонально до серйозності помилки, на відміну від наївно спроектованих систем, в яких навіть маленька помилка спричиняє загальну відмову. Відмовостійкість особливо популярна у високо доступних та життєво критичних системах.

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

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

Відновлення після помилок в відмовостійких системах можна характеризувати як прогін (англ. roll-forward) або відкіт (англ. roll-back). Коли система визначила, що сталася помилка, відновлення прогоном виправляє поточний стан системи до можливості продовження роботи. Відкочування повертає стан системи до деякої попередньої, вірної версії, наприклад, із використанням контрольних точок, і продовжує виконання звідти. Відкочування вимагає, щоб операції між контрольними точками і станом із виявленою помилкою могли бути зроблені ідемпотентними. Деякі системи використовують обидва підходи для різних помилок або для різних частин однієї помилки.

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

Вимоги до відмовостійкості. Відмовостійка система має:

  • Мати більш ніж одну точку відновлення (наприклад, перехоплення керування при відмові може бути виконано одним з двох серверів)

  • Локалізація пошкоджень у пошкодженому компоненті

  • Обмеження розповсюдження несправності

  • Доступність режимів реверсії

Додатково, відмовостійка система характеризується в термінах планових і позапланових перерв в роботі служби. Зазвичай ця величина вимірюється саме на застосунковому рівні, а не на рівні апаратного забезпечення. Ця характеристика зветься доступністю і виражається у відсотках. Наприклад, система п'яти дев'яток статистично забезпечує доступність на рівні 99.999%. Відмовостійкі системи зазвичай базуються на концепції надлишковості.

В інформатиці, термін надійність програмного значення означає здатність комп'ютерної системи впоратися з помилками під час виконання, або здатність алгоритму продовжувати роботу, незважаючи на відхилення у ході розрахунків. Чим важче створити помилку будь-якого типу або форми, таку щоб комп'ютер не зміг би впоратися безпечно її виконати, тим більш надійним є програмне забезпечення. Формальні методи, такі як fuzz тестування, мають важливе значення для оцінки надійності, так як цей тип тестування включає неприпустимі або несподіваних вхідні дані. Також інтегрування помилок може бути використано для тестування надійності. Є велика кількість комерційних продуктів які виконують перевірки надійності роботи програмних систем.