Лекция 8

Download Report

Transcript Лекция 8

краткий обзор ОСРВ
RTLinux
• Встраивается в обычный Linux
• RTLinux kernel находится между ядром
Linux и «железом»
• RTLinux обрабатывет все прерывания
независимо от масок выставляемых
ядром Linux
• Задачи RTLinux не использую
виртуальную память
RTLinux
http://www.mnis.fr/en/support/doc/rtos/RTLINUX/api-rt.png
RTLinux modules
•
•
•
•
•
нет main() процедуры
есть init_module() и cleanup_module()
$ gcc -c {SOME-FLAGS} my_module.c
$ insmod module.o
$ rmmod module
RTLinux modules
#include <rtl.h>
void * thread_code(void) {
pthread_make_periodic_np(
pthread_self(), gethrtime(),
1000000000);
while (1) {
pthread_wait_np ();
rtl_printf("Hello World\n");
} return 0;
}
RTLinux modules
int init_module(void) {
return pthread_create(&thread, NULL,
thread_code, NULL);
}
void cleanup_module(void) {
pthread_delete_np(thread);
}
RTLinux FIFO
• Realtime FIFO однонаправленная
очередь для передачи данных от потока
в ядре к пользовательскому процессу и
обратно.
• Выглядит как /dev/rtf* (где * номер от 0
до 150)
RTLinux FIFO
•
•
•
•
•
#include <rtl_fifo.h>
int rtf_create (unsigned int fifo, int size);
int rtf_get (unsigned int fifo, char * buf, int count);
int rtf_put (unsigned int fifo, char * buf, int count);
int rtf_create_handler (unsigned int fifo,
int (* handler)());
• int rtf_destroy(unsigned int fifo);
RTAI
Realtime Application Interface
архтектура подобная RTLinux
Ядро Linux выполняется как idle task для
системы реального времени.
FIFOs based on mailboxs.
VxWorks
• WindRiver Systems
• предназначена встраиваемых систем
жесткого реального времени
• имеет архитектуру клиент-сервер и
построена в соответствии с технологией
микроядра.
• модульность и масштабируемость системы
задается при сборке
• Обычно вся система живет в одном адресном
пространстве с ядром. Виртуальная память
подключается опционально.
VxWorks
• Кросс-платформенная разработка
• Разработчику доступен BSP (Board
Support Package) в исходных текстах
позволяющий портировать ОС на новый
тип компьютера.
• COM(Component Object Model) , DCOM,
OLE for Process Control
RTEMS
• Real-Time Executive for Multiprocessor Systems
•
•
•
•
Real-Time Executive for Missile Systems
OAR Corporation
открытый код
Система состоит из ядра и различных
менеджеров(памятиб семафоров..)б и
пользовательских программ.
• нет динамической загрузки модулей и
приложений
ChorusOS
• микроядерная масштабируемая
встраиваемая ОС, широко
применяемая в телекоммуникационной
индустрии.
• ядро- актор- пользовательская
программа
RTX for WinNT
• Расширение реального времени RTX
(Real Time Extension) для ОС Windows
NT (разработано корпорацией
VenturСom)
• Ядро реального времени (nucleus)
интегрировано в ядро NT (kernel).
Каждый процесс RTX выполняется как
драйвер устройства ядра NT, при этом
процессы не защищены друг от друга.
INtime
• Radisys Corporation
• INTime выполняется параллельно NT