150 likes | 407 Views
краткий обзор ОСРВ. RTLinux. Встраивается в обычный Linux RTLinux kernel находится между ядром Linux и «железом» RTLinux обрабатывет все прерывания независимо от масок выставляемых ядром Linux Задачи RTLinux не использую виртуальную память.
E N D
RTLinux • Встраивается в обычный Linux • RTLinux kernel находится между ядром Linux и «железом» • RTLinux обрабатывет все прерывания независимо от масок выставляемых ядром Linux • Задачи RTLinux не использую виртуальную память
RTLinuxhttp://www.mnis.fr/en/support/doc/rtos/RTLINUX/api-rt.pngRTLinuxhttp://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