Введення p>
Протягом багатьох років додатки на базі ОС реального часувикористовувалися у вбудованих системах спеціального призначення, а знедавнього часу вони стали застосовуватися всюди, від бортових системуправління ЛА, до побутових приладів. p>
Розробка багатопроцесорних обчислювальних систем (НД), як правило,має своєю метою підвищення або рівня надійності, або рівняпродуктивності системи до значень недоступних або важкореалізоване втрадиційних ЕОМ. p>
У першому випадку на передній план постає питання про наявність спеціальнихзасобів забезпечення відмовостійкості обчислювальних систем, основноюособливістю (і гідністю) яких є відсутність будь-якогоєдиного ресурсу, вихід з ладу якого призводить до фатального відмовивсієї системи. p>
Таким чином, об'єктом дослідження в рамках мережевої відмовостійкоїтехнології стає ОСРВ - керуюче програмне забезпечення особливоготипу, що використовується для організації роботи вбудованих додатків,для яких характерні обмеженість ресурсів пам'яті, невисокапродуктивність, а також вимоги гарантованого часу відгуку,високого рівня готовності та наявності коштів автомоніторінга. p>
Дана дипломна робота присвячена розробці спеціалізованоїрозподіленої операційної системи реального часу для відмовостійких
НД з рангом відмовостійкості N (N-1), що означає здатність системифункціонувати навіть у тому випадку, якщо відбудуться відмови всіх елементівсистеми за винятком одного. Для повного висвітлення обраної теми булипоставлені наступні завдання: p>
1. Провести аналіз існуючих операційних систем реального часу, виділити основні функціональні вимоги до них, дати порівняльну характеристику. P>
2. Розкрити концепцію побудови ОСРВ з рангом відмовостійкості N-1, виділити основні модулі операційної системи, функціональні вимоги до них і алгоритми роботи. P>
3. Розкрити логіку організації відмовостійких обчислень на прикладі конкретної реалізації. P>
4. Провести аналіз надійності відмовостійкої НД і дати рекомендації з організації НД p>
5. Створити програмну модель обчислювальної системи з розподіленою операційною системою реального часу і відпрацювати на ній різні режими роботи. P>
6. Розглянути можливість портування (перенесення) ОСРВ на платформу p>
TMS320c30, розглянути специфічні проблеми і складнощі при здійсненні портаціі. P>
У першій частині роботи розміщено короткий опис відомих ОСРВ, описані їхфункціональні можливості, структура, їх спрямованість (специфічніособливості). Також наведено порівняльну характеристику та відзначені тірішення, які можна було б використати для розробки власноїспеціалізованої ОСРВ. p>
У другому розділі описана концепція побудови розподіленої ОСРВ, булисформульовані основні принципи функціонування перспективноїобчислювальної системи, що включають у себе багатопроцесорні, забезпеченняживучості, адаптацію до змін внутрішніх умов середовища, підтримкуреального масштабу часу, мобільність і відкритість програмногозабезпечення. Запропоновано приклад організації відмовостійких обчислень наприкладі п'яти-вузловий повно-мережі ПЕ в умовах постійної деградаціїсистеми. p>
Далі розглянута програмна модель НД і операційної системи,логіка роботи і взаємозв'язок модулів. p>
В останньому розділі розглядаються особливості апаратної платформи
TMS320c30, питання реалізації вищенаведених ідей за допомогою цієїплатформи, доповнення ОС специфічними для даної архітектури модулями. p>
Спеціальна частина p>
Операційні системи реального часу. p>
ОС загального призначення, особливо багатокористувацькі, орієнтовані наоптимальний розподіл ресурсів комп'ютера між користувачами ізавданнями (системи поділу часу), В операційних системах реальногочасу (ОСРВ), подібна завдання відходить на другий план - все відступаєперед головним завданням - встигнути зреагувати на події, що відбуваються наоб'єкті. p>
1 Опис і загальні вимоги до систем реального часу. p>
Застосування операційної системи реального часу завжди пов'язане запаратурою, з об'єктом, з подіями, що відбуваються на об'єкті. Системареального часу, як апаратно-програмний комплекс, що включає в себедатчики, які реєструють події на об'єкті, модулі вводу-виводу,перетворюють показники датчиків в цифровий вигляд, придатний для обробкицих свідчень на комп'ютері, і, нарешті, комп'ютер з програмою,реагує на події, що відбуваються на об'єкті. ОСРВ орієнтована наобробку зовнішніх подій. Саме це призводить до корінних відмінностей (запорівняно з ОС загального призначення) в структурі системи, у функції ядра, впобудові системи вводу-виводу. ОСРВ може бути схожа подля користувача інтерфейсу на ОС загального призначення, однак вона влаштованазовсім інакше - про це мова попереду. p>
Крім того, застосування ОСРВ завжди конкретно. Якщо ОС загальногопризначення зазвичай сприймається користувачами (не розробниками) як вжеготовий набір додатків, то ОСРВ служить тільки інструментом для створенняконкретного апаратно - програмного комплексу реального часу. І томунайбільш широкий клас користувачів ОСРВ - розробники комплексівреального часу, люди проектують системи управління та збору даних.
Проектуючи і розробляючи конкретну систему реального часу, програмістзавжди знає точно, які події можуть відбутися на об'єкті, знаєкритичні терміни обслуговування кожного з цих подій. p>
Назвемо системою реального часу (СРВ) апаратно-програмнийкомплекс, що реагує в передбачувані часи на непередбачуваний потікзовнішніх подій. p>
Це визначення означає, що: p>
. Система повинна встигнути відреагувати на подію, що сталася на об'єкті, протягом часу, критичного для цієї події. Величина критичного часу для кожної події визначається об'єктом і самим подією, і, природно, може бути різною, але час реакції системи повинне бути передбачене (обчислено) при створенні системи. Відсутність реакції в передбачене час вважається помилкою для систем реального часу. P>
. Система повинна встигати реагувати на події, що відбуваються одночасно. Навіть якщо два або більше зовнішніх подій відбуваються одночасно, система повинна встигнути зреагувати на кожне з них протягом періодів часу, критичного для цих подій. P>
Розрізняють системи реального часу двох типів - системи жорсткогореального часу і системи м'якого реального часу. p>
Системи жорсткого реального часу не допускають ніяких затримокреакції системи ні за яких умов, тому що: p>
. результати можуть виявитися марні в разі запізнення, p>
. може статися катастрофа у разі затримки реакції, p>
. вартість запізнення може виявитися нескінченно велика. p>
Приклади систем жорсткого реального часу - бортові системиуправління, системи аварійного захисту, реєстратори аварійних подій. p>
Системи м'якого реального часу характеризуються тим, що затримкареакції не критична, хоча й може призвести до збільшення вартостірезультатів і зниження продуктивності системи в цілому. p>
Основна відмінність між системами жорсткого і м'якого реального часуможна виразити так: система жорсткого реального часу ніколи не запізнитьсяз реакцією на подію, система м'якого реального часу - не повинназапізнюватися з реакцією на подію. p>
Тоді операційна система реального часу - це така ОС,яка може бути використана для побудови систем жорсткого реальногочасу. Це визначення виражає відношення до ОСРВ як до об'єкта,містить необхідні інструменти, але також означає, що цимиінструментами ще необхідно правильно скористатися. p>
1.2. Параметри ОСРВ p>
1.2.1. Час реакції системи p>
Майже всі виробники систем реального часу наводять такийпараметр, як час реакції системи на переривання (interrupt latency). p>
Справді, якщо головним для системи реального часу є їїздатність вчасно відреагувати на зовнішні події, то такий параметр,як час реакції системи є ключовим. p>
Події, що відбуваються на об'єкті, реєструються датчиками, дані здатчиків передаються в модулі вводу-виводу (інтерфейси) системи. Модулівводу-виводу, отримавши інформацію від датчиків і перетворивши її, генеруютьзапит на переривання в керуючому комп'ютері, подаючи йому тим самим сигналпро те, що на об'єкті відбулася подія. Отримавши сигнал від модуля вводу -виводу, система повинна запустити програму обробки цієї події. p>
Інтервал часу - від події на об'єкті і до виконання першогоінструкції в програмі обробки цієї події і є часом реакціїсистеми на події. p>
Зазвичай час реакції систем на переривання становить близько 4-10мкс. p>
1.2.2. Час перемикання контексту p>
У операційні системи реального часу закладений паралелізм,можливість одночасної обробки декількох подій, тому всі ОСРВє багатозадачними (многопроцесснимі, многонітіевимі). p>
Контекст завдання це набір даних, які задають стан процесора привиконання завдання. Зазвичай співпадає з набором регістрів, доступних длязміни прикладної задачі. p>
При перемиканні задач (процесів) необхідно: p>
1. коректно зупинити працюючу завдання; для цього а) виконати інструкції поточного завдання, вже завантажені у процесор,але ще не виконані; б) зберегти в оперативній пам'яті регістри поточного завдання; p>
2. знайти, підготувати і завантажити викликану завдання; p>
3. запустити нове завдання, для цього а) відновити з оперативної пам'яті регістри нового завдання
(збережені раніше, якщо вона до цього вже працювала); б) завантажити в процесор інструкції нового завдання. p>
Кожна з цих стадій вносить свій внесок у затримку при перемиканніконтексту. Оскільки будь-який додаток реального часу має забезпечитивидачу результату в заданий час, то ця затримка повинна бути мала,детермінована і відома. Це число є однією з найважливішиххарактеристик ОСРВ. Зазвичай час перемикання контексту в ОСРВ становить
10-20 мкс. P>
3 Розміри системи p>
Для систем реального часу важливим параметром є розмірсистеми виконання, а саме сумарний розмір мінімально необхідного дляроботи програми системного набору (ядро, системні модулі, драйвери і т.д.). Хоча, треба визнати, що з плином часу значення цього параметразменшується, тим не менше, він залишається важливим і виробники системреального часу прагнуть до того, щоб розміри ядра і обслуговуючихмодулів системи були невеликі. p>
3 Механізми реального часу p>
Важливим параметром при оцінці ОСРВ є набір інструментів,механізмів реального часу, що надаються системою. p>
1.3.1. Система пріоритетів і алгоритми диспетчеризації p>
Базовими інструментами розробки сценарію роботи системи єсистема пріоритетів процесів (завдань) і алгоритми планування
(диспетчеризації) ОСРВ. p>
У багатозадачних ОС загального призначення використовуються, як правило,різні модифікації алгоритму кругової диспетчеризації, засновані напонятті безперервного кванта часу ( "time slice"), що надаєтьсяпроцесу для роботи. Планувальник після закінчення кожного кванта часупереглядає чергу активних процесів і приймає рішення, кому передатиуправління, грунтуючись на пріоритетах процесів (чисельних значеннях, їмпривласнених). Пріоритети можуть бути фіксованими або змінюватися з часом
- Це залежить від алгоритмів планування в цієї ОС, але рано чи пізнопроцесорний час отримають всі процеси в системі. p>
Алгоритми кругової диспетчеризації незастосовні в чистому вигляді в ОСРВ.
Основний недолік - безперервний квант часу, протягом якогопроцесором володіє тільки один процес. Планувальники ж ОСРВ маютьможливість змінити процес до закінчення "time slice", якщо в цьому виникланеобхідність. Один з можливих алгоритмів планування при цьому
"пріоритетний з витісненням". Світ ОСРВ відрізняється багатством різнихалгоритмів планування: динамічні, пріоритетні, монотонні, адаптивніі пр., мета ж завжди переслідується одна - надати інструмент,що дозволяє в потрібний момент часу виконувати саме той процес, якийнеобхідний. p>
1.3.2. Механізми межзадачного взаємодії p>
Інший набір механізмів реального часу відноситься до засобівсинхронізації процесів і передачі даних між ними. Для ОСРВ характернарозвиненість цих механізмів. До таких механізмів відносяться: семафори,мьютекс, події, сигнали, засоби для роботи з пам'яттю, що розділяється,канали даних (pipes), черги повідомлень. Багато хто з подібних механізміввикористовуються і в ОС загального призначення, але їх реалізація в ОСРВ має своїособливості - час виконання системних викликів майже не залежить відстану системи, і в кожній ОСРВ є принаймні один швидкиймеханізм передачі даних від процесу до процесу. p>
3 Засоби для роботи з таймерами p>
Такі інструменти, як засоби роботи з таймерами, необхідні длясистем з жорстким тимчасовим регламентом, тому розвиненість засобів роботи зтаймерами - необхідний атрибут ОСРВ. Ці кошти, як правило, дозволяють: p>
. вимірювати і задавати різні проміжки часу (від 1 мкс і вище), p>
. генерувати переривання після закінчення тимчасових інтервалів, p>
. створювати разові і циклічні будильники p>
Тут описані тільки базові, обов'язкові механізми, що використовуютьсяв ОСРВ. Крім того, майже в кожній ОСРВ можна знайти цілий набірдодаткових, специфічних тільки для неї механізмів, що стосується системивводу-виводу, управління переривань, роботи з пам'яттю. Кожна системамістить також ряд засобів, що забезпечують її надійність: вбудованімеханізми контролю цілісності кодів, інструменти для роботи з таймером. p>
4 Класи систем реального часу p>
Монолітна архітектура
ОСРВ з монолітною архітектурою можна представити у вигляді (рис. 1.1)
. прикладного рівня: складається з працюючих прикладних процесів;
. системного рівня: складається з монолітного ядра операційної системи, в якому можна виділити наступні частини: інтерфейс між додатками і ядром (API), власне ядро системи, інтерфейс між ядром та обладнанням (драйвери пристроїв). p>
p >
Рис. 1.1. ОСРВ з монолітною архітектурою p>
Інтерфейс в таких системах відіграє подвійну роль: p>
1. управління взаємодією прикладних процесів та системи, p>
2. забезпечення безперервності виконання коду системи (тобто відсутністьперемикання завдань під час виконання коду системи). p>
Основною перевагою монолітної архітектури є їївідносна швидкість роботи в порівнянні з іншими архітектурою. Однак,досягається це, в основному, за рахунок написання значних частин системина асемблері. p>
Недоліки монолітної архітектури. p>
1. Системні виклики, що вимагають перемикання рівнів привілеїв (відкористувацької завдання до ядра), повинні бути реалізовані як переривання абоспеціальний тип винятків. Це сильно збільшує час їхньої роботи. P>
2. Ядро не може бути перервано користувача завданням (non -preemptable). Це може призвести до того, що високопріоритетні завданняможе не отримати управління через роботу низькопріоритетним. p>
3. Складність перенесення на нові архітектури процесора череззначних асемблерних вставок. p>
4. Негнучкість і складність розвитку: зміна частини ядра системивимагає його повної перекомпіляції. p>
Це архітектура (на основі мікроядра)
Модульна архітектура з'явилася, як спроба прибрати інтерфейс міждодатками і ядром і полегшити модернізацію системи і перенесення її на новіпроцесори. p>
Тепер Мікроядро відіграє подвійну роль (рис 1.2): p>
1. управління взаємодією частин системи (наприклад, менеджерівпроцесів і файлів),
1. забезпечення безперервності виконання коду системи (тобто відсутність перемикання завдань під час виконання мікроядра). p>
p>
Рис. 1.2. ОСРВ на основі мікроядра p>
Недоліки модульної архітектури фактично ті ж, що і умонолітною. Проблеми перейшли з рівня інтерфейсу на рівень мікроядра.
Системний інтерфейс як і раніше не допускає перемикання завдань під часроботи мікроядра, тільки скоротився час перебування в цьому стані,проблеми з перенесенням мікроядра зменшилися (у зв'язку зі скороченням йогорозміру), але залишилися. p>
Об'єктна архітектура на осно?? е об'єктів-мікроядер p>
У цій архітектурі інтерфейс між додатками і ядром відсутнійвзагалі (рис. 1.3). Взаємодія між компонентами системи (мікроядра)і призначеними для користувача процесами здійснюється за допомогою звичайного дзвінкафункцій, оскільки і система, і програми написані на одній мові (зазвичай
C + +). Це забезпечує максимальну швидкість системних викликів. P>
p>
Рис. 1.3. Приклад об'єктно-орієнтованої ОСРВ p>
Фактичне рівноправність всіх компонент системи забезпечуєможливість перемикання завдань у будь-який час. Об'єктно-орієнтованийпідхід забезпечує модульність, безпека, легкість модернізації таповторного використання коду. p>
На відміну від попередніх систем, що не всі компоненти самій операційнійсистеми повинні бути завантажені в оперативну пам'ять. Якщо Мікроядро вжедодано для іншої програми, то воно повторно не завантажується, авикористовується код і дані вже наявного мікроядра. Всі ці прийомидозволяють скоротити обсяг необхідної пам'яті. Оскільки різні програмиподіляють одні мікроядра, то вони повинні працювати в одному адресномупросторі. Отже, система не може використовувати віртуальнупам'ять і тим самим працює швидше (тому що виключаються затримки натрансляцію віртуального адреси у фізичний). p>
1.5. Огляд деяких комерційних ОСРВ p>
Операційна система OS-9 p>
OS-9 фірми Microware відноситься до класу UNIX-подібних операційнихсистем реального часу. За своєю суттю OS-9 є багатозадачною ОС звитісняючої пріоритетною диспетчеризацією, що допускає можливістьрозрахованої на багато роботи. Об'єктно-орієнтований модульний дизайнсистеми дозволяє конфігурувати систему в дуже широкому діапазоні відвбудованих систем до великих мережевих додатків. Згідно з цією концепцієювсі функціональні компоненти OS-9, включаючи ядро, ієрархічні файловіменеджери, драйвера пристроїв і т. д., реалізовані у вигляді незалежнихмодулів. Всі модулі операційної системи позиційно-незалежні і можуть бутирозміщені в ПЗУ, а також можуть вилучатися із системи в процесі їїфункціонування без будь-якої повторної інсталяції або перекомпонування.
На малюнку 1.4 приведена спрощена структурна схема операційної системи. P>
Структура операційної системи OS-9 p>
p>
Рис. 1.4. Структура операційної системи OS-9 p>
Ядро забезпечує основний системний сервіс, включаючи управлінняпроцесами і розподіл ресурсів. p>
Основні характеристики:
1. Архітектура: на основі мікроядра
2. Стандарт: власний, виклики схожі на UNIX p>
Властивості як ОСРВ:
. Багатозадачність: многопроцессность
. Багатопроцесорна: так
. Рівнів пріоритетів: 65535
. Час реакції: 3 мкс
. Планування: пріоритетне, FIFO, спеціальний механізм планування; preemptive ядро p>
ОС розробки (host): UNIX/Windows p>
3. Процесори (target): Motorola 68xxx, Intel 80x86, ARM, MIPS, PowerPC
4. Лінії зв'язку host-target: послідовний канал і ethernet
5. Мінімальний розмір: 16Kb
6. Засоби синхронізації і взаємодії: Колективна пам'ять, сигнали, семафори, події. P>
Операційна система VxWorks p>
VxWorks відноситься до операційних систем «жорсткого» реальногочасу. Характерною рисою цієї ОС є те, завдяки її розвинутиммережним можливостям, вся розробка ПЗ ведеться на інструментальномукомп'ютері (хост-системі) з використанням крос-коштів для подальшоговиконання на цільовій машині під управлінням VxWorks. p>
Відмінна риса системи - можливість керувати роботою складнихкомплексів реального часу та бортових пристроїв, що використовуютьпроцесорні елементи різних постачальників. Три основні компоненти даної
ОС РВ утворюють єдине інтегроване середовище: власне ядро системи,здійснює управління процесором; набір засобів міжпроцесорного взаємодії;комплект комунікаційних програм для роботи з Ethernet абопослідовними каналами зв'язку. p>
Основні характеристики: p>
1. Архітектура: монолітна p>
2. Стандарт: власний і POSIX 1003 p>
3. Властивості як ОСРВ:
. Багатозадачність: многопроцессность і багатозадачність
. Багатопроцесорна: так
. Рівнів пріоритетів: 256
. Час реакції: 4 мкс
. Час перемикання контексту: 15 мкс
. Планування: пріоритетне; preemptive ядро p>
4. ОС розробки (host): UNIX/Windows p>
5. Процесори (target): Motorola 68xxx, Intel 80x86, Intel 80960,
PowerPC, SPARC, Alpha, MIPS, ARM p>
6. Лінії зв'язку host-target: послідовний канал, ethernet, шина
VME p>
7. Мінімальний розмір: 22Kb p>
8. Засоби синхронізації і взаємодії: семафори POSIX 1003,черги, сигнали ... p>
Операційна система QNX p>
Операційна система QNX канадської компанії QNX Software System Ltd.побудована на основі ієрархічної мікроядерної архітектури. Спрощенаструктурна схема цієї ОС наведена на малюнку 1.5. p>
p>
Рис. 1.5. Мікроядерної структура QNX p>
Мікроядро QNX виконує такі функції:міжпроцесорних обмін;низькорівневий мережевий обмін;диспетчеризація задач;низькорівневий обробка переривань.
Основні характеристики: p>
1. Архітектура: на основі мікроядра p>
2. Стандарт: POSIX 1003 p>
3. Властивості як ОСРВ:
. Багатозадачність: POSIX 1003 (многопроцессность і багатозадачність)
. Багатопроцесорна: так
. Рівнів пріоритетів: 32
. Час реакції: 4,3 мкс
. Час перемикання контексту: 13 мкс
. Планування: FIFO, round robin, адаптивне; preemptive ядро p>
4. Процесори (target): Intel 80x86 p>
5. Мінімальний розмір: 60Kb p>
6. Засоби синхронізації і взаємодії: POSIX 1003 (семафори,mutex, condvar) p>
Операційна система LynxOS p>
Система LynxOS випускається фірмою Lynx Real Time Systems (Los Gatos,
USA). ОСРВ з клона UNIX-систем, що забезпечує детерміноване часвідгуку за запитами.
Основні характеристики: p>
1. Архітектура: на основі мікроядра p>
2. Стандарт: POSIX 1003 p>
3. Властивості як ОСРВ:
. Багатозадачність: POSIX 1003 (многопроцессность і багатозадачність)
. Багатопроцесорна: так
. Рівнів пріоритетів: 255
. Час реакції: 7 мкс
. Час перемикання контексту: 17 мкс
. Планування: FIFO, round robin, Quantum, preemptive ядро p>
4. Процесори (target): Intel 80x86, Motorola 68xxx, SPARC, PowerPC p>
5. Мінімальний розмір: повної системи: 256Kb усіченої системи: 124Kb тільки ядра: 33Kb p>
Систему можна записати в ROM. P>
6. Засоби синхронізації і взаємодії: POSIX 1003 (семафори,mutex, condvar) p>
Операційна система pSOS p>
Система pSOS випускається Integrated Systems (Santa Clara, USA). p>
Основні характеристики: p>
1. Архітектура: на основі мікроядра p>
2. Стандарт: власний p>
3. Властивості як ОСРВ:
. Багатозадачність: многопроцессность і багатозадачність
. Багатопроцесорна: так
. Рівнів пріоритетів: 255
. Час реакції: 4 мкс
. Час перемикання контексту: 12мкс
. Планування: пріоритетне; preemptive ядро p>
4. ОС розробки (host): UNIX/Windows p>
5. Процесори (target): Motorola 68xxx, Intel 80x86, Intel 80960,
ARM, MIPS, PowerPC p>
6. Мінімальний розмір: 15Kb
7. Засоби синхронізації і взаємодії: семафори, mutex, події, і тд. P>
1.6. Висновки до глави 1 p>
Основними відмінностями ОСРВ від ОС загального призначення є:
. Орієнтація на обробку зовнішніх подій;
. Детерміноване час реакції на зовнішнє подія;
. Модульна організація;
. Невеликий розмір системи. P>
У главі були розглянуті найважливіші параметри і механізми ОСРВ, такіяк:
. Час реакції системи;
. Час перемикання контексту;
. Види диспетчеризації;
. Механізми синхронізації і межзадачного взаємодії p>
Класифікація ОСРВ дозволяє виділити найбільш оптимальну структурупобудови ОСРВ. Очевидно, що операційні системи з монолітноюархітектурою, внаслідок їх спрямованості на конкретні процесорніплатформи і характеру взаємодії з ядром, навряд чи можуть бутивикористані як щодо універсальних ОСРВ для систем високоїготовності. ОСРВ на основі мікроядра має переваги упорівняно з монолітною архітектурою, а комбінація з об'єктно -орієнтованим підходом, дозволить системі стати апаратно-незалежною ізабезпечити швидку реакцію на зовнішні події. p>
У висновку були перераховані основні властивості деякихпоширених ОСРВ. На жаль, жодну з розглянутих операційнихсистем не можна назвати мережевий в широкому сенсі цього слова, тому що рівеньмережевого обміну, закладений у багатьох з них відповідає рівню локальноїмережі. Багатопроцесорна підтримка, введена в VxWorks орієнтована тількина системи зі спільною пам'яттю. Відсутність механізму відмовостійкості,подібним як відмови сполук (зачатки цього є в QNX), так і відмовипроцесорних елементів, необхідного для відмовостійкихспеціалізованих обчислювальних систем, немає ні в одній з цихопераційних систем. Таким чином, завданням розробників єдодавання таких модулів існуючим ОСРВ, які дозволили б забезпечитивідмовостійкість розподілених обчислювальних систем. p>
2. Підтримка відмовостійкості обчислювальних систем засобами операційних систем реального часу p>
Специфіка застосування деяких систем обумовлює особливі вимоги,пропоновані до надійності їх функціонування. Відмова або збій у їхній роботі,потягли за собою неправильні результати обчислень (або повне їхвідсутність), можуть призвести до катастрофічних наслідків. Перевагивикористання стійких до відмов обчислювальних систем безпосередньовипливають з необхідності тривалої роботи системи в умовах, колитехнічне обслуговування (ремонт, заміна і тд.) неможливі,важкореалізоване або зв'язані з великими економічними витратами. Тому
Нд та спеціалізовані операційні системи розробляються таким чином,щоб система була толерантна (терпима) до виникаючих відмов. Особливо цеактуально для автономних ЛА (наприклад, космічних апаратів). p>
Складність сучасних обчислювальних засобів така, що практичнонеможливо перевірити готові вироби при всіх передбачуваних умовах ірежимах їх роботи. Тому в обчислювальних системах можуть бути приховані --не виявили при перевірці - помилки програмного забезпечення і (або)несправності апаратури, але завдяки відмовостійкості збій, відмоваокремого елемента як правило не призводять до спотворення вихідних даних. p>
На відміну від апаратної частини обчислювальної системи поява помилоку програмі не пов'язано з фізичними процесами. Отримання результатів,відмінних від очікуваних відбувається в результаті виконання неперевіреноючастини програми або в результаті помилки в програмі. p>
Таким чином, отримання відповіді, відмінного від очікуваного, в деякиймомент часу є результат виконання неперевіреною частини програми,що містить помилку, завдання вхідних даних, для яких поведінку програминеспеціфіціровано, а також впливу відмов в апаратурі на роботупрограми. p>
При розгляді надійності обчислювальної системи слід матина увазі, що вона визначається надійністю апаратної частини і надійністюпрограмного забезпечення. Однак, поняття надійності програмногозабезпечення неконструктивно, це означає, що на етапі тестуванняпрограми не були виявлені всі помилки. У даній роботі вважається, щопрограма не містить помилок, та отримання результату, відмінних відочікуваного залежить від збоїв або відмов апаратної частини чи інших факторів
(наприклад, вплив ЕМІ на зміст оперативної пам'яті), а тому питання пронадійності програмного забезпечення не ставиться. Таким чином, надійністьобчислювальної системи визначається надійністю апаратури і впливомвідмов у ній на відмови в обчислювальної системи в цілому. p>
Попередні дослідження показали, що для елементної базисередньої якості (надійність 0.999 - "три дев'ятки після коми") приоптимальному поєднанні швидкості отримання результату на його надійність вобчислювальної середовищі теоретично досяжна достовірність отриманняправильних результатів машинного рахунку в "двісті дев'яток після коми" приуповільнення темпу їх отримання в 300-400 разів [1], що еквівалентнозбільшення надійності до 200 порядків величини при введенні порівняноневеликий обчислювальної надмірності, що приводить до втратипродуктивності не більше ніж на 2-3 порядки, що вже на сучасномурівні може компенсуватися підбором комп'ютерів необхідноїпродуктивності. p>
1. Поняття відмовостійкості НД p>
Відмовостійкість будемо називати властивість системи, що дозволяєпродовжити виконання заданих програмою дій після виникненняодного або декількох збоїв або відмов компонентів НД p>
Відмовою називається подія, що полягає в порушенніпрацездатності компоненту системи. Наслідки відмови можуть бутирізними. Відмова системи може бути викликаний відмовою (невірнимспрацьовуванням) якихось її компонентів (процесор, пам'ять, пристроївведення/виводу, лінії зв'язку, або програмне забезпечення). Відмова компонентаможе бути викликаний помилками при конструюванні, при виробництві абопрограмуванні. Він може бути також викликаний фізичним ушкодженням,зношуванням обладнання, некоректними вхідними даними, і багатьмаіншими причинами. p>
Відмови можуть бути випадковими, періодичними або постійними.
Випадкові відмови (збої) при повторенні операції зникають. Причиною такогозбою може служити, наприклад, електромагнітна завада. Інший приклад --рідкісна ситуація в послідовності звернень до операційної системи відрізних завдань. Періодичні відмови повторюються часто протягом якогосьчасу, а потім можуть довго не відбуватиметься. Приклади - поганий контакт,некоректна робота ОС після обробки аварійного завершення завдання.
Постійні (стійкі) відмови не припиняються до усунення їх причини --руйнування диска, виходу з ладу мікросхеми або помилки в програмі. p>
2.2. Причини та класифікація відмов і збоїв p>
Відмови за характером свого прояву підрозділяються на візантійські
(система активна і може проявляти себе по-різному, навіть злочинно) іпропажа ознак життя (часткова або повна). Перші розпізнати набагатоскладніше, ніж друге. p>
Апаратна реалізація вузлів (процесорних модулів) дозволяєвиділити основні класи відмов апаратури:
- Відмова процесора (центральної частини ПЕ);
- Відмова лінку - зв'язки між ПЕ; p>
Ідентифікація відмови процесора будь-якого вузла мережікласифікується, як відмова всього сайту: він ізолюється від іншої мережі налогічному рівні і за наявності відповідної підтримки відключається наапаратному рівні (вимикається харчування). p>
Ідентифікація відмови лінка (зв'язку) призводить лише до зменшення ступенязв'язності вузлів мережі. Відмовив, лінк ізолю на логічному рівнішляхом зміни маршрутів передачі повідомлень між вузлами мережі. p>
Відмова при виконанні функціонального програмного забезпечення можепроявитися внаслідок:
- порушення кодів запису програм в пам'яті команд;
- стирання або перекручування даних в оперативній або довготривалої пам'яті;
- порушення нормального ходу обчислювального процесу. p>
Перераховані викривлення можуть діяти спільно. Відмова можевиявлятися у вигляді програмного зупину або зациклення, систематичногопропуску виконання певної групи команд, одноразового абосистематичного перекручування даних і тд. Програмні відмови призводять доприпинення видачі абонентам інформації і керуючих впливів, чи дозначного спотворення її змісту і темпу видачі, відповіднихпорушення працездатності. p>
Основна особливість (і гідність) мережевий відмовостійкоїтехнології - відсутність будь-якого (навіть самого незначного)єдиного компонента (ресурсу), вихід з ладу якого призводить дофатального відмови всієї системи. Така система не може містити будь -або "центрального" (головного) вузла, розміщеного в одному з процесорнихелементів системи, вона може складатися тільки з "рівноправних" частин,розміщених в кожному вузлі мережі. Таким чином можна говорити лише продеградації якості системи при відмові одного або більше її елементів. Утакій системі повна відмова настає після виходу з ладу тількипевної кількості ресурсів, визначеного на етапі проектування. p>
3. Методи і засоби забезпечення відмовостійкості p>
Для забезпечення надійного вирішення завдань в умовах відмов системизастосовуються два принципово розрізняються підходу - відновленнярішення після відмови системи (або її компоненту) та запобігання відмовисистеми (відмовостійкість). p>
Відновлення може бути прямим (без повернення до минулого стану)і зворотний. p>
Пряме відновлення засноване на своєчасному виявленні збою іліквідації його наслідків шляхом приведення некоректного стану системив коректнотобто Таке відновлення можливо тільки для певного наборузаздалегідь передбачених збоїв. p>
При зворотному відновлення відбувається повернення процесу (абосистеми) з некоректного стану в якийсь з попередніхкоректних станів. При цьому виникають наступні проблеми:
. Втрати продуктивності, викликані запам'ятовуванням станів, відновленням запомненного стану і повторенням раніше виконаної роботи, можуть бути дуже високі.
. Немає гарантії, що збій знову не повториться після відновлення.
. Для деяких компонентів системи відновлення до попереднього стан може бути неможливо (торговий автомат). P>
Для відновлення стану в традиційних ЕОМ застосовуються дваметоду (та їх комбінація), засновані на проміжній фіксації стануабо веденні журналу виконуваних операцій. Вони розрізняються об'ємомзапам'ятовувати інформацію і часом, необхідним для відновлення. p>
Застосування подібних методів у розподілених системах наштовхуєтьсяна наступні труднощі:
. Для розподілених систем запам'ятовування узгодженого глобального стану є серйозною проблемою теоретичної;
. методи відновлення після відмов для деяких систем непридатні через переривання нормального функціонування та ін; p>
Щоб уникнути ці неприємності, створюють системи, стійкі довідмов. Такі системи або маскують відмови, або ведуть себе у випадкувідмови заздалегідь певним чином. p>
У міру того як операційні системи реального часу і вбудованікомп'ютери все частіше використовуються в критично важливих додатках,розробники створюють нові ОС реального часу високої готовності. Ціпродукти включають в себе спеціальні програмні компоненти, якіініціюють попередження, запускають системну діагностику для того, щобдопомогти виявити проблему, або автоматично перемикаються на резервнусистему. p>
Забезпечення живучості - це використання спеціальних засобів,що дозволяють системі продовжувати правильне функціонування привиникненні відмов її програмних і апаратних компонентів зможливістю деградації якості функціонування [2]. На відміну відвідмовостійкості, де з відмовою не пов'язане якість роботи ВС,порівняно складні засоби забезпечення живучості дозволяють більшраціонально витрачати обчислювальні ресурси та збільшувати середній часнапрацювання до настання фатального відмови. Забезпечення живучості зазвичайвключає три основні функції: діагностика виникнення відмови,локалізація несправності і перебудова системи. В основі толерантностілежить надмірність як апаратного, так і програмного забезпечення. Томубагатопроцесорні системи з притаманною їм апаратної надмірністюпотенційно дозволяють створювати не тільки високопродуктивні, але йвисоконадійні системи. p>
Іншим основним вимогою є наявність механізму,дозволяє агентам в кожному пристрої обмінюватися топологічноїінформацією зі своїми сусідами поср