Real-time operating systems rely on kernel designs to expedite process communication and synchronization functionalities.

How to Design a Real-Time Operating System (RTOS)

Contributed by | IntervalZero

Most operating systems are put together based on kernel designs. Kernel design has been used for almost 4 decades because it separates the operating system from the different applications running on it. The different applications are allocated in different memory locations. The OS processes utilize kernel functionality through conducting system calls. System calls are software interrupts that allow users to switch from the operating system to applications and vice versa. Therefore, the kernel must install an interrupt handler that tackles different modes of operation in order to ensure effective switches. The interrupt handler is enabled in the program status (i.e., the supervisor mode and user mode). As such, protection is conducted on the modern system on a chip (SoCs) at the peripheral side. However, some processor registers can be changed if the CPU indicates a particular execution mode like master mode through additional HW signals.

rtos

All processes outside the operating system are implemented within the user mode and cannot execute any instructions availed in supervisor mode only. Meaning that user mode instructions hold a non-critical subset of instructions under the supervisor mode. During a process runtime, the supervisor mode under the PSW is disabled and only gets enabled once an interrupt like external interrupt or system call occurs. The OS activates the user mode once the user process is activated. Note that, a user process contains a virtual memory address space that separates it from the kernel entirely. However, this feature is only available to embedded microcontrollers that constitute a memory management unit that allows the use of virtual memory. Virtual memory usage must be upheld without other unbound memory accesses such as swapping on an external disk or changing (TLB) translation lookaside buffer entries by examining a dynamically sized page table.

To utilize the functionality offered by the OS kernel design, you must identify an interface that allows applications to run effectively while using it. The interface is known as the application binary interface (ABI). ABI delineates a registered usage convention, a set of system calls, a stack layout and facilitates binary compatibility. On the other hand, an API (application programming interface) facilitates source code compatibility by defining a set of function signatures that offer a fixed interface for calling the required functions. The kernel can have many designs, but it must provide basic activities like; process communication, process synchronization, process management and interrupt handling.

Process management ensures that process termination, creation, dispatching, scheduling, and switching context among other related activities run as required. In a real-time operating system, interrupt handling differs from the standardized implementation of a regular operating system. Interrupts in regular operating systems can preempt all running processes unexpectedly. This leads to unbound delays that are intolerable in a real-time operating system. As such, handling of interruptions is assimilated into the scheduler so that it is scheduled along with other important processes and feasibility is guaranteed even when interruption requests are made.

 

Summary

Real-time operating systems rely on kernel designs to expedite process communication and synchronization functionalities. Note that, ordinary semaphores cannot be used within a real-time operating system because the caller may experience unacceptable delays in case a priority inversion problem occurs. Hence, the synchronization mechanism must support a resource access protocol like; priority ceiling, priority inheritance or stack resource policy. You can use a microkernel, monolithic kernel or hybrid kernel based on your RTOS needs.

 

The content & opinions in this article are the author’s and do not necessarily represent the views of RoboticsTomorrow
IntervalZero

IntervalZero

IntervalZero's customer-centered philosophy, combined with more than three decades of embedded software innovation and the proven value of IntervalZero's RTX and RTX64 hard real-time software, have enabled the company to build a global customer base of market-leading OEMs and end users in Industrial Automation, Medical Systems, Digital Media, Test & Measurement, Military & Aerospace, and other industries. IntervalZero's success also stems from its expansive network of global trading Partners and its commitment to the Microsoft and Intel ecosystem. IntervalZero is a Microsoft Embedded Gold. IntervalZero seeks to provide the world's leading RTOS platform based on its SMP-enabled RTX and RTX64 software, which is used for developing complex hard real-time systems that require a sophisticated user experience and that run on COTS hardware.

Other Articles

Best Practices for Real-Time Machine Automation Performance in IoT & Industry 4.0
Learn how IntervalZero’s RTOS platform transformed machine automation in Japan
RTOS for Safety Critical Systems
Designing the right RTOS architecture requires delicate attention and decisions. Basic real-time operating system services such as inter-process communication, process synchronization, process management and interrupt handling must unfold efficiently.
RTOS 101: Semaphores and Queues
The use of a Real-Time Operating System (RTOS) is increasingly common in embedded software designs.
More about IntervalZero

Comments (2)

This article will give a new way to the developers to create a new operating system or to change and edit on their currently running OS. iphone support thinks this is the future of developing. Apart from Kernel which is being used for more than four decades.

Thanks for sharing a blog on RTOS Training. Designing a Real Time Project will helps to make address space available. With the help of RTOS Training Program you will lean all concepts from Basic to Advanced Level.

Post A Comment

You must be logged in before you can post a comment. Login now.

Featured Product

OCTOPUZ Robot Programming Software

OCTOPUZ Robot Programming Software

Program and simulate ALL your robots with OCTOPUZ offline software. OCTOPUZ specializes in path sensitive robotic applications such as welding, fabrication, edge following (waterjet, deburring, laser cutting), material removal (2D & 3D machining), and pick & place. Easy to learn, it directly supports paths from your favorite CAM system, has a library of over 15 different types of robot brands, can cut path generation by over 50% and is fully customizable to your unique needs. Program and simulate multiple robots simultaneously in any configuration! Responsive technical assistance from OCTOPUZ before, during and after sale via training, support and cell development make OCTOPUZ the software of choice.