Table of Contents
1.0 INTRODUCTION TO REAL-TIME OPERATING SYSTEMS
2.0 EXAMPLE APPLICATIONS.
3.0 MAJOR COMPONENTS MAKING UP A REAL-TIME OPERATING SYSTEM
4.0 CHARACTERISTICS AND DESIGN REQUIREMENTS OF A REAL-TIME OPERATING SYSTEM.
5.0 COMPARATIVE ASSESSMENT OF COMMERCIALLY AVAILABLE REAL-TIME OPERATING SYSTEMS.
INTRODUCTION TO REAL-TIME OPERATING SYSTEMS
1.1 What Is an Operating System?
An operating system is the most important software which runs on a computer. An operating system is required to manage hardware and software. It acts as an interface to allow users to easily and conveniently interact with hardware and run applications.
Every PC must have an operating system in order to run applications and perform even the most basic tasks. Users are able to interact with an operating system using a Graphical User Interface (GUI) which is the most convenient for most, or through a command line Interface (CLI). There are quite a few operating systems available today, the most popular as seen below:
Desktop: Windows, Mac OS and Linux
Mobile: iOS and Android
1.2 WHAT IS A REAL-TIME OPERATING SYSTEM (RTOS)?
A real-time operating system (RTOS) is a system which is designed to handle events as they occur in real time. There is a great importance of speed at which tasks are completed. These tasks are due to be performed within a specific time constraint. And so usually there are fewer tasks scheduled for a time, with only one application running at a given time.
Real-time operating systems are frequently found in a broad scope of applications, from use in robotics to communications. Real-time operating system are most frequently used in embedded systems, “containing only the absolute necessary files for the device it’s running on. With all stored in a ROM chip, rather than a hard drive.” 
Developers of real-time operating systems can guarantee that operations initiated by users will execute in preference to other system activities scheduled in the background.
With Hard real-time operating system It is compulsory that the deadline is met on time and accurately. Otherwise damage could be caused to the system or application.
Soft real-time operating system are less strict to accuracy and time, and is not necessary required to meet the deadline for every task, every time. But tasks should still be completed. Based on their priority within the system.
1.3 DO I NEED A REAL-TIME OPERATING SYSTEM?
To understand whether you require a real-time operating system, it is important to ask yourself, what requirements from an operating system do you value the most?
Is cost a deciding factor?
There Is a slight price premium for a well-designed real-time operating system, and so the initial costs for a real time operating system may be higher, although the cost savings and reliability during the life of the system may outweigh the cheaper price of a general purpose operating systems, Real time systems can be built from scratch, or there are a wide variety of commercially available real time operating systems.
Is multi-tasking a high priority?
If so, a real time operating system, may not be the most suitable system, due to the focus on task priority, focusing on one task to completion before moving onto the next task.
Is the OS required for an embedded system?
If you are requiring the system for an embedded system, a real-time operating system is preferred, as they are better optimised for the small devices and are more capable for single tasks.
Is error free performance a necessity?
Error free performance is guaranteed more using a real-time system, as this is one of the main draws to these systems over general purpose operating systems, mainly due to the attention to one single task. With all resources able to work on a single task, rather than resources being spread too thinly across multiple.
Is guaranteed immediate response time for tasks required?
Real time systems are much more responsive and response times are near instant, due to the ability to work solely on one tasks.
A real-time operating system would be a necessity for any application where accurate and immediate timing is crucial. This would be essential in safety critical applications, such as aviation and medical applications.
“For example, a heart monitor that loses connectivity may fail to trigger an alarm – with dire consequences for the patient.” And so the guarantee and reliability of a real-time operating system is a must in this situation.
Real-Time operating systems are best suited to embedded systems, due to their real-time requirements. Such requirement is one that the system must respond to an event within a strictly defined deadline.
”A guarantee to meet real time requirements can only be made if the behaviour of the operating system’s scheduler can be predicted (and is therefore deterministic).” 
Another benefit of Real-Time operating systems is for mass production of these embedded devices, as a low power processor can be used instead of the latest processors from Intel or AMD currently seen in general purpose operating systems. Which in turn provides a financial benefit.
1.4 How do Real-Time Operating Systems differ from General Purpose Operating Systems (GPOSs)?
To discuss the differences between a real-time operating system and a general purpose operating systems, it’s important to understand what a general purpose operating system is in the first place. An operating system is tasked with hiding all the difficult to comprehend computations. To blur the lines between hardware and software, to allow the software to communicate and manage hardware resources.
General purpose operating systems are built for multiple uses, with greater emphasis on multitasking, allowing the user to run multiple applications in parallel. Each process in a given system is provided equal amount of time and resources, so that no task has a higher priority. There is no strict importance that tasks are completed immediately, but rather that the system is efficient and convenient for users to enjoy.
Real-time operating system are also required to manage hardware resources and host applications just like general purpose operating systems, but is specifically designed to run certain applications with absolute precision timing and reliability. Real-time operating systems provide tighter control over performance and response time compared to general purpose operating systems, as it’s capable of guaranteeing certain capability within a specific time constraint. Real-time operating systems are very often used in embedded systems as usually the system is designed to perform only a single task and there is a greater demand and expectation for immediate response time, with zero delay or lag. This is an area where general purpose operating systems are hands down no comparison to real-time operating system.
The difference between using a general purpose operating system and a real-time operating system lie within the requirements of the system. Whether or not the system is to be time critical or not. Usually general purpose operating systems are multi-purpose, and focus on multiple processes and tasks at a given time. Whereas a real-time operating system typically focusses on one task, whichever task is highest priority.
For example, a ATM is a time critical system. When a user enters their bank card to withdraw money from an ATM they expect a timely response after they have pressed the confirm button. Otherwise the user would believe there is an issue with the terminal and may leave. And so there is a requirement for speed and responsiveness.
Compared to a user’s computer, a user may work on multiple tasks at once, if there is a delay on one task completing, the user can afford to wait as they can work on another task. For example, a document may take a few seconds longer than usual to save, but this will not impact the user that much as it isn’t a high priority or time critical task.
Real-Time operating systems are ‘Deterministic’ as its timing can be guaranteed, give or take a few milliseconds. Unlike general purpose operating systems, where it is impossible to predict the timing of outputs from the system due to the lack of hard real-time.
For a system to be considered Real-Time, it must have a known maximum time constraint for any critical tasks it performs. Or at the very least be able to guarantee the time constraint as close to every time as possible. Such activities include interruption handling and OS calls. Operating Systems that are capable of absolutely guaranteeing a maximum time for operations are referred to as ‘hard Real-Time’, and Operating systems that can only guarantee a maximum, most of the time are called ‘Soft Real-Time’.
For example: When designing an airbag system for a vehicle, Accuracy and timing is critical, any error in timing, which may prevent the airbag from deploying on time could potentially have catastrophic implications. And thus a ‘hard real-time’ operating system would be vital. Alternatively when designing a mobile device that plays videos, it may be perfectly fine to occasionally have lower frame rates or lose of data, as it’s not critically important that its perfect on every occasion, For this example a ‘soft real time’ operating system or even a general purpose operating systems would be sufficient.
Memory management in real-time operating system is very efficient and effective compared to general purpose operating systems, as some embedded systems are capable of running uninterrupted for years, which prevents the need for reboots like in general purpose operating systems.
2.0 EXAMPLE APPLICATIONS
There are hundreds of uses of real-time operating system, they are mainly used for time critical systems, due to their reliability and responsiveness. Some examples of current applications of real-time systems include “control of laboratory experiments, process control in industrial plants, robotics, air traffic control, telecommunications, military command and control systems. Next-generation systems will include the autonomous land rover, controllers of robots with elastic joints, systems found in intelligent manufacturing, the space station and undersea exploration” 
Real-Time operating systems will continue to show their importance in computing for many years to come, due to their versatility and reliability, which is relied on so heavily in many industries.
Going forward new applications for real-time operating system will be created and introduced. As there will be new developments, especially in robotics where manual labour jobs traditionally very tedious and completed by low paid workers, can be efficiently completed by robotics powered by real-time operating system due to their responsiveness and reliability.
In Poultry production, Real-time systems have already been introduced, for example, In Moy Park, Robotic applications with camera’s and programming are able to, in real-time identify poultry pieces and pack them accordingly into packaging. These systems are very fast, and if the movements where not set to the correct speed the pieces may not be placed correctly, in the moving packs along the conveyor belt. And so the real-time system needs to be efficient and responsive to alter speeds to meet the requirements at hand.
Other uses include: Motion controllers, test and measurement systems
Air traffic control systems would use Real-time systems to monitor traffic around the airport, and so these systems are required to be very responsive and accurate to minimise the risks of collisions in and around the airport. And to allow safe take-off and landings of all aircrafts at the same time. And so this task would be very time critical, as any fluctuations in aircraft speed could alter arrival times, and so the systems are required to be updated as quickly as possible to alleviate all possible anomalies.
Other uses include: Flight Simulators, Space guidance & Navigation, Aircraft wiring control systems, satellite and tracking systems.
Real-time systems are also heavily used in medical applications, from heart rate monitors at a patient’s bedside to a patient’s embedded pacemaker, if these devices were not completely accurate and reliable this could impact the health of the patient and also cause loss of life. Cardiac monitors are able to continuously monitor heart activity of a patient, if there was a delay in the system producing a rhythm, it may delay the response of doctors treating the patient, and so this is a very time critical system, as it is required to be as responsive and reliable as possible.
Other uses include: MRI/PET scanners, Anesthesia monitors, hemodialysis devices.
There are a broad range of uses of real-time systems in the military sector, for example computer guided missiles. Real time computers repeatedly monitor and track the target to ensure than any changes in target location are accurately monitored, to adjust speed and direction of missiles.
In the future embedded real time systems will be implanted into new-born babies using tiny chips/sensors. These chips will be able to continuously monitor the health and wellbeing of the individual. Monitoring everything from physical activity, nutritional status, body temperature and hydration levels.
3.0 MAJOR COMPONENTS MAKING UP A REAL-TIME OPERATING SYSTEM
As seen in the above image, these components are Software and Hardware based:
3.1 Real-Time Operating System Kernel
The Kernel in a real-time operating system, just like an ordinary operating system is the single most important component of the system. It acts as the interface between the application layer and the hardware layer. It’s able to manage the systems resources and communications, as well as the central processor. The kernel includes the dispatcher to allocate the central processor. This helps to determine the cause of an interrupt and execute its processing. The kernel has multiple functions, which include, by are not limited to Task Management, inter-task communication and synchronisation, dynamic memory allocation, timers and devices I/O supervisor.
Kernels in a real time operating system are pre-emptive, which means the highest priority tasks sitting idle are given control of the CPU. If the interrupt service routine makes a higher priority tasks available, the task is still resumed instead of the interrupted task. Real-time operating system, designed specifically to run user’s applications as reliably as possible with precision timing, to ensure deadlines are met.
3.2 Development tools
Including a compiler, linker and debugger to generate code compatible with the real-time operating system.
Drivers are required to allow the operating system to effectively communicate with hardware and input/output modules. As well as to guarantee any worst case timings for input/output operations.
As well as a scheduler, Memory manager, Timer, synchronization and other services.
The scheduler is responsible for maintaining the task queues, in order of priority. The task queues, may have different states from sleeping to ready. With each task queued to its specific task queue. If tasks are currently running, and a newer higher priority task enters the ready queue, the currently active tasks may be put to sleep to allow the newly prioritised task to take place.
3.5 Memory Manager
Designed to be as simple and efficient as possible, the memory for the memory manager is allocated at the compile time itself. It supports (MMU) virtual memory and (MPU) memory protection.
Timers are responsible for assisting the scheduler, they are required to check if a process has met or missed its deadline schedule. Timers are a key part in ensuring real time performance can be successfully met, Timers ensure a process is started at the correct time and that it is completed within a specific duration of time Timers are able to introduce mechanisms to help synchronize timings and task-delays.
I/O modules and system hardware which include the real time drivers are specified in section above.
Rugged Hardware, which is optional, includes a chassis which is designed to sustain harsh environments for periods of time.
4.0 CHARACTERISTICS AND DESIGN REQUIREMENTS OF A REAL-TIME OPERATING SYSTEM
4.1 Hard Real-Time
I discussed this slightly in my introduction to Real-Time operating systems. A Hard Real-Time system is able to guarantee a critical task is completed exactly on time. Hard Real time systems are required for critical systems, when there is no value of the computation if it were to be completed late. Such late computations could be catastrophic to the system, and may cause damage to a system or application. And thus the dependence on accurate and on-time hard real time systems are critical. And so medical applications like pacemakers and aircraft control systems, or anti-lock brakes all depend on this systems.
Key Points for Hard Real-Time
- Deadline overruns will lead to potential loss of life/system
- Significant financial damage
- Mostly used for safety critical applications.
4.2 Soft Real-Time
In Soft Real-Time systems the value of a computation diminishes the later it is completed. These systems are put in place where it is not absolutely critical that the system performs exactly on time. There is a slight margin of lateness that is accepted. Late completion will not have any serious implications like it would have on a Hard real-time system. For example:
“For example, an operating system might be designed to ensure that a certain object was available for a robot on an assembly line. In what is usually called a ‘hard’ real-time operating system, if the calculation could not be performed for making the object available at the designated time, the operating system would terminate with a failure.”
“ In a ‘soft’ real-time operating system, the assembly line would continue to function but the production output might be lower as objects failed to appear at their designated time, causing the robot to be temporarily unproductive” 
Simply Put, a soft real-time task has associated deadlines which are desirable but not mandatory.
Key Points for Soft Real-Time
- Deadlines overruns are tolerable, but not desirable
- No catastrophic consequences of missing one or more deadlines
- Not used for safety critical systems
- No immediate costs, reduced production may lead to reduced profit.
4.3 Aperiodic Tasks
“Aperiodic tasks have irregular arrival times and either soft or hard deadlines”. These tasks have a deadline by which it must start or finish. With perhaps a time constraint on the start and finish times. These tasks needs to be completed within the allocated time period assigned to them, As these are event-driven tasks, And such are usually random events which may occur, rather than periodic tasks which repeatedly occur within a system.
4.4 Periodic Tasks
These tasks have regular arrival times and hard deadlines. As these are tasks which repeatedly occur within a system. They are time-driven, and execute critical control activities. These tasks are aimed at guaranteeing regular activation rates. Periodic requirement may be stated as “once per period T ” or “exactly T units apart.”
Real Time operating systems are more deterministic than General Purpose operating systems. As these systems have to stick to a reliable and predictable time frame. And so these systems are deterministic due to the fixed, predetermined times for which each tasks in the system is completed. As every system has more than one task to complete or work on at a given time, the system cannot be fully deterministic. But it just means the system has a more controlled behaviour than general purpose operating systems.
This characteristic ties in with Determinism, as determinism follows how long an operating system is delayed before it acknowledges an interrupt. “While responsiveness follows how long after than acknowledgement it takes for the system to check out the interrupt.” 3 Aspects of responsiveness: The length of time required to deal with an interrupt and execute the (ISR) interrupt Service Routine, The length of time required to execute the (ISR) Interrupt Service routine, which can vary from different hardware. And finally the effect of interrupt nesting.( Whether another interrupt will occur during the ISR) as this will lead to further delays.
4.7 User Control
Real time operating systems provide the user fine control over which tasks are scheduled in the system, allowing users to re-arrange task priority. This allows the user to determine priorities, whether they are hard or soft real-time tasks. As well as control over memory support and allocation. Real-time operating system may also allow users to specify what processes must always reside in main memory for instant access, as well as stating which disk transfer algorithms are used etc.
Reliability of a real-time system is one of its most important characteristics, as real-time systems are used for mostly critical systems, where the margin of error should be non-existent . Due to the potential for loss of life or catastrophic damages to system or process at hand. Degradation of systems, is heavily monitored to minimize risks and failures. This is to ensure down-time is as close to ‘0’ as possible. This also helps to alleviate any impacts of profits. For example, and embedded pacemaker, if these devices were not completely accurate and reliable this could result in alteration in the regular heart beats, which could cause loss of life to the patient if it’s not completely reliable.
This also ties is closely with reliability, as the system needs to be reliable, but also stable under pressure and high loads. If there are a lot of processes to run, the system still needs to ensure the tasks are completed within their deadlines. And that the system does not buckle under pressure.
4.10 Fail-soft operation
This refer to the ability of a system to recover any loss of information or process due to an inevitable failure of system. Whether that is a loss of power, mains or battery, or internal crash. As well as the ability to preserve system states and activities is greatly important, with the goal being the least impact with most preservation. In Soft real-time systems being able to continue operations non-affected by the failure on a temporary basis until the failed parts of the system are recovered and restored to normal activity.
4.11 Real time scheduling
The scheduler schedules tasks which would be sharing system resources. With the aim of ensuring that the time constraints of these processes are satisfied. Based on task timing limitations, the scheduler decides which tasks should use the system resources first.
“The various scheduling approaches depend on whether a system performs schedulability analysis”, and if it does, “whether it’s done statically or dynamically and whether the result of the analysis itself produces a schedule or plan according to which tasks are dispatched at run time.” 
Based on the above considerations, the following classes of algorithms are identified:
1: Static table-driven approaches: This approach performs a static analysis of feasible schedules of dispatching. The result of analysis is a schedule that will at runtime, determine when a task must begin its execution.
2: Static priority-driven pre-emptive approaches:like above, a static analysis is performed, and the analysis is used to assign priorities to tasks. And so a priority driven pre-emptive scheduler can be used.
3: Dynamic planning-based approaches:The feasibility is dynamically determined at run time, rather than offline prior to the start of execution. The result of the analysis is a schedule or plan that is then used to decide best time to dispatch the task.
4: Dynamic best effort approaches:No feasibility analysis takes place; the system attempts to meet all deadlines and aborts any started process whose deadline has been missed. This approach is most often used by many Real-Time systems currently available today. Once a task arrives the system assigns a priority, and sets up a form of deadline scheduling. Most often these tasks are aperiodic. Until a deadline arrives or the task is completed, its unsure whether the timing constraint will be met.
Schedulers set out a schedule for a given list of processes, and if the process can be scheduled to meet its deadline it is deemed feasible.Scheduling refers to the procedure of giving a thread or process access to system resources. It determines which tasks should be executed at any time, using the Scheduling policy algorithm. As real-time operating systems need to abide by strict deadlines, they use priority based pre-emptive task scheduling. Scheduling policies are put into place that reflect timeliness constraints of real-time tasks.
The scheduler aims to keep the CPU as busy as possible, and to increase the number of processes that complete their execution per time unit.
4.13 Task Scheduler
Ensures that all hard-real-time tasks complete by their deadline, and that as many as possible of the soft real-time tasks are completed by their deadline.
Tasks can be in different states: From Pending, Ready, Delayed, Suspended and Run. Each process can only be associated to on and only one state. The Scheduler only operates on processes within the ready state.
Clock Driven, (Time driven) approach to real-time scheduling: Scheduling decisions are made at specific times, the scheduler decides which job it will execute next. All parameters about the processes are known in advance, like the execution time and deadline. This method is not suitable for many applications.
Priority Driven approach to real time scheduling, Decisions are made when particular events occur within the system, for example, when the processor is idle or a job becomes available, or task priority has changed. This is to ensure the processor is never left idle when there are tasks ready. Processes are allocated based on priority level.
4.14 Inter task Communication
Comprises of how data is passed from one task to another within the system. To allow the applications to easily communicate with each other:
Three different techniques:
Semaphores work by allowing the signal for activating and suspending tasks. Semaphore is a variable signal, can be stored in or read from. Semaphore have two forms: binary and counting:
Binary semaphore can take 2 values, either 1 or 2, true or false.
Counting semaphore is a counter for a set of available resources, allowing values between 0 and 255 for 8 bits.
Mailboxes work like semaphores although instead of signals, any type of data can be stored in or read from a mailbox.
Message passing: Is used to exchange data between 2 tasks. This method represents the tightest coupling between tasks, as tasks must synchronize for the data exchange.
4.15 Interrupt handlers
Interrupts are a signal from an application or connected device which causes the operating system to stop its current process to identify what steps to take next. This means the processor has suspended its operations, so that it can respond to whatever caused the interrupt. Real-time operating systems are designed to minimize interrupt latency.
4.16 Memory allocation
Memory allocation refers to reserving memory, moment to moment as its required. Without the need for reserving fixed amounts ahead of schedule. As there is a great expectation of speed with real-time operating system , memory allocation and management is very important.
“And so real time operating systems use different memory allocation strategies and algorithms, which help to improve the performance of the intended system. Two types of memory allocation in Real Time operating systems: Stack & Heap.“ 
A stack is an allocation area in RAM where temporary data is stored. During the execution of task code blocks. When the stack capacity is less than the data yet to be stored, data is then written to the memory area usually allocated for static and global variables.
This allocation deals with memory other than memory used for program code. It’s used for dynamic allocation of data space for tasks. And so when one part of the RAM is no longer required, it must be returned to the memory allocated to allow another process to use it.
Real-time operating system also support static and dynamic memory allocation:
This memory is allocated at compile or design time, it is a deterministic process which means memory allocation is already known. During execution no memory allocation or deallocation actions are performed.
This memory is allocated at run time, A memory manager is required to keep track of which memory is being used and which is not. Memory allocation is established and destroyed during the execution.
5.0 COMPARATIVE ASSESSMENT OF COMMERCIALLY AVAILABLE REAL-TIME OPERATING SYSTEMS
There are a wide variety of commercially available Real-Time operating Systems vendors; many of which are vendors of the embeddedWorld2017 exhibition & conference.
VxWorks Is developed as proprietary software by Wind River, a Californian subsidiary of Intel. It is the world’s most widely deployed real-time operating system, powering over 2 billion devices. Most specifically embedded systems. VxWorks can be easily customized. It is used to control network and communication devices, measurement equipment and automotive systems to name a few. VxWorks includes a kernel for pre-emptive multitasking, inter-process communication and interrupt response. “It delivers unrivaled deterministic performance and sets the standard for a scalable, future-proof, safe, and secure operating environment for connected devices. Leading global innovators such as ABB, Airbus, Alcatel-Lucent, BD Biosciences, Boeing, Delphi, Eurocopter, Huawei, Mitsubishi, NASA, Northrop Grumman, Siemens, and Varian leverage. VxWorks to create award-winning, innovative, IoT-ready products effectively and efficiently” 
5.2 WIN CE
Windows Embedded Compact: Is an energy saving and powerful RTOS, it is not fully open source, but rather Microsoft Shared Source. Microsoft licenses the operating system to other OEM’s to allow them to access the source code to modify the system to suit their own needs. Windows CE is currently active and the latest release was around 3 years ago. It uses a hybrid kernel and supports ARM based processors as well as x86. It is capable of running on machines with minimal memory, capable of running with just 1mb of memory.
5.3 EUROS Embedded Systems GmbH
Euros Is one of many pioneering vendors of real-time operating system. They also focus on protocol stacks, development systems for embedded applications. Their products are broadly used in all segments of the embedded ecosystem, including aerospace, military and medical applications.
Euros real-time operating system is extremely versatile and has vast customization capabilities due to its modularity and hardware-independence. As its written in the C programming language, using (HAL) Hardware abstraction level its effortless to adapt the system for any new CPU architectures. Currently it is available for 35 different families of microprocessors and microcontrollers. The core component of Euros real-time operating system is the Microkernel with its I/O system. Other base components are the Process Manager and C library.
5.4 Nucleus Real-Time Operating System
Nucleus real-time operating system is a widely deployed real-time operating system deployed by the embedded software division of Mentor Graphics. It was introduced to replace the former VRTX real-time operating system also by Mentor Graphics. Now deployed in over 3 billion devices. It is designed specifically for embedded systems, with an emphasis on reliability and scalability. It is currently used in handheld devices, consumer electronics, space probes and also by Honeywell, for its ground proximity warning system. With its vast array of uses, it’s also possible for the system to be scaled down to around 13KB if necessary.
This operating system was developed by Quantum Software Systems back in the 1980, it’s a Unix-like system. QNX was also one of the first commercially successful microkernel operating systems. This system is supported on ARM based processors as well as x86 amongst others.
QNX Neutrino, is capable of running on almost all modern CPU’s used in the embedded systems market. As this system is made up of small parts, rather than a large kernel, this is beneficial for developers as it allows them to disable functionality that is not required without the need to alter the operating system altogether. This system supports priority preemptive scheduling, and when the system is overloaded its capable of running a selection of critical tasks which can run in real-time.
QNXwas then acquired by Blackberry (Research In Motion) back in 2010, where it was then used to develop their new operating system which would go on to power their new devices, the Blackberry Playbook and then Blackberry 10 devices. Blackberry have just recently released the latest update to the operating system last month, version 7.0.
5.6 Micrium: Micro-Controller Operating Systems
This real time system was designed by Jean J Labrosse in 1991, and written in the C programming language. It is a closed source system, although the source code is available under license. It is powerful yet simplified system, which is priority based and has a preemptive real-time kernel for microprocessors and is supported on ARM based processors as well as x86 amongst others. Its real-time kernel offers a priority inheritance protocol and reentrancy control mechanism to avoid priority inversion.
This microkernel real-time operating system was developed by the Real Time Engineers Ltd, it is distributed by the GPL, General Public license. It is a small and simple system, best suited to low powered systems, The system is mainly written in the C programming language. It is supported on ARM based processors as well as x86 amongst others.
Its scheduler is capable of configuration for pre-emptive and cooperative operation. Its applications can be completely statically allocated.
FreeRTOS was last updated back in August 2016, and is now on version 9.0.0.
Throughout my research of real-time operating systems, I have accessed multiple sources of information to gather a broad understanding of the system. From websites to journals and conference papers. I have discovered a lot of information regarding the importance of real-time operating systems, especially hard real time systems, as they are used in time critical applications were deadlines are crucial they are met. As well as their differences to general purpose operating systems. With the significant difference focusing on the responsiveness and emphasis on the importance of meeting deadlines in a real time system.
Even now the value of RTOS is unrivalled, as even the most technologically advanced processors, running a general purpose operating system are still incapable of handling time critical real-time applications. And this looks unlikely to change in the future, as I believe the performance gap between these two systems will only widen. Real time systems are simply more beneficial as they prioritise tasks in order of most critical state. In turn, always ensuring that the CPU is never sitting idle when there are tasks in a queue to help boost efficiency and time management.
Since real-time systems prioritize tasks based on their importance, running only one task at a given time unlike general purpose systems, this means a greater emphasis on time critical systems is in place, and the upmost attention will be provided to these until they are completed on time. I have become much more aware of how crucial real-time operating are to many industries and applications. As some applications would not be viable or safe without them.
Over the years, the uptake of legacy real time operating systems has diminished slightly, with the market leaving the proprietary systems, in favour of the commercially available systems. I believe this is due to a growing need for a more sophisticated system, and a general lead to standardisation. And so with the increasing amount of commercially available real-time operating systems, it should not be difficult finding a suitable system to suit any application, developed or undeveloped.
And as real time systems are mainly used in Embedded systems which are packaged as a complete device and are only becoming more popular, so too will the use of real-time operating systems. Embedded systems are becoming smaller and smaller, thanks to the optimization of the real-time operating system, speed and reliability are not compromised. The value of real time operating systems has to be respected, as these systems require only the minimal amount of memory and processors while being able to outperform general purpose operating systems, this also helps to reduce costs of parts.
To conclude, real time systems are invaluable systems, with a vast amount of uses and are relied on extremely widely for most time-critical applications. Their use is ever expanding, into consumer orientated markets also, for smartphones and information devices. These systems will be in use for decades to come, and will only improve more with time.
 What is RTOS (Real-Time Operating System)?. 2017. What is RTOS (Real-Time Operating System)?. [ONLINE] Available at: http://www.computerhope.com/jargon/r/realsyst.htm. [Accessed 10 February 2017].
