Лекції - Частина 1 і 2

n1.doc (6 стор.)
Оригінал


  1   2   3   4   5   6

Частина 1. СИСТЕМИ РЕАЛЬНОГО ЧАСУ.

ВИЗНАЧЕННЯ. ОГЛЯД. ОПЕРАЦІЙНІ СИСТЕМИ

1. Що таке функціонування в «Реальному масштабі часу»

В даний час в документах і публікаціях з різною тематикою зустрічаються слова про вимогу, підтримки і т.д. «Роботи в режимі реального часу», «режиму реального часу» або просто «реального часу». Що ж таке «режим реального часу» стосовно комп'ютерних систем? Постараємося представити різні сучасні точки зору на це поняття.

Тлумачний словник по обчислювальним системам [7], дає таке визначення (стр. 399):

R.052 real-time system система реального часу (СРВ)

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

У тлумачному словнику з інформатики [8] дається таке визначення (стр. 335): Режим реального часу [real time processing]. Режим обробки даних, при якому забезпечується взаємодія обчислювальної системи з зовнішніми по відношенню до неї процесами у темпі, порівнянній з швидкістю протікання цих процесів.

Канонічне визначення системи реального часу дано Дональдом Гілліесом і виглядає так:

«Системою реального часу є така система, коректність функціонування якої визначається не тільки коректністю виконання обчислень, але і часом, в яке отриманий необхідний результат. Якщо вимоги по часу не виконуються, то вважається, що сталася відмова системи ». Інші додають:« Тому необхідно, щоб було гарантовано [апаратними та програмними засобами та алгоритмами обробки] виконання вимог щодо часу. Гарантія виконання вимог по часу необхідна, щоб поведінка системи було передбачувано. Також бажано, щоб система забезпечувала високий ступінь використання ресурсів, щоб задовольняти вимогам по часу [з мінімальними витратами] ».

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

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

Відзначимо наступну особливість: у прикладі з роботом і маємо справжній, «жорсткий» режим реального часу (hard real time), і якщо робот запізниться, то це призведе до повністю помилкової операції. Однак це міг би бути режим «квазіреального» часу (soft real time), якби запізнення робота призводило б лише до втрати продуктивності. Багато чого з того, що зроблено в області програмування в реальному часі, в дійсності працює в режимі «квазіреального» часу. Грамотно розроблені системи, як правило, мають рівень безпеки / корекції поведінки навіть для випадку, коли обчислення не закінчилися в необхідний момент, так що якщо комп'ютер трохи не встигає, то це може бути скомпенсовано.

Буває, що термін «система реального часу» застосовують в значенні «інтерактивна система» (on-line). Часто це просто рекламний хід. Наприклад, системи замовлення квитків або системи складського обліку не є системами «реального часу», так як людина-оператор без проблем перенесе затримку відповіді на кілька сотень мілісекунд.

Також можна зустріти випадки, коли термін «система реального часу» застосовують просто в значенні «швидкодіюча система». Необхідно зазначити, що визначення «реального часу» не є синонімом для визначення «швидкодіюча». Ще раз: термін «система реального часу» не означає, що система дає відповідь на вплив миттєво - затримка може досягати секунд і більше - але означає той факт, що гарантується деяка максимально можлива величина затримки відповіді, що дозволяє системі вирішувати поставлену задачу. Необхідно також відзначити, що алгоритми, що забезпечують гарантований час відповіді, часто мають меншу середню продуктивність, ніж алгоритми, які не гарантують час відповіді.

З наведеного вище можна зробити висновки:

- Термін «система реального часу» в даний час може бути записаний так: "Системою реального часу є така система, коректність функціонування якої визначається не тільки коректністю виконання обчислень, але і часом, в яке отриманий необхідний результат. Якщо вимоги по часу не виконуються, то вважається, що сталася відмова системи ".

Для того щоб система могла задовольнити вимогам, що пред'являються до систем реального часу, апаратні, програмні засоби та алгоритми роботи системи повинні гарантувати задані часові параметри реакції системи. Час реакції не обов'язково має бути дуже маленьким, але воно має бути гарантованим (і відповідає поставленим вимогам);

