Think of the last time you cashed out from the ATM. You pressed a few buttons, entered your pin and voila! You got your money. Have you ever wondered what type of software is beneath the hood of the ATM and how it work? Well, in this article, I will answer exactly that!

What is an Embedded Operating System?

An embedded operating system is a set of instructions developed for embedded computers, allowing them to be resource-efficient and reliable. It is imperative that the embedded operating system is reliable because embedded systems have very limited resources. They have limited processing power, limited storage and limited memory. This therefore means that the embedded operating system must utilize the resources present in the most efficient manner.

The design of the embedded operating system uses one of two possible options. In the first option, a pre-existing embedded operating system is taken and adapted to make it suitable for use, or a totally new embedded operating system can be designed and developed just for that application.

Characteristics of Embedded Operating Systems

The main characteristics of embedded operating systems are:

Configurability

Embedded systems are designed to meet the application requirements. This means that the embedded operating system needs to be customized to work in tandem with the hardware to meet the application requirements.

 

Real Time operation

Real time embedded systems have a time constraint in which the task must be executed. This time is referred to as a deadline. A soft real-time system can vary the deadline, but a hard real-time system must execute the task within the given time frame.

 

Reactive operation

The embedded operating system is defined as reactive if it responds to an input, which can be in the form of a push button, or a sensor. For example, a microwave oven turns the lights and heating mechanism when the door is opened. In this case, the system reacts based on the input from the sensors that check whether the door is open or closed.

 

Direct use of interrupts

The embedded operating system provides the use of interrupts in order to give them more control over the peripheral devices. There is a need for more control of the individual hardware and this feature allows the embedded operating system gain this control. The interrupts have priorities which are used by the CPU to determine the order of task execution.

 

Additional characteristics include: Streamlined protection mechanisms and I/O device flexibility

Types of Embedded Operating Systems

Single System Control Loop

This is the simplest type of embedded operating system. It runs to execute the task, and that is the only task it executes. Experts debate on whether to classify this as an embedded operating system type.

Multi-tasking Embedded Operating System

Unlike the single system control loop, this embedded operating system is designed to perform multiple tasks. In this operating system, there are several tasks and processes that are executed simultaneously. Multiple functions can be performed if the system has multiple cores or processors.

The operating system switches between tasks. In this scenario, some tasks wait for events, while the others receive events and become ready to run. In this case software development is made easy because the different software components can be developed independent of each other.

Rate Monotonic Embedded Operating System

In this embedded operating system type, a rate monotonic priority algorithm is used and it assigns priorities to different tasks depending on their time period. The tasks with the shortest time period will have the highest priority, and the task with the longest time period will have the lowest priority for execution.

Pre-emptive Embedded Operating System

In this embedded operating system type, a higher priority task is always defined and executed before a lower priority task. The system has a scheduler that receives an interrupt from external calls. Once the interrupt is received, the scheduler pauses the running task and immediately executes the higher priority task. The control of the Central Processing Unit (CPU) passes from one task to another, and this is called pre-emption. The lower priority task can be resumed later.

Real Time Embedded Operating System

This is defined as system whose logical correctness is based on both the correctness of the outputs and their timeliness. Logical correctness means producing correct outputs.

Some of their characteristics include that they are:

  • Event driven, reactive
  • Standalone
  • Have a high cost of failure in some cases

These are divided into two categories which are: Soft are Hard Real Time Embedded Operating Systems.

Hard Real Time Embedded Operating Systems

For hard, real time embedded operating systems the level of tolerance for a missed deadline is extremely small. In some cases, there is zero tolerance for missed deadlines.

Computed results after missed deadlines are most likely to be useless for the majority of these systems.

The penalty incurred for a missed deadline is an absolute catastrophe.

An example of this is when an American Patriot Missile battery failed to intercept an incoming Iraqi scud missile in an event now known as the Patriot Missile Failure. The scud missile killed 28 soldiers. After conducting investigations, it was revealed that the cause of the accident was an inaccurate calculation of the time since boot due to computer arithmetic errors present. The system’s internal clock had drifted by one-third of a second.

Due to the speed of the missile, the result was a miss distance of 600 meters.

 

Soft Real Time Embedded Operating Systems

In these ones, the level of tolerance is non-zero. The results computed after a deadline is missed has a rate of depreciation. The results do not immediately become useless after the deadline is missed.

The physical impact of a missed deadline is non-catastrophic.

 

Applications of Embedded Operating Systems

Some of the applications of embedded operating systems include the following:

  • IOS: It is used in apple devices such as iPhones, and iPads.
  • Symbian: It is used in mobile phones commonly referred to as “dumb” or “grey” phones.
  • Embedded Linux: It is used in Android phones as well as computer peripherals such as printers.

 

And this brings us to the end of the article. I hope you learnt something new. Don’t forget to share this new knowledge with your friends and family.