:Electronic Circuits and Diagram-Electronics Projects and Design. 2017. Differences between a GPOS (Normal OS) and an RTOS (Real Time OS). [ONLINE] Available at: http://www.circuitstoday.com/gpos-versus-rtos-for-an-embedded-system. [Accessed 13 February 2017].
Hedlund, Aronson, M, F, 2002. Evaluation of real-time operating systems for safety critical systems. Evaluation of real-time operating systems for safety critical systems, [Online]. 1, 1-140. Available at: http://www.mrtc.mdh.se/rtis/contrib/Exjobb/02.pdf [Accessed 14 February 2017].
 Do I Need a Real-Time System? – National Instruments. 2017. Do I Need a Real-Time System? – National Instruments. [ONLINE] Available at: http://www.ni.com/white-paper/14238/en/#toc4. [Accessed 21 February 2017].
 Real time operating system architectures are important for medical designers . 2017. Real time operating system architectures are important for medical designers . [ONLINE] Available at: http://www.newelectronics.co.uk/electronics-technology/real-time-operating-system-architecture-is-important-for-medical-designers/35970/. [Accessed 21 February 2017].
 IT Release. 2017. What are advantages and disadvantages of real time operating systems – IT Release. [ONLINE] Available at: http://www.itrelease.com/2014/07/advantages-disadvantages-real-time-operating-systems/. [Accessed 21 February 2017].
 Why RTOS and What is RTOS?. 2017. Why RTOS and What is RTOS?. [ONLINE] Available at: http://www.freertos.org/about-RTOS.html. [Accessed 21 February 2017].
