An operating system (OS) is a program that controls the execution of application programs and it also acts as the link between the computer user and the computer hardware (Mall, 2009). In this paper, I will discuss the core subsystems in the operating systems determining how memory management, schedulers, and I/O subsystems used in real-time systems differ from general purpose systems.
Core subsystem in operating systems
A real-time operating system refers to an operating system that guarantees a particular capability in a specified time constraints. Real-time operating systems are said to require sufficient number of interrupt levels, multitasking, and process threads that can be prioritized. The real-time operating systems tend to have several uses in different scenarios; however, these uses differ from those the general population is familiar with (Mall, 2009). Most people are usually familiar with the general-purpose operating system that tries to handle almost any task that they want it to and mostly multiple tasks concurrently. The general purpose operating system is a computer program that supports the basic functions of the computer, and it provides services to other programs running on the computer. The application normally provides the functionality that the computer user wants or needs. The real-time systems usually serve a very different purpose and, as a result, it has a different form of implementation.
Some aspects of the real-time operating systems include small size, single purpose, the specific timing requirement, and inexpensively mass-produced. These characteristics of the real-time operating system tend to differ with those if the general-purpose systems. A major factor in consideration when looking at the real-time system is the requirement for precise timing. In a real-time system, precise timing is normally very important, and there might be severe consequences when there is no consideration of timing (Buttazzo et al. 2006).
Most of the operating systems normally allow multiple programs to run at the same time. In reality, each processor core may only run a single thread of execution at any given time. Priority setting is an area of concern in a real-time system. The general purpose system tends to work so as to ensure that all tasks get at least some processing time (Mall, 2009). Because of this, low priority tasks may sometimes have their priority boosted above other higher priority tasks. Such cases are not an option in real-time operating system where there is a need to adhere to a stricter policy so as to meet the designated timing requirements (Buttazzo et al. 2006). In real-time systems, if the high priority task uses 100% of the processor, there is no other low priority task that will run until the high priority task is complete. Time is essential in real-time operating systems because a particular process will have a certain time to finish, and if interrupted by a lower level process, it might not finish within the time frame.
The scheduler in an operating system normally decide which program to run, and it provides the illusion of simultaneous execution through switching between each program. The scheduler in the real-time system normally provides the predictable execution partner (Buttazzo et al. 2006). It is essential to the embedded systems because the embedded system tend to have real-time requirements. The scheduler for the real-time system should support the priority-based algorithm. The priority-based scheduler tends to guarantee soft real-time functionality. In a real-time system, tasks are normally serviced by their deadline and any service after the expiry of the deadline is just the same as no service at all. In real-time systems, they tend to interact with the real world; thus, bound by the strict timing constraint that is not the case in general purpose systems.
In real-time systems, memory management is also an issue of important. Memory management is a concern for interactive real-time applications that are memory-intensive. Despite the fact that the CPU offers adequate support, the system may easily become unresponsive through memory-intensive activities. The memory-management techniques should not introduce delays into the execution time of the tasks (Buttazzo et al. 2006). So as to avoid delays, a method for dealing with it is through ensuring that the kernel allocates all needed segments when the task start the execution. Another method for memory management in a real-time system is through bypassing logical address and having the CPU generate the physical address directly. The benefit of the approach is that the system is normally fast because there is no time spent in addressing translation. The CPU tends to be a central concept in the real-time operating system in meeting the timing requirements. The CPU reservations and the multi-core scheduling are the key techniques for supporting concurrent executing multiple real-time applications.
There tend to be several reasons why real-time operating systems are essential to the general purpose operating systems. There are several areas where consistency and timing are essential including artificial lungs, pacemakers, airbags, video games, etc. The general purpose systems have the ability to perform several different tasks; however, they do not guarantee the adherence to a particular time requirement. As a result, they increase the need for real-time operating systems because the general purpose systems are not time critical.
Abeni, L Lipari, G & Buttazzo, G (2006). Soft real-time systems Springer Publishers
Mall, R (2009). Real-time systems Pearson Education India
Carolyn Morgan is the author of this paper. A senior editor at MeldaResearch.Com in legitimate essay writing service. If you need a similar paper you can place your order from research paper services.