RTOS Comparison
RTOS Comparison
RTOS Comparison
Features of VxWorks
Feature Development Methodology POSIX Compatibility File Systems Shared Memory Objects Virtual Memory Debugging Multitasking VxWorks Host Target Most 1003.1b MS-DOS, RT-11, raw disk, SCSI, CD-ROM VxMP (semaphores, message queues, memory regions between tasks on different processors) VxVMI support for boards with MMU Target Agent remote debugging Process-task based Interrupt-driven, priority-based task scheduling, round-robin 256 priority levels (0-255); 0 highest, 255 lowest May be set dynamically Semaphores Counting, binary, mutual-exclusion (recursive), and POSIX, timeouts Intertask Communications Message queues (priority or FIFO), pipes, sockets, signals, RPCs Priority inversion Yes tasks that owns a resource executes at the priority of the highest priority task blocked on that resource Asynchronous I/O Yes Context Task Program counter CPU registers (optional Floating point) Stack I/O assignments (STD Out, In, Err) Delay Timer Timeslice timer Kernel Control Structures Signal Handlers Debugging and performance monitoring values Memory address space is not part of context (VxVMI is required for separate address space per task virtual to physical memory mapping Ready Not waiting for any resource except CPU Pend Blocked, waiting on resource Delay Asleep for some duration Suspend Unavailable for execution
States
Interrupts
Delay + S Delayed & suspended Pend + S Pended & suspended Pend + T Pended with timeout value Pend + S + T Pended, suspended with timeout value State + I state plus an inherited priority Run in special context outside of task (no task context switch) Share single stack if architecture allows (must be large enough for all possible nested interrupt combinations) Must not invoke routines that may cause the caller to block (taking semaphores, I/O calls, malloc, and free) Must not call routines that use FP-coprocessor (floating point registers are not saved and restored); otherwise must explicitly save and restore FP registers
Features of RTLinux:
RT-Linux is an operating system in which a small real-time kernel coexists with the POSIX-like Linux kernel. RTLinux is module oriented. Scheduler. The earliest deadline first scheduler. Rate-monotonic scheduler. The module that implements RT-FIFOs. RTLinux decouples the mechanisms of the real-time kernel from the mechanisms of the general purpose kernel. Each can be optimized independently. The RT kernel can be kept small and simple. Real-time scheduling algorithm. Predictable delays. By its small size and limited operations. Finer timer resolution. Preemptible kernel. The RTLinux executive is itself nonpreemptible. Its routine are very small and fast, this does not cause big delays. Interrupts from Linux are disabled. No virtual memory. Scheduler RT-Linux contains a dynamic scheduler. RT-Linux has many kinds of Schedulers. FIFO.
The earliest deadline first scheduler. Rate-monotonic scheduler. RT FIFO Real-time FIFOs are used to pass information between real-time process and ordinary Linux process. Real-time FIFOs are designed to never block the real-time task. RT-FIFOs are, like real-time tasks, never paged out. This eliminates the problem of unpredictable delays due to paging. Timer Resolution If the kernel was patched with UTIME, we could schedule processes with microsecond resolution. Running rtlinux-V3.0 Kernel 2.2.19 on the 486 allows stable hard real-time operation. Giving: 15 microseconds worst case jitter. 10 microseconds event resolution. 17 nanoseconds timer resolution. 6 microseconds interrupt response time. (This value was measured on interrupts on the parallel port) High resolution timing functions give nanosecond resolution (limited by the hardware only.)
Features of MicroC/OSII:
MicroC/OS has been designed as a small footprint real time pre-emptive OS that was designed for embedded use on 8 bit platforms upwards highly portable, ROMable, very scalable, preemptive real-time, multitasking kernel has ports for most popular processors and boards in the market suitable for use in safety critical embedded systems such as aviation, medical systems and nuclear installations Over 100 microprocessors are supported approved for use in a DO-178B aerospace system and is (apparently) MISRA-C compliant C/OS II features reentrant functions and is portable to different processors kernel is preemptive real time, managing up to 64 tasks, with up to 56 tasks for each application Each task has a unique priority and its own stack Round robin scheduling is not supported operating system uses semaphores to restrict access to resources shared by multiple elements of the system Memory management is performed using fixed size partitions. C/OS II is a multitasking operating system Each task is an infinite loop and can be in any one of the following 5 states
Dormant, Ready, Running, Waiting, ISR services such as mailboxes, queues, and semaphores