- Використання терміну «система реального часу», визначеного вище, для позначення інтерактивних і високопродуктивних систем невірно;

- Термін «квазіреальное час» (soft real-time) хоча і використовується, але чітко не визначений. До його чіткого визначення навряд чи можливе його застосування в документах (крім рекламних). З упевненістю можна сказати, що сенс терміну «реальний час» трактується фахівцями по-різному в залежності від області їх професійних інтересів, від того, є вони теоретиками або практиками, і навіть просто відмінного досвіду і кола спілкування.

- Практично всі системи промислової автоматизації є системами реального часу.

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

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

Інтуїтивно зрозуміло, що швидкодія системи реального часу має бути тим більше, чим більше швидкість протікання процесів на об'єкті контролю і управління. Щоб оцінити необхідна швидкодія для систем, що мають справу зі стаціонарними процесами, часто використовують теорему Котельникова [6], з якої випливає, що частота дискретизації сигналів повинна бути як мінімум в 2 рази вище граничної частоти їх спектру.

При роботі з широкосмуговими за своєю природою перехідними процесами (транзиент-аналіз) часто застосовують швидкодіючі АЦП з буферною пам'яттю, куди з необхідною швидкістю записується реалізація сигналу, яка потім аналізується і / або реєструється обчислювальною системою. При цьому потрібно закінчити всю необхідну обробку до наступного перехідного процесу, інакше інформація буде втрачена. Подібні системи інколи називають системами квазі-реального часу.

Прийнято розрізняти системи «жорсткого» та «м'якого» реального часу. Ці відмінності не пов'язані з органолептичними властивостями систем. Тоді що ж це таке?

1. Системою «жорсткого» реального часу називається система, де нездатність забезпечити реакцію на будь-які події в заданий час є відмовою і веде до неможливості вирішення поставленого завдання.

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

Багато теоретики ставлять тут крапку, з чого випливає, що час реакції в «жорстких» системах може становити і секунди, і годинник, і тижня. Однак більшість практиків вважають, що час реакції в системах «жорсткого» реального часу має бути все-таки мінімальним. Йдучи на поводі у практиків, так і будемо вважати. Зрозуміло, однозначної думки про те, який час реакції властиво «жорстким» системам, немає. Більш того, із збільшенням швидкодії мікропроцесорів цей час має тенденцію до зменшення, і якщо раніше в якості кордону називалося значення 1 мс, то зараз, як правило, називається час близько 100 мкс.

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

Так як система «м'якого» реального часу може не встигати все робити ЗАВЖДИ в заданий час, виникає проблема визначення критеріїв успішності (нормальності) її функціонування. Питання це зовсім не простий, оскільки в залежності від функцій системи це може бути максимальна затримка у виконанні будь-яких операцій, середня своєчасність відпрацювання подій і т. п. Більш того, ці критерії впливають на те, який алгоритм планування завдань є оптимальним. Взагалі кажучи, системи «м'якого» реального часу опрацьовані теоретично далеко не до кінця.
2. Ядра й операційні системи реального часу

Приймемо як очевидні наступні моменти.

1. Колись операційних систем зовсім не було.

2. Через деякий час після їх появи виник напрямок ОС РВ.

3. Всі ОС РВ є багатозадачними операційними системами. Завдання ділять між собою ресурси обчислювальної системи, в тому числі і процесорний час.

Чіткої межі між ядром (Kernel) і операційною системою немає. Розрізняють їх, як правило, за набором функціональних можливостей. Ядра надають користувачеві такі базові функції, як планування та синхронізація завдань, межзадачного комунікація, управління пам'яттю і т.п. Операційні системи в додаток до цього мають файлову систему, мережеву підтримку, інтерфейс з оператором та інші засоби високого рівня.

За своєю внутрішньою архітектурою ОС РВ можна умовно розділити на монолітні ОС, ОС на основі мікроядра і об'єктно-орієнтовані ОС. Графічно відмінності в цих підходах ілюструються малюнками 2.1, 2.2, 2.3. Переваги та недоліки різних архітектур досить очевидні, тому детально ми на них зупинятися не будемо.

Навчальний матеріал
© ukrdoc.com.ua
При копіюванні вкажіть посилання.
звернутися до адміністрації