What is a Real-Time Operating System (RTOS)? – National Instruments. 2017. What is a Real-Time Operating System (RTOS)? – National Instruments. [ONLINE] Available at: http://www.ni.com/white-paper/3938/en/. [Accessed 21 February 2017].
 EUROS RTOS(EUROS Embedded Systems GmbH) | embedded world 2017. 2017. EUROS RTOS(EUROS Embedded Systems GmbH) | embedded world 2017. [ONLINE] Available at: https://www.embedded-world.de/en/ausstellerprodukte/embwld17/product-9803983/euros-rtos. [Accessed 22 February 2017].
Super User. 2017. EUROS Embedded Systems GmbH – Overview. [ONLINE] Available at: http://www.euros-embedded.com/v3/index.php/en/products/real-time-operating-systems/euros/overview. [Accessed 22 February 2017].
 VxWorks (Wind River GmbH) | embedded world 2017. 2017. VxWorks (Wind River GmbH) | embedded world 2017. [ONLINE] Available at: https://www.embedded-world.de/en/ausstellerprodukte/embwld17/product-9862451/vxworks. [Accessed 22 February 2017].
 William Stallings, 2014. Operating Systems: Internals and Design Principles (8th Edition). 8 Edition. Pearson.
 Nucleus RTOS (Real-time Operating System) – Mentor Graphics. 2017. Nucleus RTOS (Real-time Operating System) – Mentor Graphics. [ONLINE] Available at: https://www.mentor.com/embedded-software/nucleus/. [Accessed 22 February 2017].
 SearchDataCenter. 2017. What is real-time operating system (RTOS)? – Definition from WhatIs.com. [ONLINE] Available at: http://searchdatacenter.techtarget.com/definition/real-time-operating-system. [Accessed 11 March 2017].
