i. Multithreading and preemptability - The scheduler should be able to preempt any task in the system and allocate the resource to the thread that needs it most even at peak load.
ii. Thread Priority - All tasks are assigned priority level to facilitate pre-emption.The highest priority task that is ready to run will be the task that will be running.
iii. Inter Task Communication & Synchronization - Multiple tasks pass information among each other in a timely fashion and ensuring data integrity
iv. Priority Inheritance - RTOS should have large number of priority levels & should prevent priority inversion using priority inheritance.
v. Short Latencies - The latencies are short and predefined.
• Task switching latency: The time needed to save the context of a currently executing task and switching to another task.
• Interrupt latency: The time elapsed between execution of the last instruction of the interrupted task and the first instruction in the interrupt handler.
• Interrupt dispatch latency: The time from the last instruction in the interrupt handler to the next task scheduled to run.
IEEE Portable Operating System Interface for Computer Environments, POSIX 1003.1b (formerly 1003.4) provides the standard compliance criteria for RTOS services. It is designed to allow application programmers to write applications that can easily be ported across OSs.
The basic RTOS services covered by POSIX 1003.1b include:
• Asynchronous I/O: Ability to overlap application processing and I/O operations
• Synchronous I/O: Ability to assure return of the interface procedure when the I/O operation is completed.
• Memory locking: Ability to guarantee memory residence by storing sections of a process that were not recently referenced on secondary memory devices.
• Semaphores: Ability to synchronize resource access by multiple processes.
• Shared memory: Ability to map common physical space into independent process specific virtual space.
• Execution scheduling: Ability to schedule multiple tasks. Common scheduling methods include round robin and priority-based preemptive scheduling.
• Timers: Timers improve the functionality and determinism of the system. A system should have at least one clock device (system clock) to provide good real-time services.