Розробка апаратно-програмних комплексів
Вхідний контроль:
1 Які вузли телекомунікацій Ви знаєте?
2 Яку роль у пристроях телекомунікацій відіграють системи синхронізації та генератори імпульсів?
Розробка програмного забезпечення є застосування принципів, навичок та творчого підходу до складання програмних комплексів. Середовищем цих програм є обчислювальна система, на якій вони використовуються. До характерних рис програмного забезпечення можна віднести:
– програми виконуються під єдиним керуванням, частіш за все під керуванням операційної системи, яка працює на центральному процесорі;
– взаємне керування окремими програмами комплексу є підлеглим по відношенню до цього єдиного керування, яке реалізується на більш високому рівні пріоритету та рівнях привілеїв;
– внутрішні рівні операційної системи є сховані від користувачів обчислювального комплексу і не можуть бути змінені користувачем.
При проектуванні програмного комплексу створюється його повний та точний опис, який є комплектом підописів програмних та апаратних компонентів та їх взаємодій. Повний опис програмного компонента – це програма на визначеній мові програмування, семантика якої повинна бути відома до початку програмування.
Розробники програмного забезпечення повинні досягти чотирьох цілей: заданого функціонування, правильності, продуктивності та надійності.
Задане функціонування – це отримання потрібного та правильного результату при введенні заданих вхідних даних. Вхід – це вся інформація, яка сприймається програмним комплексом. Вихід – це видавана інформація. Правильність визначає, наскільки точно програмний комплекс відповідає поставленим цілям. Під продуктивністю розуміють швидкість та ефективність програмного комплексу при споживанні ним ресурсів у процесі досягнення мети. Надійність – це здатність програмного комплексу вірно виконувати свої функції, не зважаючи на відмови компонентів обчислювальної системи. Під відмовою розуміють тимчасову або постійну зміну характеристик компонентів, яке призводить до порушення їх функцій.
Програмне забезпечення розробляється за модульним принципом, використовує стандартизовані елементи та обмежені розміри заради гнучкості та універсальності, і компонується шляхом об’єднання модулів.
Мікропроцесорні системи часто вбудовують у вузли систем керування, вимірювальних систем, вузлів обладнання різного призначення, в тому числі телекомунікаційного. Розробники спеціалізованого програмного забезпечення мікропроцесорних систем повинні перш за все враховувати особливості технологічних пристроїв або процесів, якими керує програма. Розробка МПС здійснюється вузько спрямовано для реалізації конкретного алгоритму, і цей принцип розповсюджується, як на апаратну, так і на програмну складові. Апаратна частина складається з визначеної кількості модулів конкретного типу, необхідних для реалізації заданого алгоритму, а розроблений додаток фіксується найчастіше у ПЗП і часто не може з метою реалізації заходів безпеки зчитуватись, верифікуватись та змінюватись у процесі експлуатації. Таким чином, багатофункційність є тільки потенціальною властивістю МПС.
Телекомунікації являють собою апаратно-програмні комплекси реального часу, створення програмного забезпечення для яких вимагає чималого досвіду в багатьох галузях. Розвиток інтелектуальних та мультисервісних мереж відбувається високими темпами, розробляються все нові і нові принципи взаємодії різних вузлів та пристроїв, які входять у ці мережі, розробляються нові технології для узгодження й ефективного їх функціонування. В процесі створення програмного забезпечення необхідно врахувати ряд вимог, що є важливим фактором, який впливає на ефективність готового програмного продукту:
– відмовостійкість – можливість системи продовжувати нормальне функціонування в умовах наявності помилок. Висока вірогідність забезпечення завадостійкості веде до забезпечення необхідної якості обслуговування (QоS);
– супроводжуваність – сучасні системи розробляються з урахуванням їх використання протягом достатньо значного терміну. У цей період неодноразово виникає необхідність в її модифікації, що викликається різними причинами (розширення функціональних можливостей, заміна апаратних елементів на сучасніші, зміна стандартів і правил взаємодії із зовнішнім середовищем тощо);
– керованість процесом розробки – великі системи, як правило, відрізняються значним об’ємом і структурною складністю апаратних засобів, а так само значним набором виконуваних функцій. Все це вимагає розробки програмного забезпечення великого обсягу. Досягаючи певних меж, складність програмного забезпечення призводить до втрати контролю над його розробкою і вимушує розробників робити помилки, які згодом достатньо важко виправити;
– гнучкість – буває так, що є точно визначена структура апаратних засобів і параметри зовнішнього оточення, і більшість систем дозволяють налаштовуватись на ці характеристики. Для великих систем така структура реалізується за допомогою створення бази даних, що містить усі необхідні параметри. Задана структура може реалізуватись, як статично до запуску системи, так і динамічно в процесі її функціонування. Динамічне налаштування ускладнюється тим, що зміни у структурі необхідно робити “по живому”, тобто в даних, які можуть у цей момент використовуватися функціональними процесами, що вимагає узгодження між ними, і процесом налаштування;
– стійкість системи – означає її готовність реагувати на непередбачувану поведінку зовнішнього середовища;
– стабільність – вбудована система може перебувати в одному із двох станів: активному і пасивному. В активному стані здійснюється функціонування елементів (можливо, не всіх) програмного забезпечення системи, і система виконує всі або деякі зі своїх функцій; при цьому повний стан системи описується станом апаратури і станом даних в обчислювальному середовищі. Під час переходу системи в пасивний стан відбувається зупинка програмного забезпечення; при цьому не всі використовувані ним дані втрачають свою актуальність, частина їх повинна бути збережена до наступного запуску системи, що примушує зберігати ці дані в пам’яті; як засоби обробки таких даних є системи баз даних, що забезпечують організацію, зберігання і доступ до даних;
– безперервність – для більшості систем безперервне і надійне функціонування є критичним; безперервність функціонування означає неможливість зупинки системи, зв'язану, як правило, з важливістю виконуваних нею процесів;
– паралельність – є характерною властивістю більшості систем; наявність апаратних елементів, що працюють у реальному паралельному режимі, й одночасне виконання декількох функціональних процесів вимагають застосування паралельних обчислень; одна з проблем, пов’язана з розподілом ресурсів в програмно-апаратних системах, полягає в тому, що не завжди можна добитися їх монополізації; зокрема, це торкається даних, що відображають стан апаратних елементів системи; такі дані не можуть бути повністю монополізовані функціональним процесом, оскільки існує апаратний процес, який може зажадати їхньої асинхронної зміни;
– розподіленість – при проектуванні великих вбудованих систем часто використовується принцип модульності. Це дозволяє “збирати” системи різної конфігурації з типових елементів – модулів, збільшувати гнучкість системи. Ще одною перевагою модульної структури є можливість створення розподіленої архітектури вбудованої системи. При цьому кожен окремий модуль включає свій власний управляючий елемент – вбудований процесор. Усі процесори системи об'єднуються в обчислювальну мережу, що забезпечує обмін інформацією між ними. Зрозуміло, що багато з перерахованих властивостей характерні для всіх великих програмних систем (наприклад, супроводжуваність і керованість), частка характерна тільки для вбудованих систем. Важливо відзначити, що для вбудованих систем докорінним чином змінюється система пріоритетів, наприклад, стійкість і безперервність потрібно забезпечувати навіть у збиток іншим характеристикам.
Розробка програмних моделей вузлів телекомунікацій здійснюється відповідно до рекомендацій ITU серії Z – Z.100, переважно табличним методом. Табличний метод є вільний від недоліків, пов’язаних з нерозумінням фахівців у процесі розробки програмного забезпечення завдяки високому ступеню абстрактності.
Нижче наведені приклади реалізації деяких простих вузлів телекомунікацій.
Контрольні питання:
1 Які переваги для реалізації вузлів телекомунікацій має програмний метод?
2 Як Ви розумієте модульність побудови програмного забезпечення?
3 Які вимоги пред’являються до програмного забезпечення, яке реалізує вузли телекомунікацій?
4 Які рекомендації міжнародних організацій регламентують створення моделей вузлів телекомунікацій?
Контрольні питання підвищеної складності:
1 Наведіть приклад, коли при переході системи у пасивний стан, дані повинні зберігатись до наступного запуску системи?
2 Де, на Ваш погляд, у ПК зберігаються дані про адреси векторів переривань BIOS?
3 Чи знищуються вони при вимкненні комп’ютера?