Sprunt, B., Sha, L. and Lehoczky, J. (1989). Aperiodic task scheduling for Hard-Real-Time systems. Real-time Systems, 1(1), pp.27-60.
 N. Kumar Pandey, S. Chaudhary and N. K. Joshi, (2016) Resource & memory allocation strategies used in cloud computing: A critical analysis. In: 2016 2nd International Conference on Communication Control and Intelligent Systems (CCIS). 213-216.
 S. Osmolovskiy, E. Ivanova, D. Shakurov, I. Fedorov and V. Vinogradov, (2016) Hierarchical real-time scheduling for multicore systems. In: 2016 18th Conference of Open Innovations Association and Seminar on Information Security and Protection of Information Technology (FRUCT-ISPIT). 248-256.
“Penumuchu, C.V. (2007) Simple real-time operating system: A kernel inside view for a beginner. Victoria, BC: Trafford Publishing.
Embedded Systems/Real-Time Operating Systems – Wikibooks, open books for an open world. 2017. Embedded Systems/Real-Time Operating Systems – Wikibooks, open books for an open world. [ONLINE] Available at: https://en.wikibooks.org/wiki/Embedded_Systems/Real-Time_Operating_Systems. [Accessed 10 February 2017].
K. Baynes, C. Collins, E. Fiterman, Brinda Ganesh, P. Kohout, C. Smit, T. Zhang and B. Jacob (2003) The performance and energy consumption of embedded real-time operating systems. IEEE Transactions on Computers, 52 (11), 1454-1469.
T. Kim, B. Zheng, H. B. Chen, Q. Zhu, V. Sukharev and S. X. D. Tan, (2014) Lifetime optimization for real-time embedded systems considering electromigration effects. In: 2014 IEEE/ACM International Conference on Computer-Aided Design (ICCAD). 434-439.
A. Ahmed Biyabani, S. A. Al-Salman and K. S. Alkhalaf, (2015) Embedded real-time bilingual ALPR. In: Communications, Signal Processing, and their Applications (ICCSPA), 2015 International Conference on. 1-6.
A. Burns, M. Gutiérrez, M. Aldea Rivas and M. G. Harbour (2015) A Deadline-Floor Inheritance Protocol for EDF Scheduled Embedded Real-Time Systems with Resource Sharing. IEEE Transactions on Computers, 64 (5), 1241-1253.
A. Garcia-Martinez, J. F. Conde and A. Vina, (1996) A comprehensive approach in performance evaluation for modern real-time operating systems. In: Proceedings of EUROMICRO 96. 22nd Euromicro Conference. Beyond 2000: Hardware and Software Design Strategies. 61-68.
A. Ghorbel, N. Ben Amor and M. Jallouli, (2014) An embedded real-time hands free control of an electrical wheelchair. In: 2014 IEEE Visual Communications and Image Processing Conference. 221-224.
A. Hanamakkanavar, V. Handur, V. Kareti and P. Ranadive, (2016) Power aware scheduling on real-time multi-core systems. In: 2016 International Conference on Advances in Computing, Communications and Informatics (ICACCI). 2624-2628.
A. Ivutin and E. Larkin, (2014) Estimation of latency in embedded real-time systems. In: 2014 3rd Mediterranean Conference on Embedded Computing (MECO). 236-239.
A. Metzner, M. Franzle, C. Herde and I. Stierand, (2005) Scheduling distributed real-time systems by satisfiability checking. In: 11th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA’05). 409-415.
A. Monot, M. Oriol, C. Schneider and M. Wahler, (2016) Modern Software Architecture for Embedded Real-Time Devices: High Value, Little Overhead. In: 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA). 201-210.
A. Paikan, U. Pattacini, D. Domenichelli, M. Randazzo, G. Metta and L. Natale, (2015) A best-effort approach for run-time channel prioritization in real-time robotic application. In: 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). 1799-1805.
A. Przywara, R. Kusch and D. Naunin, (2003) Real-time operating systems on small embedded devices for industrial control and communication. In: Industrial Electronics Society, 2003. IECON ’03. The 29th Annual Conference of the IEEE. 2047-2052 Vol.3.
A. S. Pillai and T. B. Isha, (2013) ERTSim: An embedded real-time task simulator for scheduling. In: 2013 IEEE International Conference on Computational Intelligence and Computing Research. 1-4.
A. Shah and K. Kotecha, (2010) Scheduling Algorithm for Real-Time Operating Systems Using ACO. In: 2010 International Conference on Computational Intelligence and Communication Networks. 617-621.
A. Shah and K. Kotecha, (2009) Adaptive Scheduling Algorithm for Real-Time Multiprocessor Systems. In: 2009 IEEE International Advance Computing Conference. 35-39.
A. Z. Olivera Salmon, P. M. Gonzalez del Foyo and J. R. Silva, (2014) Scheduling real-time systems with periodic tasks using a model-checking approach. In: 2014 12th IEEE International Conference on Industrial Informatics (INDIN). 73-78.
B. Nicolescu, N. Ignat, Y. Savaria and G. Nicolescu (2006) Analysis of Real-Time Systems Sensitivity to Transient Faults Using MicroC Kernel. IEEE Transactions on Nuclear Science, 53 (4), 1902-1909.
B. Nicolescu, N. Ignat, Y. Savaria and G. Nicolescu, (2005) Sensitivity of Real-Time Operating Systems to Transient Faults: A case study for MicroC kernel. In: 2005 8th European Conference on Radiation and Its Effects on Components and Systems. F1-1-F1-6.
C. A. R. C. and A. M. K. Cheng, (2015) Using Entropy as a Parameter to Schedule Real-Time Tasks. In: 2015 IEEE Real-Time Systems Symposium. 375-375.
C. Boke, M. Gotz, T. Heimfarth, D. El Kebbe, F. J. Rammig and S. Rips, (2003) (Re-) configurable real-time operating systems and their applications. In: Proceedings of the Eighth International Workshop on Object-Oriented Real-Time Dependable Systems, 2003. (WORDS 2003). 148-155.
C. Brandolese and W. Fornaciari, (2008) Measurement, Analysis and Modeling of RTOS System Calls Timing. In: 2008 11th EUROMICRO Conference on Digital System Design Architectures, Methods and Tools. 618-625.
C. Centioli, F. Iannone, G. Mazza, M. Panella, L. Pangione, V. Vitale and L. Zaccarian (2004) Open source real-time operating systems for plasma control at FTU. IEEE Transactions on Nuclear Science, 51 (3), 476-481.
C. Fu, G. Calinescu, K. Wang, M. Li and C. J. Xue, (2016) Energy-Aware Real-Time Task Scheduling on Local/Shared Memory Systems. In: 2016 IEEE Real-Time Systems Symposium (RTSS). 269-278.
C. H. Hsu and H. C. Yang (2017) Real-Time Near-Optimal Scheduling With Rolling Horizon for Automatic Manufacturing Cell. IEEE Access, 5 3369-3375.
C. Main (2010) Virtualization on Multicore for Industrial Real-Time Operating Systems [From Mind to Market]. IEEE Industrial Electronics Magazine, 4 (3), 4-6.
C. Mercer, R. Rajkumar and J. Zelenka, (1994) Temporal protection in real-time operating systems. In: Proceedings of 11th IEEE Workshop on Real-Time Operating Systems and Software. 79-83.
C. W. Mercer and H. Tokuda, (1992) Preemptibility in real-time operating systems. In:  Proceedings Real-Time Systems Symposium. 78-87.
C. Y. Chuang, Y. C. Chen and C. W. Hsueh, (2016) Scheduling Low-Utilized Real-Time Systems with End-to-End Timing Constraints. In: 2016 IEEE 22nd International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA). 98-98.
D. Budaev, K. Amelin, G. Voschuk, P. Skobelev and N. Amelina, (2016) Real-time task scheduling for multi-agent control system of UAV’s group based on network-centric technology. In: 2016 International Conference on Control, Decision and Information Technologies (CoDIT). 378-381.
D. Dias, G. Lima and E. Barros, (2016) A Cache Design Assessment Approach for Embedded Real-Time Systems Based on Execution Time Measurement. In: 2016 VI Brazilian Symposium on Computing Systems Engineering (SBESC). 168-173.
D. Duy and K. Tanaka, (2016) Enhanced virtual release advancing for EDF-based scheduling on precise real-time systems. In: 2016 Eighth International Conference on Knowledge and Systems Engineering (KSE). 43-48.
D. E. Mera and N. G. Santiago, (2010) Low power software techniques for embedded systems running real time operating systems. In: 2010 53rd IEEE International Midwest Symposium on Circuits and Systems. 1061-1064.
D. I. Katcher, K. A. Kettler and J. K. Strosnider, (1995) Real-time operating systems for multimedia processing. In: Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V). 18-21.
D. Jain and S. C. Jain, (2015) Load balancing real-time periodic task scheduling algorithm for multiprocessor enviornment. In: 2015 International Conference on Circuits, Power and Computing Technologies [ICCPCT-2015]. 1-5.
D. Mosse, O. Gudmundsson and A. K. Agrawala, (1990) Prototyping real time operating systems: a case study. In: [1990 Proceedings] The First International Workshop on Rapid System Prototying. 144-154.
D. Tormo, L. Idkhajine, E. Monmasson and R. Blasco-Gimenez, (2016) Evaluation of SoC-based embedded Real-Time simulators for electromechanical systems. In: IECON 2016 – 42nd Annual Conference of the IEEE Industrial Electronics Society. 4772-4777.
E. Din, C. Schaef, K. Moffat and J. T. Stauth (2017) A Scalable Active Battery Management System With Embedded Real-Time Electrochemical Impedance Spectroscopy. IEEE Transactions on Power Electronics, 32 (7), 5688-5698.
E. E. C. Moisuc, A. B. Larionescu and I. Ungurean, (2014) Hardware event handling in the hardware real-time operating systems. In: 2014 18th International Conference on System Theory, Control and Computing (ICSTCC). 54-58.
E. Tavares, P. Maciel, B. Silva, M. Oliveira and R. Rodrigues (2007) Modelling and scheduling hard real-time biomedical systems with timing and energy constraints. Electronics Letters, 43 (19), 1015-1017.
F. Ciccozzi, T. Seceleanu, D. Corcoran and D. Scholle (2016) UML-Based Development of Embedded Real-Time Software on Multi-Core in Practice: Lessons Learned and Future Perspectives. IEEE Access, 4 6528-6540.
F. J. Rammig, M. Gotz, T. Heimfarth, P. Janacik and S. Oberthur, (2006) Real-time operating systems for self-coordinating embedded systems. In: Ninth IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC’06). 8 pp.
F. J. Rammig, S. Grösbrink, K. Stahl and Y. Zhao, (2014) Designing Self-Adaptive Embedded Real-Time Software — Towards System Engineering of Self-Adaptation. In: 2014 Brazilian Symposium on Computing Systems Engineering. 37-42.
F. Rusu-Banu and Y. Wang, (2006) Formal Description of Time Management in Real-Time Operating Systems. In: 2006 Canadian Conference on Electrical and Computer Engineering. 1300-1303.
G. A. Marcon dos Santos, V. T. Ferrão, C. Vinhal and G. da Cruz, (2015) An adaptive algorithm for embedded real-time point cloud ground segmentation. In: 2015 7th International Conference of Soft Computing and Pattern Recognition (SoCPaR). 76-83.
G. Borriello and D. M. Miles, (1994) Task scheduling for real-time multi-processor simulations. In: Proceedings of 11th IEEE Workshop on Real-Time Operating Systems and Software. 70-73.
G. Dagnino, I. Georgilas, P. Tarassoli, R. Atkins and S. Dogramadzi, (2015) Design and real-time control of a robotic system for fracture manipulation. In: 2015 37th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC). 4865-4868.
G. Phavorin, P. Richard and C. Maiza, (2015) Complexity of scheduling real-time tasks subjected to cache-related preemption delays. In: 2015 IEEE 20th Conference on Emerging Technologies & Factory Automation (ETFA). 1-8.
G. S. Thakare and P. R. Deshmukh, (2016) Real time system scheduling with energy constraints. In: 2016 International Conference on Automatic Control and Dynamic Optimization Techniques (ICACDOT). 52-55.
G. Zhang, G. Zhao, A. Yao and R. Liu, (2010) Research of Mechanism to System Scheduling Flexibility Based on Embedded Real-Time System. In: 2010 International Conference on Machine Vision and Human-machine Interface. 369-372.
H. Chenini, D. Heller, C. Dezan, J. Diguet and D. Campbell, (2015) Embedded real-time localization of UAV based on an hybrid device. In: 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). 1543-1547.
H. Shi, M. Cai and J. Dong, (2006) Interrupt Synchronization Lock for Real-time Operating Systems. In: The Sixth IEEE International Conference on Computer and Information Technology (CIT’06). 171-171.
H. Tomiyama, S. Honda and H. Takada, (2008) Real-time operating systems for multicore embedded systems. In: 2008 International SoC Design Conference. I-62-I-67.
I. C. Bertolotti, (2010) Real-time operating systems tutorial. In: 2010 IEEE International Symposium on Industrial Electronics. 4023-4120.
I. Puchr and P. Ettler, (2012) Embedded system for fast data acquisition based on cooperation of two operating system platforms. In: 2012 Mediterranean Conference on Embedded Computing (MECO). 77-79.
J. Chen, C. Du, F. Xie and B. Lin, (2016) Allocation and Scheduling of Strictly Periodic Tasks in Multi-core Real-Time Systems. In: 2016 IEEE 22nd International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA). 130-138.
J. Cooling, (2004) Real-time operating systems for the embedded world. In: Open Control Systems – The Importance of Industrial Standards. 4/0-410.
J. E. Amiri and M. Kargahi, (2015) A predictable interrupt management policy for real-time operating systems. In: 2015 CSI Symposium on Real-Time and Embedded Systems and Technologies (RTEST). 1-8.
J. Kiszka and B. Wagner, (2007) Modelling Security Risks in Real-Time Operating Systems. In: 2007 5th IEEE International Conference on Industrial Informatics. 125-130.
J. Kiszka and B. Wagner, (2003) Domain and type enforcement for real-time operating systems. In: EFTA 2003. 2003 IEEE Conference on Emerging Technologies and Factory Automation. Proceedings (Cat. No.03TH8696). 439-446 vol.2.
J. Lee, X. Xie, D. Yue and S. Hu (2017; 2016) Time-Reversibility for Real-Time Scheduling on Multiprocessor Systems; Fault Estimation Observer Design of Discrete-Time Nonlinear Systems via a Joint Real-Time Scheduling Law. IEEE Transactions on Systems, Man, and Cybernetics: Systems, PP (1; 99), 230; 1-243; 13.
J. Ou and V. K. Prasanna (2008) A Cooperative Management Scheme for Power Efficient Implementations of Real-Time Operating Systems on Soft Processors. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 16 (1), 45-56.
J. Tarrillo, L. M. B. Pohls and F. Vargas, (2009) A Hardware-Scheduler for Fault Detection in RTOS-Based Embedded Systems. In: 2009 12th Euromicro Conference on Digital System Design, Architectures, Methods and Tools. 341-347.
J. Zhang, C. Li, L. Zhu and Y. Liu, (2016) The Real-Time Scheduling Strategy Based on Traffic and Load Balancing in Storm. In: 2016 IEEE 18th International Conference on High Performance Computing and Communications; IEEE 14th International Conference on Smart City; IEEE 2nd International Conference on Data Science and Systems (HPCC/SmartCity/DSS). 372-379.
J. Zhou, Y. Lu and K. Lundqvist, (2014) The observer-based technique for requirements validation in embedded real-time systems. In: 2014 IEEE 1st International Workshop on Requirements Engineering and Testing (RET). 47-54.
Jiale Zhou, (2014) Requirements development and management of embedded real-time systems. In: 2014 IEEE 22nd International Requirements Engineering Conference (RE). 479-484.
Jun Sun, R. Bettati and J. W. S. Liu, (1994) An end-to-end approach to schedule tasks with shared resources in multiprocessor systems. In: Proceedings of 11th IEEE Workshop on Real-Time Operating Systems and Software. 18-22.
K. Baynes, C. Collins, E. Fiterman, Brinda Ganesh, P. Kohout, C. Smit, T. Zhang and B. Jacob (2003) The performance and energy consumption of embedded real-time operating systems. IEEE Transactions on Computers, 52 (11), 1454-1469.
K. H. Ansari, P. Chitra and P. Sonaiyakarthick, (2013) Power-aware Scheduling of fixed priority tasks in soft real-time multicore systems. In: 2013 IEEE International Conference ON Emerging Trends in Computing, Communication and Nanotechnology (ICECCN). 496-502.
K. Sandström, A. Vulgarakis, M. Lindgren and T. Nolte, (2013) Virtualization technologies in embedded real-time systems. In: 2013 IEEE 18th Conference on Emerging Technologies & Factory Automation (ETFA). 1-8.
L. Jiankang, F. Yunzhong and F. Hongya, (2016) On-demand real-time scheduling strategy for CNC system based on embedded multi-core processor. In: 2016 International Symposium on Flexible Automation (ISFA). 202-205.
L. Keate, (1997) A real-world approach to benchmarking DSP real-time operating systems. In: WESCON/97 Conference Proceedings. 418-424.
L. Xu, Y. Bai, K. Cheng, L. Ge, D. Nie, L. Zhang and W. Liu, (2016) Towards Fault-Tolerant Real-Time Scheduling in the seL4 Microkernel. In: 2016 IEEE 18th International Conference on High Performance Computing and Communications; IEEE 14th International Conference on Smart City; IEEE 2nd International Conference on Data Science and Systems (HPCC/SmartCity/DSS). 711-718.
L. Yang, Y. E. Sagduyu, J. Zhang and J. H. Li (2015) Deadline-Aware Scheduling With Adaptive Network Coding for Real-Time Traffic. IEEE/ACM Transactions on Networking, 23 (5), 1430-1443.
L. Zhang, Z. Tong, N. Zhu, Z. Xiao and K. Li (2017) Energy-Aware Scheduling with Uncertain Execution Time for Real-Time Systems. Chinese Journal of Electronics, 26 (1), 42-49.
LihcChyun Shu and M. Young, (1994) A mixed locking/abort protocol for hard real-time systems. In: Proceedings of 11th IEEE Workshop on Real-Time Operating Systems and Software. 102-106.
M. A. Rivas and M. G. Harbour, (2003) Evaluation of new POSIX real-time operating systems services for small embedded platforms. In: 15th Euromicro Conference on Real-Time Systems, 2003. Proceedings. 161-168.
M. Dagbagi, A. Hemdani, L. Idkhajine, M. W. Naouar, E. Monmasson and I. Slama-Belkhodja (2016) ADC-Based Embedded Real-Time Simulator of a Power Converter Implemented in a Low-Cost FPGA: Application to a Fault-Tolerant Control of a Grid-Connected Voltage-Source Rectifier. IEEE Transactions on Industrial Electronics, 63 (2), 1179-1190.
M. Ghose, A. Sahu and S. Karmakar, (2016) Energy efficient online scheduling of aperiodic real time task on large multi-threaded multiprocessor systems. In: 2016 IEEE Annual India Conference (INDICON). 1-6.
M. H. A. Abdelsamea, M. Zorkany and N. Abdelkader, (2016) Real Time Operating Systems for the Internet of Things, Vision, Architecture and Research Directions. In: 2016 World Symposium on Computer Applications & Research (WSCAR). 72-77.
M. H. Cho, J. S. Lim and C. H. Lee, (2009) eRTOS : The low-power real-time operating system for wearable computers. In: 2009 IEEE 13th International Symposium on Consumer Electronics. 1015-1019.
M. H. Neishaburi, M. Daneshtalab, M. R. Kakoee and S. Safari, (2007) Improving Robustness of Real-Time Operating Systems (RTOS) Services Related to Soft-Errors. In: 2007 IEEE/ACS International Conference on Computer Systems and Applications. 528-534.
M. k. Shi, H. Jiang and S. h. Li, (2016) An intelligent traffic-flow-based real-time vehicles scheduling algorithm at intersection. In: 2016 14th International Conference on Control, Automation, Robotics and Vision (ICARCV). 1-5.
M. L. McKelvin Jr., E. B. Gamble Jr. and G. J. Holzmann, (2011) Model Checking Multitask Applications for OSEK Compliant Real-Time Operating Systems. In: 2011 IEEE 17th Pacific Rim International Symposium on Dependable Computing. 280-281.
M. Leite and M. A. Wehrmeister, (2014) Aspect-Oriented Model-Driven Engineering for FPGA/VHDL Based Embedded Real-Time Systems. In: 2014 IEEE 17th International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing. 261-268.
M. Li, F. Batmaz, L. Guan, A. Grigg, M. Ingham and P. Bull, (2015) Model-based systems engineering with requirements variability for embedded real-time systems. In: 2015 IEEE International Model-Driven Requirements Engineering Workshop (MoDRE). 1-10.
M. Lv, N. Guan, Y. Zhang, Q. Deng, G. Yu and J. Zhang, (2009) A Survey of WCET Analysis of Real-Time Operating Systems. In: 2009 International Conference on Embedded Software and Systems. 65-72.
M. Momtchev and P. Marquet, (2002) An asymmetric real-time scheduling for Linux. In: Proceedings 16th International Parallel and Distributed Processing Symposium. 8 pp.
M. O. Sass and M. Chetto, (2015) Schedulers for BGW tasks to guarantee quality of service of embedded real-time systems. In: 2015 International Conference on Pervasive and Embedded Computing and Communication Systems (PECCS). 1-6.
M. R. Miryani and M. Naghibzadeh, (2009) Hard real-time multiobjective scheduling in heterogeneous systems using genetic algorithms. In: 2009 14th International CSI Computer Conference. 437-445.
M. S. Chung and H. Shin, (1991) Requirements specification of distributed hard real-time operating systems. In: Industrial Electronics, Control and Instrumentation, 1991. Proceedings. IECON ’91., 1991 International Conference on. 1367-1371 vol.2.
M. Sabeghi, M. Naghibzadeh and T. Taghavi, (2006) Scheduling Non-Preemptive Periodic Tasks in Soft Real-Time Systems using Fuzzy Inference. In: 2006 2nd International Conference on Information & Communication Technologies. 1669-1670.
M. Thammawichai and E. C. Kerrigan, (2016) Feedback scheduling for energy-efficient real-time homogeneous multiprocessor systems. In: 2016 IEEE 55th Conference on Decision and Control (CDC). 1643-1648.
N. C. Audsley, R. I. Davis, A. Burns and A. J. Wellings, (1994) Appropriate mechanisms for the support of optional processing in hard real-time systems. In: Proceedings of 11th IEEE Workshop on Real-Time Operating Systems and Software. 23-27.
N. C. Gaitan, V. G. Gaitan, I. Ungurean and I. Zagan, (2015) Methods to Improve the Performances of the Real-Time Operating Systems for Small Microcontrollers. In: 2015 20th International Conference on Control Systems and Computer Science. 261-266.
N. I. Rafla and D. Gauba, (2011) Hardware implementation of context switching for hard real-time operating systems. In: 2011 IEEE 54th International Midwest Symposium on Circuits and Systems (MWSCAS). 1-4.
N. Lu, B. Li, R. Srikant and L. Ying, (2016) Optimal distributed scheduling of real-time traffic with hard deadlines. In: 2016 IEEE 55th Conference on Decision and Control (CDC). 4408-4413.
N. Neri, A. Abba, F. Caponio, M. Citterio, S. Coelli, J. Fu, A. Geraci, M. Grizzuti, N. Lusardi, M. Monti and M. Petruzzo, (2015) First results of a detector embedded real-time tracking system with artificial retina. In: 2015 IEEE Nuclear Science Symposium and Medical Imaging Conference (NSS/MIC). 1-4.
O. Höftberger and R. Obermaisser, (2014) Runtime evaluation of ontology-based reconfiguration of distributed embedded real-time systems. In: 2014 12th IEEE International Conference on Industrial Informatics (INDIN). 538-544.
P. Kohout, B. Ganesh and B. Jacob, (2003) Hardware support for real-time operating systems. In: First IEEE/ACM/IFIP International Conference on Hardware/ Software Codesign and Systems Synthesis (IEEE Cat. No.03TH8721). 45-51.
P. Kuacharoen, T. Akgul, V. J. Mooney and V. K. Madisetti, (2001) Adaptability, extensibility and flexibility in real-time operating systems. In: Proceedings Euromicro Symposium on Digital Systems Design. 400-405.
P. Li, Binoy Ravindran, S. Suhaib and S. Feizabadi (2004) A formally verified application-level framework for real-time scheduling on POSIX real-time operating systems. IEEE Transactions on Software Engineering, 30 (9), 613-629.
P. Pesonen and V. Seppanen, (1994) Object-based design of embedded software using real-time operating systems. In: Proceedings Sixth Euromicro Workshop on Real-Time Systems. 194-198.
P. Ramanathan, (2015) Tutorial T8: Scheduling Issues in Embedded Real-Time Systems. In: 2015 28th International Conference on VLSI Design. 16-16.
P. Ramanathan, (2014) Tutorial T2A: Scheduling Issues in Embedded Real-Time Systems. In: 2014 27th International Conference on VLSI Design and 2014 13th International Conference on Embedded Systems. 2-2.
P. Samson and P. Sinha, (2005) Hardware acceleration of deadlock avoidance and detection in real-time operating systems. In: Fifth International Workshop on System-on-Chip for Real-Time Applications (IWSOC’05). 429-433.
Phillip A. Laplante and Seppo J. Ovaska (2012) Real-Time Operating Systems.
R. Angstadt, J. Estrada, H. T. Diehl, B. Flaugher and M. Johnson, (2007) Microsecond Delays on Non-Real Time Operating Systems. In: 2007 15th IEEE-NPSS Real-Time Conference. 1-4.
R. P. Dick, G. Lakshminarayana, A. Raghunathan and N. K. Jha (2003) Analysis of power dissipation in embedded systems using real-time operating systems. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 22 (5), 615-627.
R. Ramezani and Y. Sedaghat, (2013) An overview of fault tolerance techniques for real-time operating systems. In: ICCKE 2013. 1-6.
R. Shahpasand, Y. Sedaghat and S. Paydar, (2016) Improving the stateful robustness testing of embedded real-time operating systems. In: 2016 6th International Conference on Computer and Knowledge Engineering (ICCKE). 159-164.
Sam Siewert, 2016. Real-Time Embedded Components and Systems with Linux and RTOS (Engineering). 2 Edition. Mercury Learning & Information.
S. Groesbrink, (2014) Virtual Machine Migration as a Fault Tolerance Technique for Embedded Real-Time Systems. In: 2014 IEEE Eighth International Conference on Software Security and Reliability-Companion. 7-12.
S. Hustin, M. Potkonjak, E. Verhulst and W. Wolf, (1998) Tutorial 2 Real-time Operating Systems For Embedded Computing. In: 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287). 2-2.
S. J. Hollis and S. Kerrison, (2016) Swallow: Building an energy-transparent many-core embedded real-time system. In: 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE). 73-78.
S. Makonin, W. Sung, R. Dela Cruz, B. Yarrow, B. Gill, F. Popowich and I. V. Bajic, (2013) Inspiring energy conservation through open source metering hardware and embedded real-time load disaggregation. In: 2013 IEEE PES Asia-Pacific Power and Energy Engineering Conference (APPEEC). 1-6.
S. Osmolovskiy, I. Fedorov, V. Vinogradov, E. Ivanova and D. Shakurov, (2016) Mixed-criticality scheduling in real-time multiprocessor systems. In: 2016 18th Conference of Open Innovations Association and Seminar on Information Security and Protection of Information Technology (FRUCT-ISPIT). 257-265.
S. Penolazzi, I. Sander and A. Hemani, (2010) Predicting energy and performance overhead of Real-Time Operating Systems. In: 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010). 15-20.
S. Poledna, A. Burns, A. Wellings and P. Barrett (2000) Replica determinism and flexible scheduling in hard real-time dependable systems. IEEE Transactions on Computers, 49 (2), 100-111.
S. Saha, A. Sarkar, A. Chakrabarti and R. Ghosh (2017) Co-scheduling Persistent Periodic and Dynamic Aperiodic Real-Time Tasks on Reconfigurable Platforms.
Shourong Lu, W. A. Halang and R. Gumzej, (2004) Towards platform independent models of real time operating systems. In: Industrial Informatics, 2004. INDIN ’04. 2004 2nd IEEE International Conference on. 249-254.
Song Wang and Kwei-Jay Lin, (2002) A general resource management framework for real-time operating systems. In: Ninth International Conference on Parallel and Distributed Systems, 2002. Proceedings. 349-354.
T. Aoki, (2008) Model Checking Multi-Task Software on Real-Time Operating Systems. In: 2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC). 551-555.
T. Kim, B. Zheng, H. B. Chen, Q. Zhu, V. Sukharev and S. X. D. Tan, (2014) Lifetime optimization for real-time embedded systems considering electromigration effects. In: 2014 IEEE/ACM International Conference on Computer-Aided Design (ICCAD). 434-439.
T. N. B. Anh, S. L. Tan, S. L. Tan and B. A. Tran Nguyen (2009; 2009) Real-Time Operating Systems for Small Microcontrollers; Survey and performance evaluation of real-time operating systems (RTOS) for small microcontrollers. IEEE Micro, PP (5; 99), 30; 1-45; 1.
U. Brinkschulte, (2014) An Artificial DNA for Self-Descripting and Self-Building Embedded Real-Time Systems. In: 2014 IEEE 17th International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing. 326-333.
W. Housseyni, O. Mosbahi, M. Khalgui and M. Chetto, (2016) Real-Time Scheduling of Reconfigurable Distributed Embedded Systems with Energy Harvesting Prediction. In: 2016 IEEE/ACM 20th International Symposium on Distributed Simulation and Real Time Applications (DS-RT). 145-152.
W. k. Logan, (2006) Adding Reliability and Determinism to Your ATE System with LabWindows/CVI Real-Time. In: 2006 IEEE Autotestcon. 784-788.
W. P. Millhiser and E. A. Veral, (2016) A decision support system for real-time and dynamic scheduling of multiple patient classifications in ambulatory care services. In: 2016 Winter Simulation Conference (WSC). 2053-2064.
W. Sheng, V. Volevach, R. Leupers and G. Ascheid, (2013) Embedded Real-Time Application Prototyping Using a Hybrid Multiprocessing Platform. In: 2013 IEEE 10th International Conference on High Performance Computing and Communications & 2013 IEEE International Conference on Embedded and Ubiquitous Computing. 1745-1750.
X. Lin, Y. Wang, N. Chang and M. Pedram (2016) Concurrent Task Scheduling and Dynamic Voltage and Frequency Scaling in a Real-Time Embedded System With Energy Harvesting. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 35 (11), 1890-1902.
Y. Atif, (1999) How to control the overhead in distributed real-time operating systems. In: 1999 IEEE Conference on Real-Time Computer Applications in Nuclear Particle and Plasma Physics. 11th IEEE NPSS Real Time Conference. Conference Record (Cat. No.99EX295). 337.
Y. Lin, N. Guan and Q. Deng, (2015) Allocation and scheduling of real-time tasks with volatile/non-volatile hybrid memory systems. In: 2015 IEEE Non-Volatile Memory System and Applications Symposium (NVMSA). 1-6.
Y. Tang and N. W. Bergmann (2015) A Hardware Scheduler Based on Task Queues for FPGA-Based Embedded Real-Time Systems. IEEE Transactions on Computers, 64 (5), 1254-1267.
Yanbing Li, M. Potkonjak and W. Wolf, (1997) Real-time operating systems for embedded computing. In: Proceedings International Conference on Computer Design VLSI in Computers and Processors. 388-392.
Yi Wu, Xingshe Zhou, Xiao Wu and Zhan Xu, (2013) A embedded real-time polymorphic computing platform architecture. In: Proceedings 2013 International Conference on Mechatronic Sciences, Electric Engineering and Computer (MEC). 2326-2330.
Z. Cheng, H. Zhang, Y. Tan and Y. Lim, (2016) SMT-based scheduling for multiprocessor real-time systems. In: 2016 IEEE/ACIS 15th International Conference on Computer and Information Science (ICIS). 1-7.
Z. Guangzhou, Z. Tianxu, W. Yuehuan, C. Zhiguo and Z. Zhengrong (2005) High performance reconfigurable hardware system for real-time image processing. Journal of Systems Engineering and Electronics, 16 (3), 502-509.
Z. Wang, Z. Gu and Z. Shao (2014) Optimizated Allocation of Data Variables to PCM/DRAM-based Hybrid Main Memory for Real-Time Embedded Systems. IEEE Embedded Systems Letters, 6 (3), 61-64.
Zhao Tao and Long Deqing, (2013) Analysis on task scheduling operating mechanism of embedded real-time operating system MQX. In: Proceedings 2013 International Conference on Mechatronic Sciences, Electric Engineering and Computer (MEC). 1844-1847.
Ambike, A., Kim, W.-J., and Ji, K. (8-10 June 2005). real-time operating environment for networked control systems. American Control Conference, 2005. Proceedings of the 2005, pages 2353–2358 vol. 4.
Aroca, R. V. (2008). Ana ́lise de sistemas operacionais de tempo real para aplicac ̧o ̃es de robo ́tica e automac ̧a ̃o. Master’s thesis, Escola de Engenharia de Sa ̃o Carlos (EESC) – Universidade de Sa ̃o Paulo (USP).
Barabanov, M. (1997). A linux-based realtime operating system. Master’s thesis, New Mexico Institute of Mining and Technology.
Barbalace, A., Luchetta, A., Manduchi, G., Moro, M., Soppelsa, A., and Taliercio, C. (2008). performance comparison of vxworks, linux, rtai, and xenomai in a hard real- time application. Nuclear Science, IEEE Transactions on, 55(1):435–439.
Beneden, B. V. (2001). windows ce 3.0: Breathing down rtos vendors’ necks. Dedicated Systems Magazine.
Cedeno, W. and Laplante, P. A. (2007). an overview of real-time operating systems. Journal of the Association for Laboratory Automation, 12:40–45.
Cinkelj, J., Mihelj, M., and Munih, M. (20 May 2005). soft real-time acquisition in windows xp. Intelligent Solutions in Embedded Systems, 2005. Third International Workshop on, pages 110–116.
Dedicated Systems (2002). Comparison between qnx rtos v6.1, vxworks ae 1.1 and win- dows ce .net. Technical report, Dedicated Systems.
Dupre ́,J.K.andBaracos,P.(2001). Benchmarkingreal-timedeterminism. Technical report, Instrumentation, Systems &. Automation Society (ISA).
Franke, M. (2007). A quantitative comparison of realtime linux solutions. Technical report, Chemnitz University of Technology.
Ganssle, J., editor (2004). The Firmware Handbook. Elsevier.
Hatch, J. (2006). Windows ce real-time performance architecture. In Windows Hardware
Ip, B. (2001). Performance analysis of vxworks and rtlinux. Technical report, Columbia University, Department of Computer Science, New York. http://www1.cs.columbia.edu/ sedwards/classes/2001/w4995-02/reports/ip.pdf.
Irwin, P., Richard, L., and Johnson, J. (2002). Real-time control using open source rtos. In Lewis, H., editor, Advanced Telescope and Instrumentation Control Software II, volume 4848, pages 560–567. SPIE.
Kalynnda, B. (2002). Real-time linux evaluation. Technical report, Glen Research center, NASA.
Katuin, J. (12-16 May 2003). proton therapy treatment room controls using a linux control system. Particle Accelerator Conference, 2003. PAC 2003. Proceedings of the, 2:1068–1070 Vol.2.
Kim, W.-J., Ji, K., and Ambike, A. (2006). Real-time operating environmentfor net- worked control systems. Automation Science and Engineering, IEEE Transactions on [see also Robotics and Automation, IEEE Transactions on], 3(3):287–296.
Krodel, J. and Romanski, G. (2007). Real-time operating systems and component inte- gration considerations in integrated modular avionics systems report. Technical report, U.S. Department of Transportation – Federal Aviation Administration.
Ko ̈ker, K. (2007). Autonomous Robots and Agents, chapter Embedded RTOS: Perfor- mance Analysis With High Precision Counters, pages 171–179. Springer Berlin / Hei- delberg.
Labrosse, J. (2002). MicroC/OS-II – The Real Time Kernel. CMP Books, 2 edition.
Laplante, P. A. (2004). Real-Time System Design and Analysis. John Wiley & Sons. NIST (2002). Introduction to linux for real-time control. Technical report, National Institude of Standards and Technology (NIST).
Parab, J. S., Shelake, V. G., Kamat, R. K., and Naik, G. M. (2007). Exploring C for microcontrollers – A Hands On Approach. Spring.
Proctor, F. M. (2001). Measuring performance in real-time linux. In Third Real-Time Linux Workshop.
Proctor, F. M. and Shackleford, W. P. (2001). Real-time operating system timing jitter and its impact on motor control. In Proceedings of the SPIE Conference on Sensors and Controls for Intelligent Manufacturing II.
Sangiovanni-Vincentelli, A., Sangiovanni-Vincentelli, A., and Di Natale, M. (2007). em- bedded system design for automotive applications. Computer, 40(10):42–51.
Sohal, V. (2001). How to really measure real-time. In Embedded System Conference. Stewart, D. (2001). Measuring execution time and real-time performance. In Embedded System Conference.
Stiennon, R. (2008). Top ten worst uses for windows. On Line. Available at: http://www.networkworld.com/community/node/29644?ts. Last Access: August/2008.
Taurion, C. (2005). Software Embarcado – A nova onda da informac ̧a ̃o. Brasport.
Timmerman, M. (2000a). rtos market overview – a follow up. Dedicated Systems Magazine.
Timmerman, M. (2000b). rtos market survey – preliminary results. Dedicated Systems Magazine.
Timmerman, M. (2001). What makes a good rtos. Technical report, Dedicated Systems. Timmerman, M., Beneden, B. V., and Uhres, L. (1998). rtos evaluations kick off!.
Real-Time Magazine, 98-3:6–10.
Viswanathan, S. (2006). Understanding the windows ce variable tick timer. Technical report, Microsoft Corp.
Weinberg, B. (2001). embedded linux – ready for real time. Third Real-Time Linux Workshop, (3).
Wolf, W. (2007). the embedded systems landscape. Computer, 40(10):29–31.
Yodaiken, V. (1999). The RTLinux manifesto. In Proc. of The 5th Linux Expo, Raleigh, NC.”
Cite This Work
To export a reference to this article please select a referencing stye below:
Related ServicesView all
Related ContentAll Tags
Content relating to: "Computing"
Computing is a term that describes the use of computers to process information. Key aspects of Computing are hardware, software, and processing through algorithms.
Differentiation in the Computing Classroom
Differentiation in the computing classroom NO594721 Contents Abstract / Executive Summary………………………………………̷...
Optimized Task Scheduling Algorithm for Cloud Computing Environment
Optimized Task Scheduling Algorithm for cloud computing environment Abstract Cloud Computing is a rapidly growing technology and it offers online accessible resources to the users. These ...
DMCA / Removal Request
If you are the original writer of this dissertation and no longer wish to have your work published on the UKDiss.com website then please: