МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
КРАСНОДОНСЬКИЙ ПРОМИСЛОВО ЕКОНОМІЧНИЙ КОЛЕДЖ
Реферат з предмету: "Операційні системи"
На тему: "Короткі характеристики найбільш поширених ОСРЧ"
Студента групи 1ОКІСМ-06
Петренко Михайла
Перевірила: Дрокіна Т.М.
Краснодон 2009
Зміст
1. VxWorks
2. QNX Neutrino RTOS
3. RTEMS
4. ChorusOS
5. Розширення реального часу для Windows NT
5.1 RTX для Windows NT
5.2 INtime
2.5.1 Microsoft Windows Embedded
6. TinyOS
7. OSEK / VDX
8. OSE RTOS
9. Contiki
10. pSOS
11. INTEGRITY
12. LynxOS
13. Microware OS-9
14. GRACE-OS
15. C EXECUTIVE
16. CMX-RTX
16.1. CMX-TINY +
17. Inferno
Операційні системи реального часу сімейства VxWorks корпорації WindRiver Systems призначені для розробки програмного забезпечення (ПО) вбудованих комп'ютерів, що працюють в системах жорсткого реального часу [VxWorks]. Операційна система VxWorks має крос-засобами розробки програмного забезпечення (ПО), тобто розробка ведеться на інструментальному комп'ютері (host) у середовищі Tornado для подальшого її використання на цільовому комп'ютері (target) під керуванням системи VxWorks.
Операційна система VxWorks має архітектуру клієнт-сервер і побудована у відповідності з технологією мікроядра, тобто на самому нижньому безперервному рівні ядра (WIND Microkernel) обробляються тільки планування завдань та управління їх взаємодією / синхронізацією. Вся інша функціональність операційного ядра - управління пам'яттю, введенням / виведенням і пр. - забезпечується на більш високому рівні і реалізується через процеси. Це забезпечує швидкодію і детермінованість ядра, а також маштабованість системи.
VxWorks може бути скомпонована як для невеликих вбудованих систем з жорсткими обмеженнями для пам'яті, так і для складних систем з розвиненою функціональністю. Більше того, окремі модулі самі є маштабованими. Конкретні функції можна прибрати при збірці, а специфічні ядерні об'єкти синхронізації можна опустити, якщо додаток в них не потребує.
Хоча система VxWorks є конфігурується, тобто окремі модулі можна завантажувати статично або динамічно, не можна сказати, що в ній використовується підхід, заснований на компонентах. Всі модулі побудовані над базовим ядром і спроектовані таким чином, що не можуть використовуватися в інших середовищах.
Ядро VxWorks володіє наступними параметрами:
кількість завдань не обмежено,
число рівнів пріоритетів завдань - 256,планування завдань можливо двома способами - витіснення за пріоритетами і циклічне,
засобами взаємодії завдань служать черги повідомлень, семафори, події і канали (для взаємодії задач всередині CPU), сокети і віддалені виклики процедур (для мережевої взаємодії), сигнали (для керування винятковими ситуаціями) і колективна пам'ять (для розділення даних),
для управління критичними системними ресурсами забезпечується кілька типів семафорів: виконавчі, обчислювальні (counting) і взаємно виключають з пріоритетним спадкуванням,
підтримується детермінована перемикання контексту.
У VxWorks забезпечується як заснований на POSIX, так і власний механізми планування (wind scheduling). Обидва варіанти включають витісняється і циклічне планування. Різниця між ними полягає в тому, що wind scheduling застосовується на системному базисі, в той час як алгоритми POSIX-планування застосовуються на базисі процес-за-процесом.
У VxWorks всі завдання системи і додатків поділяють єдине адресний простір, що загрожує порушенням стабільності системи через несправність будь-якої програми. Необов'язковий компонент VxVMI дає можливість кожному процесу мати свою власну віртуальну пам'ять.
Щоб досягти швидкої обробки зовнішніх переривань, програми обробки переривань (ISRs - interrupt service routines) у VxWorks виконуються в спеціальному контексті поза контекстів потоків, що дозволяє виграти час, який зазвичай витрачається на перемикання контекстів. Слід зазначити, що C-функція, яку користувач приєднує до вектора переривання, насправді не є фактичною ISR. Переривання не можуть безпосередньо звертатися до C-функцій. Адреса ISR запам'ятовується в таблиці векторів переривань, яка викликається апаратно. ISR виконує якусь початкову обробку (збереження регістрів і підготовку стека), а потім викликається C-функція, яка була приєднана користувачем.
VSPWorks [VSPWorks] - це дуже популярна і досить потужна ОС на основі VxWorks. VSPWorks спроектована спеціально для систем, заснованих на DSP. Вона забезпечує багатозадачність з пріоритетами і підтримку швидких переривань на процесорах DSP і ASIC. ОСРВ VSPWorks слід моделі єдиного віртуального процесора, що значно спрощує розподіл програм багатопроцесорні системи, зберігаючи при цьому продуктивність жорсткого реального часу. VSPWorks є модульною і маштабованої.
ОСРВ VSPWorks має багатошарової структурою, що служить хорошою основою для абстрагування та переносимості. Центром системи служить сильно оптимізоване наноядро (nanokernel), яке здатне керувати сукупністю процесів. Нижче наноядра знаходяться програми, які обслуговують переривання, вище наноядра розташовується Мікроядро, яке управляє багатозадачному режимі з пріоритетами C / C + + завдань.
Рис.1. Багатошарова архітектура VSPWorks.
Управління переривань має два рівні. Нижній рівень (рівень 1) використовується для обробки апаратних переривань. Під час обробки таких переривань всі інші переривання блокуються. Код, що виконуються на цьому рівні, написаний на мові асемблера, і відповідальність за збереження відповідних регістрів в стеку лягає на програміста. На цьому рівні може бути оброблено переривання, яке вимагає малого часу для обробки. Якщо обробка переривання є більш складною й потребує більшого часу, то переривання обробляється на більш високому рівні (рівень 2), де дозволено переривання переривання і, таким чином, вони можуть бути вкладеними. Перехід на більш високий рівень переривань відбувається по системному викликом.
Процеси наноядра (рівень 3) пишуться на мові асемблера і мають скорочений контекст (тобто використовують менше регістрів). Ці процеси можуть бути завантажені і розвантажено з процесора дуже швидко. Кожному процесу присвоюється пріоритет. Рівень 3 ідеальний для написання драйверів для інтерфейсів апаратури низького рівня.
Мікроядро знаходиться на рівні 4. Мікроядро написано на мові C і має понад 100 сервісів. Обробка завдань на цьому рівні ведеться в режимі пріоритетного переривання, і планування управляється пріоритетами.
Мережеві засоби. VxWorks підтримує всі мережеві засоби, стандартні для UNIX: TCP / zero-copyTCP / UDP / ICMP / IP / ARP, SLIP / CSLIP / PPP, Sockets, telnet / rlogin / rpc / rsh, ftp / tftp / bootp, NFS (Network File System) (клієнт і сервер). У мережеві засоби для VxWorks входять також функції, необхідні при розробці пристроїв, що підключаються до Internet: IP multicasting рівня 0,1 або 2; long fat pipe; CIDR (Classless Inter-Domain Routing); DHCP (Dynamic Host Configuration Protocol) в конфігураціях server, client і relay agent; DNS client (Domain Naming System); SNTP (Simple Network Time Protocol). VxWorks підтримує протоколи маршрутизації RIPv1/RIPv2 (Routing Information Protocol), а також OSPF (Open Shortest Path First) версії 2. Протокол RIP входить в стандартну поставку VxWorks, OSPF поставляється як додатковий продукт. SNMP-агент для VxWorks підтримує протокол SNMP (Simple Network Management Protocol) як версії v1, так і v2c. MIB (Management Information Base) компілятор підтримує об'єкти MIB-II та розширення. STREAMS - стандартний інтерфейс для підключення переносних мережевих протоколів до операційних систем. У середовищі VxWorks можна інсталювати будь-який протокол, який має STREAMS-реалізацію: як стандартний (Novell SPX / IPX, Decnet, AppleTalk, SNA і т.п.), так і спеціалізований. VxWorks підтримує STREAMS версії UNIX System V.4.
Графічні пакети і вбудований Інтернет. Графічні програми для вбудованих комп'ютерів з ОСРВ VxWorks можуть бути розроблені як на мові С / С + +, так і на мовах Java і HTML. Для розробки графічних користувальницьких інтерфейсів (GUI) мовою C + + поставляється програмний продукт Zinc for VxWorks, для розробки на мові Java - PersonalJWorks і для розробки на мові HTML - HTMLWorks / eNavigator. Всі три GUI для VxWorks використовують один і той же універсальний API до графічної апаратури (графічному контролеру, фрейм-буферу і пристрою вводу), який називається UGL (Universal Graphics Library). UGL - це набір графічних примітивів 2D, драйвери популярних графічних контролерів і засоби розробки власних користувальницьких графічних драйверів. UGL входить до складу кожного GUI-продукту і поставляється в вихідних текстах.
Zinc for VxWorks - це C + + API, що надає широкий набір графічних об'єктів з вживаними користувачем параметрами. Для розробки GUI використовується Zinc Designer - WYSIWYG-редактор, який входить в комплект постачання. Графічний інтерфейс може бути розроблений на мові Java з використанням стандартного інструментарію pAWT (Abstract Windowing Toolkit), що входить до складу PersonalJWorks. Для розробки GUI використовується будь-який інструментарій розробки Java-додатків. Інтерфейс користувача може бути розроблений з використанням графічних можливостей мови HTML (фрейми, зображення, таблиці, форми) і динамічних можливостей JavaScript.htmlWorks - це інтерпретатор HTML / JavaScript-сторінок, які можуть знаходитися в постійній пам'яті або бути завантажені по мережі. Для розробки GUI використовується будь-який інструментарій web-дизайну. Якщо вбудований комп'ютер з HTML GUI повинен уміти виконувати web-серфінг, то спільно з HTMLWorks може бути використаний браузер для вбудованих додатків eNavigator.
Засоби побудови мультипроцесорних систем. VxWorks підтримує два види мультіпроцессінга: слабозв'язаних - через розподілені черги повідомлень і сільносвязаний - через об'єкти в поділюваної пам'яті. Слабозв'язаних мультіпроцессінг через розподілені черги повідомлень реалізований в бібліотеці VxFusion, яка є окремим продуктом. VxFusion застосовується для обміну між процесорами, що не мають загальної пам'яті (наприклад, між вузлами мережі). Сільносвязанний мультіпроцессінг через об'єкти в поділюваної пам'яті реалізований в бібліотеці VxMP, яка також є окремим продуктом. VxMP застосовується для обміну між процесорами, що мають загальну область пам'яті (наприклад, знаходяться на одній шині).