What are real-time operating systems at the network edge?
With the growth of 5G and its extreme low latency, the real-time behavior of operating systems is becoming increasingly important. But what are real-time operating systems (RTOS) and what impact will they have? We lay the groundwork for this evolving technology and discuss why it is key for critical use cases.
What are real-time operating systems?
A real-time operating system (RTOS) instructs the way a system works, it supervises the application software, it sets the rules during the execution of the application program, and it’s programmed to respond immediately.
In any system, whether it’s a social or technical system, there are resources, and there are tasks that need to be handled by those resources. In the case of a social system, the resources are human and other natural resources – even though money is considered a resource, it is actually a means to facilitate the exchange of resources.
Similarly in a technical system, there are resources, and tasks that require resources to be carried out. In a computing system there are three key resources: computational resources, communication resources and storage/memory resources. Given the advancement of technology, in each of these categories there could be a hierarchy and many variants of resources that are pulled into action when appropriate.
Every system, whether social or technical, needs one or multiple entities to manage the resources and tasks. In computing systems we have the operating system (OS) which acts as a layer of communication between the user (and tasks) and the resources. The choice of OS depends on many factors, such as software availability, performance, reliability, hardware compatibility, ease of administration, and of course, cost of maintenance, among other things.
The operating system could be designed to match the context, users and tasks, or it could be designed for general purpose. It could be, for example, central or distributed if the context implies that. It could also be designed to attend to one specific attribute in the system, responding immediately, or be most reliable, or minimize the resource usage if there is a scarcity of resources. In any case, the operating system should prioritize the tasks in a system by scheduling them to be processed.
I became obsessed about computing very early on, specifically, when I first learned about digital systems and the fact that we could demonstrate every number or letter in a binary format, and do operations on the numbers in a logical circuit. This sparked my interest to pursue the field of computer hardware as my first engineering degree. Later, when I learned the concept of operating systems, I was fascinated about the many details and many variants of operating systems that could exist. Another aspect I liked about operating systems was the fact that I could recognize leadership in a social context as a type of operating system and how it came with many parallel concepts.
Real-time operating examples
Some current real-time systems have zero tolerance to delay in the response time of the system, and cannot accept tasks that need to be scheduled in a similar way to general purpose operating systems (GPOS). Examples here include security alarm systems, or a crash prediction systems, in the case of an autonomous cars or a car’s safety airbag, which has to react immediately if it’s to be of any real value.
Looking forward, we know that capabilities like remote robotics and many IoT use cases cannot become a widespread reality if there is no real-time operating system with portability, which also takes into account the distributed context, security and reliability.
With the advancement of 5G and the extreme low latency that it provides, the concept of remote operations by remote robotics, collaborative robots and IoT, calls for the real-time behavior of the operating systems in computing entities, regardless of whether it’s on a device or in a server at the edge of the network. It simply doesn’t make sense to have extreme low latency in transferring the command from the operator to the device and have the command waiting in a queue to be scheduled by the operating system.
How RTOS will influence our daily life
The integration of a few emerging paradigms, "automation and AI", "robotic", and extreme low-latency networks, together with real-time distributed operating systems would open up a realm of possibilities, from better living, remote management, applications in industry and significant enhancements in smart manufacturing.
If we look at how a robot operates, it’s pretty much programmed into the operating system of the robot. If you have a remote control for the robot, you can send tasks remotely to the robot and expect that the reaction will be instantaneous. This fast reaction depends on both the speed of the link that carries the message from the person operating the remote control to the robot, and the fast reaction of the operating system inside the robot.
In the case of remote robotics, you can see the operator-robot duo as one system with two parts, or a distributed system. A distributed system with a distributed operating system may be a better choice for such a context. In the case of remote robotics, the real-time aspect of the use case is more critical, and as such it needs to be taken care of by a real-time operating system.
In the realm of automation and AI, robotics in one sense is a representation of AI integrated in a machine. The next step for robotics is a more flexible behavior of the robot when applicable. For example, imagine if you could modify or adjust the internal programming of a robot in action?
With the emergence of AI and intelligent machines, as well as the development of robotics and remote robotics, there’s no doubt that remote operations are going to become part of systems we use in daily life. It’s easy to imagine a future where most heavy operations normally carried out by humans are done by a remotely-controlled robot, for example.
How does a RTOS differ from GPOS and earlier operating systems?
If we compare a RTOS to GPOS and early operating systems, we should look at real-time operating systems characteristics in terms of the amount of overhead they create when it comes to memory, power and processing requirement. We also need to consider the portability of the operating system to various types of hardware. Modularity such as parts of the operating system that can be added as needed, while the original part, or kernel, is mandatory.
The connectivity support in OS is another important characteristic of the OS that can influence its usage. Scalability, reliability and security of the operating system are few other characteristics that can influence the usage of operating system for critical applications and critical use cases.
Industry discussions and the technical challenges of RTOS
Lately the concept of RTOS has been getting attention in the context of IoT, as IoT use cases are set to significantly impact our daily life, for example, the growth of smart home capabilities. There are many opensource IoT operating systems that aim to bring real-time aspects into play, the key attributes of which are still portability and security, among other things. The operating system sits right into a system and can cause relatively minor issues like inefficient resources in the device, and potentially more critical issues that could compromise the security of the device.
While there are more variants of RTOS for small devices, the actual computers are running only with a few famous operating systems such as Linux. The development of a new operating system is a huge endeavor, and the trend has previously been to build on something that has been tested by a large population, rather than building a new one. The Linux operating system is still not fully ready to be considered a real-time operating system in general terms. In the case of a distributed context, another challenge is to make the operating system not only real time, but to create a distributed system so the workload on one computing entity can be easily executed on another computing entity in the same distributed system.
With advancements in edge cloud and integrated connectivity, computing at the end of the network is the most interesting case for distributed real-time operating systems. It will allow the smooth transition of workload processing from the device to the edge of the network matching the speed of a 5G network and providing a real-time execution environment running on the computing at the edge of the network.
In my research area, we have been hacking our way in this domain for a long time. We developed an IoT operating system called Calvin and we released the code on the github. We also developed the concept of distributed operating system Nefele and these days, we’re working on the distributed real-time operating system for edge cloud, so stay tuned!
Read Azimeh’s previous blog post, ‘What is computing fabric in the network?’
Explore Ericsson’s work with remote robotics.
Read more about 5G for manufacturing.