Real-Time Operating Systems
RTOS
BY Abebe B.
For Embedded systems
Real-Time Systems
• Result in severe consequences if logical
and timing correctness are not met
• Two types exist
– Soft real-time
• Tasks are performed as fast as possible
• Late completion of jobs is undesirable but not
fatal.
• System performance degrades as more & more
jobs miss deadlines.
Real-Time Systems (cont.)
– Hard real-time
• Tasks have to be performed on time
• Failure to meet deadlines is fatal
• Example :
– Flight Control System
Hard and Soft Real Time Systems
(Operational Definition)
• Hard Real Time System
– Validation by provably correct procedures
or extensive simulation that the system
always meets the timings constraints
• Soft Real Time System
– Demonstration of jobs meeting some
statistical constraints suffices.
• Example – Multimedia System
– 25 frames per second on an average
Most Real-Time Systems are
embedded
• An embedded system is a computer built into
a system but not seen by users as being a
computer
• Examples
– FAX machines
– Copiers
– Printers
– Scanners
– Routers
– Robots
Role of an OS in Real Time Systems
• Standalone Applications
– Often no OS involved
– Micro controller based Embedded Systems
• Some Real Time Applications are huge &
complex
– Multiple threads
– Complicated Synchronization Requirements
– File system / Network / Windowing support
– OS primitives reduce the software design time
Features of Real Time OS
(RTOS)
• Scheduling.
• Resource Allocation.
• Interrupt Handling.
• Other issues like kernel size.
Scheduling in RTOS
• More information about the tasks are
known
– Number of tasks
– Resource Requirements
– Execution time
– Deadlines
• Being a more deterministic system
better scheduling algorithms can be
devised.
Scheduling Algorithms in RTOS
• Clock Driven Scheduling
• Weighted Round Robin Scheduling
• Priority Scheduling
Scheduling Algorithms in RTOS (cont.)
• Clock Driven
– All parameters about jobs (execution
time/deadline) known in advance.
– Schedule can be computed offline or at
some regular time instances.
– Minimal runtime overhead.
– Not suitable for many applications.
Scheduling Algorithms in RTOS (cont.)
• Weighted Round Robin
– Jobs scheduled in FIFO manner
– Time quantum given to jobs is proportional to it’s
weight
Scheduling Algorithms in RTOS (cont.)
• Priority Scheduling
– Processor never left idle when there are
ready tasks
– Processor allocated to processes according
to priorities
– Priorities
• Static - at design time
• Dynamic - at runtime
Priority Scheduling
• Earliest Deadline First (EDF)
– Process with earliest deadline given highest
priority
• Least Slack Time First (LSF)
– slack = relative deadline – execution left
• Rate Monotonic Scheduling (RMS)
– For periodic tasks
– Tasks priority inversely proportional to it’s period
Schedulers
• Also called “dispatchers”
• Schedulers are parts of the kernel
responsible for determining which task
runs next
• Most real-time kernels use priority-
based scheduling
– Each task is assigned a priority based on its
importance
– The priority is application-specific
Preemptive Kernels
• The highest-priority task ready to run
is always given control of the CPU
– If an ISR makes a higher-priority task
ready, the higher-priority task is resumed
(instead of the interrupted task)
• Most commercial real-time kernels are
preemptive
Preemptive Kernels (cont.)
Advantages of Preemptive
Kernels
• Execution of the highest-priority task
is deterministic
Resource Allocation in RTOS
• Resource Allocation
– The issues with scheduling applicable here.
– Resources can be allocated in
• Weighted Round Robin
• Priority Based
• Priority inversion problem may occur if
priority scheduling is used
Assigning Task Priorities
• Not trivial
• In most systems, not all tasks are
critical
– Non-critical tasks are obviously low-
priorities
• Most real-time systems have a
combination of soft and hard
requirements
A Technique for Assigning Task
Priorities
• Rate Monotonic Scheduling (RMS)
– Priorities are based on how often tasks
execute
Other RTOS issues
• Interrupt Latency should be very small
– Kernel has to respond to real time events
– Interrupts should be disabled for minimum
possible time
• For embedded applications Kernel Size should
be small
– Should fit in ROM
• Sophisticated features can be removed
– No Virtual Memory
– No Protection
Linux for Real Time Applications
• Scheduling
– Priority Driven Approach
• Optimize average case response time
– Interactive Processes Given Highest
Priority
• Aim to reduce response times of processes
– Real Time Processes
• Processes with high priority
• There was no notion of deadlines
Interrupt Handling in Linux
• Interrupts were disabled in ISR/critical
sections of the kernel
• There was no worst case bound on
interrupt latency avaliable
– eg: Disk Drivers might disable interrupt for
few hundred milliseconds
Interrupt Handling in Linux
(cont.)
• Linux was not suitable for Real Time
Applications
– Interrupts may be missed
Other Problems with Linux
• Processes were not preemtible in Kernel Mode
– System calls like fork take a lot of time
– High priority thread might wait for a low priority
thread to complete it’s system call
• Processes are heavy weight
– Context switch takes several hundred
microseconds
Part II
BY Abebe B.
Characteristics of a real-time
operating system
• Real-time operating systems generally
have the following characteristics:
– Small footprint. Compared to general
OSes, real-time operating systems are
lightweight.
– High performance. RTOSes are typically
fast and responsive.
– Determinism. Repeating inputs end in the
same output.
Cont.…
• Safety and security. Safety-critical and
security standards are typically the highest
priority, as RTOSes are frequently used in
critical systems.
• Priority-based scheduling.Tasks that are
assigned a high priority are executed first
followed by lower-priority jobs.
• Timing information. RTOSes are responsible
for timing and providing application
programming interface
What are Real-Time Operating
System?
There are several examples of RTOS that
are commonly used in embedded systems:
• FreeRTOS
• VxWorks
• QNX
• ThreadX
• Micrium µC/OS
• etc
What are the Best RTOS for
Embedded Systems?
• Choosing the best RTOS for an embedded
system depends on
– the specific requirements of the project,
– Including;
• size of the system,
• performance,
• memory footprint,
• available resources, and real time
requirements.
What are the Best RTOS for
Embedded Systems?
• FreeRTOS:
– It is a popular open-source, real-time
operating system that is designed to be small,
portable, and easy to use.
– FreeRTOS provides a rich set of features,
including task management, interrupt
handling, and synchronization mechanisms.
– It is widely used in various industries,
including automotive, aerospace, and
consumer electronics.
https://www.freertos.org/index.html
What are the Best RTOS for
Embedded Systems?
• Micrium µC/OS:
– It is a scalable, real-time operating
system that provides a robust set of
features for embedded systems.
Micrium µC/OS is widely used in
various industries, including medical
devices, industrial automation, and
telecommunications.
https://blackberry.qnx.com/en
What are the Best RTOS for
Embedded Systems?
• ThreadX:
– It is a small, fast, and efficient real-time
operating system that provides a reliable and
predictable environment for running real-
time applications.
– ThreadX is widely used in various industries,
including automotive, aerospace, and
consumer electronics.
https://www.embeddedtechnology.com/doc/threadx
-rtos-0001
What are the Best RTOS for
Embedded Systems?
• VxWorks:
– It is a real-time operating system that
provides a robust set of features for
embedded systems.
– VxWorks is widely used in various industries,
including aerospace, defense, and
telecommunications.
– For nearly 35 years, VxWorks has been used to
ensure the security, safety, and reliability you need to
design and build mission-critical embedded systems
that simply must work.
https://www.windriver.com/products/vxworks
What are the Best RTOS for
Embedded Systems?
• QNX:
– It is a real-time operating system that
provides a reliable and predictable
environment for running real-time
applications.
– QNX is widely used in various industries,
including automotive, medical devices,
and industrial automation.
Description and Application
RTOS Description Common Applications
FreeRTOS
An open-source RTOS with a lightweight
kernel. Widely used in embedded systems
and microcontrollers.
Embedded devices, IoT,
satellites, drones, robotics,
industrial automation.
VxWorks
A commercial RTOS known for reliability
and scalability. Used in aerospace,
automotive, and more.
Aerospace systems, automotive
control units, industrial
machinery.
QNX
Commercial RTOS with robustness and
fault tolerance. Supports multi-core
processors.
Automotive infotainment,
medical devices, industrial
automation.
ThreadX
Compact and efficient RTOS suitable for
resource-constrained devices.
Consumer electronics, networking
equipment, IoT devices.
Nucleus RTOS
Small-footprint RTOS by Mentor Graphics.
Used in various embedded systems.
Telecommunications, automotive,
consumer electronics.
 These RTOS options cater to different needs, from open-source flexibility
to commercial reliability, making them essential for time-critical applications.
Compare
RTOS Description Pros Cons
FreeRTOS
An open-source RTOS with a
lightweight kernel. Widely used in
embedded systems and
microcontrollers.
- Open-source: Easily accessible
and customizable.
- Small footprint: Suitable for
resource-constrained devices.
- Limited features: Basic
functionality; lacks some
advanced features. -
Community support: May
vary in quality.
VxWorks
A commercial RTOS known for
reliability and scalability. Used in
aerospace, automotive, and more.
- Robustness: Proven track record
in critical applications. -
Scalability: Supports complex
systems.
- Cost: Commercial license
required. - Learning
curve: Complex
configuration and setup.
QNX
Commercial RTOS with robustness
and fault tolerance. Supports multi-
core processors.
- Fault tolerance: High reliability
and fault recovery. - Multi-core
support: Efficient utilization.
- Cost: Commercial license
required. - Vendor
dependency: Tied to
BlackBerry.
ThreadX
Compact and efficient RTOS
suitable for resource-constrained
devices.
- Low overhead: Minimal impact
on system resources. - Certified:
Used in safety-critical
applications.
- Proprietary: Closed-
source with licensing fees. -
Limited community:
Smaller user base.
Nucleus
RTOS
Small-footprint RTOS by Mentor
Graphics. Used in various
embedded systems.
- Small footprint: Ideal for
memory-constrained devices. -
Scalability: Supports various
architectures.
- Commercial license:
Requires licensing. -
Vendor-specific: Tied to
Mentor Graphics.
Next>>>Hardware Elements of Embedded System

Real-Time Operating Systems Real-Time Operating Systems RTOS .ppt

  • 1.
    Real-Time Operating Systems RTOS BYAbebe B. For Embedded systems
  • 2.
    Real-Time Systems • Resultin severe consequences if logical and timing correctness are not met • Two types exist – Soft real-time • Tasks are performed as fast as possible • Late completion of jobs is undesirable but not fatal. • System performance degrades as more & more jobs miss deadlines.
  • 3.
    Real-Time Systems (cont.) –Hard real-time • Tasks have to be performed on time • Failure to meet deadlines is fatal • Example : – Flight Control System
  • 4.
    Hard and SoftReal Time Systems (Operational Definition) • Hard Real Time System – Validation by provably correct procedures or extensive simulation that the system always meets the timings constraints • Soft Real Time System – Demonstration of jobs meeting some statistical constraints suffices. • Example – Multimedia System – 25 frames per second on an average
  • 5.
    Most Real-Time Systemsare embedded • An embedded system is a computer built into a system but not seen by users as being a computer • Examples – FAX machines – Copiers – Printers – Scanners – Routers – Robots
  • 6.
    Role of anOS in Real Time Systems • Standalone Applications – Often no OS involved – Micro controller based Embedded Systems • Some Real Time Applications are huge & complex – Multiple threads – Complicated Synchronization Requirements – File system / Network / Windowing support – OS primitives reduce the software design time
  • 7.
    Features of RealTime OS (RTOS) • Scheduling. • Resource Allocation. • Interrupt Handling. • Other issues like kernel size.
  • 8.
    Scheduling in RTOS •More information about the tasks are known – Number of tasks – Resource Requirements – Execution time – Deadlines • Being a more deterministic system better scheduling algorithms can be devised.
  • 9.
    Scheduling Algorithms inRTOS • Clock Driven Scheduling • Weighted Round Robin Scheduling • Priority Scheduling
  • 10.
    Scheduling Algorithms inRTOS (cont.) • Clock Driven – All parameters about jobs (execution time/deadline) known in advance. – Schedule can be computed offline or at some regular time instances. – Minimal runtime overhead. – Not suitable for many applications.
  • 11.
    Scheduling Algorithms inRTOS (cont.) • Weighted Round Robin – Jobs scheduled in FIFO manner – Time quantum given to jobs is proportional to it’s weight
  • 12.
    Scheduling Algorithms inRTOS (cont.) • Priority Scheduling – Processor never left idle when there are ready tasks – Processor allocated to processes according to priorities – Priorities • Static - at design time • Dynamic - at runtime
  • 13.
    Priority Scheduling • EarliestDeadline First (EDF) – Process with earliest deadline given highest priority • Least Slack Time First (LSF) – slack = relative deadline – execution left • Rate Monotonic Scheduling (RMS) – For periodic tasks – Tasks priority inversely proportional to it’s period
  • 14.
    Schedulers • Also called“dispatchers” • Schedulers are parts of the kernel responsible for determining which task runs next • Most real-time kernels use priority- based scheduling – Each task is assigned a priority based on its importance – The priority is application-specific
  • 15.
    Preemptive Kernels • Thehighest-priority task ready to run is always given control of the CPU – If an ISR makes a higher-priority task ready, the higher-priority task is resumed (instead of the interrupted task) • Most commercial real-time kernels are preemptive
  • 16.
  • 17.
    Advantages of Preemptive Kernels •Execution of the highest-priority task is deterministic
  • 18.
    Resource Allocation inRTOS • Resource Allocation – The issues with scheduling applicable here. – Resources can be allocated in • Weighted Round Robin • Priority Based • Priority inversion problem may occur if priority scheduling is used
  • 19.
    Assigning Task Priorities •Not trivial • In most systems, not all tasks are critical – Non-critical tasks are obviously low- priorities • Most real-time systems have a combination of soft and hard requirements
  • 20.
    A Technique forAssigning Task Priorities • Rate Monotonic Scheduling (RMS) – Priorities are based on how often tasks execute
  • 21.
    Other RTOS issues •Interrupt Latency should be very small – Kernel has to respond to real time events – Interrupts should be disabled for minimum possible time • For embedded applications Kernel Size should be small – Should fit in ROM • Sophisticated features can be removed – No Virtual Memory – No Protection
  • 22.
    Linux for RealTime Applications • Scheduling – Priority Driven Approach • Optimize average case response time – Interactive Processes Given Highest Priority • Aim to reduce response times of processes – Real Time Processes • Processes with high priority • There was no notion of deadlines
  • 23.
    Interrupt Handling inLinux • Interrupts were disabled in ISR/critical sections of the kernel • There was no worst case bound on interrupt latency avaliable – eg: Disk Drivers might disable interrupt for few hundred milliseconds
  • 24.
    Interrupt Handling inLinux (cont.) • Linux was not suitable for Real Time Applications – Interrupts may be missed
  • 25.
    Other Problems withLinux • Processes were not preemtible in Kernel Mode – System calls like fork take a lot of time – High priority thread might wait for a low priority thread to complete it’s system call • Processes are heavy weight – Context switch takes several hundred microseconds
  • 26.
  • 27.
    Characteristics of areal-time operating system • Real-time operating systems generally have the following characteristics: – Small footprint. Compared to general OSes, real-time operating systems are lightweight. – High performance. RTOSes are typically fast and responsive. – Determinism. Repeating inputs end in the same output.
  • 28.
    Cont.… • Safety andsecurity. Safety-critical and security standards are typically the highest priority, as RTOSes are frequently used in critical systems. • Priority-based scheduling.Tasks that are assigned a high priority are executed first followed by lower-priority jobs. • Timing information. RTOSes are responsible for timing and providing application programming interface
  • 29.
    What are Real-TimeOperating System? There are several examples of RTOS that are commonly used in embedded systems: • FreeRTOS • VxWorks • QNX • ThreadX • Micrium µC/OS • etc
  • 30.
    What are theBest RTOS for Embedded Systems? • Choosing the best RTOS for an embedded system depends on – the specific requirements of the project, – Including; • size of the system, • performance, • memory footprint, • available resources, and real time requirements.
  • 31.
    What are theBest RTOS for Embedded Systems? • FreeRTOS: – It is a popular open-source, real-time operating system that is designed to be small, portable, and easy to use. – FreeRTOS provides a rich set of features, including task management, interrupt handling, and synchronization mechanisms. – It is widely used in various industries, including automotive, aerospace, and consumer electronics. https://www.freertos.org/index.html
  • 32.
    What are theBest RTOS for Embedded Systems? • Micrium µC/OS: – It is a scalable, real-time operating system that provides a robust set of features for embedded systems. Micrium µC/OS is widely used in various industries, including medical devices, industrial automation, and telecommunications. https://blackberry.qnx.com/en
  • 33.
    What are theBest RTOS for Embedded Systems? • ThreadX: – It is a small, fast, and efficient real-time operating system that provides a reliable and predictable environment for running real- time applications. – ThreadX is widely used in various industries, including automotive, aerospace, and consumer electronics. https://www.embeddedtechnology.com/doc/threadx -rtos-0001
  • 34.
    What are theBest RTOS for Embedded Systems? • VxWorks: – It is a real-time operating system that provides a robust set of features for embedded systems. – VxWorks is widely used in various industries, including aerospace, defense, and telecommunications. – For nearly 35 years, VxWorks has been used to ensure the security, safety, and reliability you need to design and build mission-critical embedded systems that simply must work. https://www.windriver.com/products/vxworks
  • 35.
    What are theBest RTOS for Embedded Systems? • QNX: – It is a real-time operating system that provides a reliable and predictable environment for running real-time applications. – QNX is widely used in various industries, including automotive, medical devices, and industrial automation.
  • 36.
    Description and Application RTOSDescription Common Applications FreeRTOS An open-source RTOS with a lightweight kernel. Widely used in embedded systems and microcontrollers. Embedded devices, IoT, satellites, drones, robotics, industrial automation. VxWorks A commercial RTOS known for reliability and scalability. Used in aerospace, automotive, and more. Aerospace systems, automotive control units, industrial machinery. QNX Commercial RTOS with robustness and fault tolerance. Supports multi-core processors. Automotive infotainment, medical devices, industrial automation. ThreadX Compact and efficient RTOS suitable for resource-constrained devices. Consumer electronics, networking equipment, IoT devices. Nucleus RTOS Small-footprint RTOS by Mentor Graphics. Used in various embedded systems. Telecommunications, automotive, consumer electronics.  These RTOS options cater to different needs, from open-source flexibility to commercial reliability, making them essential for time-critical applications.
  • 37.
    Compare RTOS Description ProsCons FreeRTOS An open-source RTOS with a lightweight kernel. Widely used in embedded systems and microcontrollers. - Open-source: Easily accessible and customizable. - Small footprint: Suitable for resource-constrained devices. - Limited features: Basic functionality; lacks some advanced features. - Community support: May vary in quality. VxWorks A commercial RTOS known for reliability and scalability. Used in aerospace, automotive, and more. - Robustness: Proven track record in critical applications. - Scalability: Supports complex systems. - Cost: Commercial license required. - Learning curve: Complex configuration and setup. QNX Commercial RTOS with robustness and fault tolerance. Supports multi- core processors. - Fault tolerance: High reliability and fault recovery. - Multi-core support: Efficient utilization. - Cost: Commercial license required. - Vendor dependency: Tied to BlackBerry. ThreadX Compact and efficient RTOS suitable for resource-constrained devices. - Low overhead: Minimal impact on system resources. - Certified: Used in safety-critical applications. - Proprietary: Closed- source with licensing fees. - Limited community: Smaller user base. Nucleus RTOS Small-footprint RTOS by Mentor Graphics. Used in various embedded systems. - Small footprint: Ideal for memory-constrained devices. - Scalability: Supports various architectures. - Commercial license: Requires licensing. - Vendor-specific: Tied to Mentor Graphics.
  • 38.

Editor's Notes

  • #37 Aerospace Systems: Aerospace systems refer to a wide range of technologies, vehicles, and equipment related to both aeronautics (the study of flight within Earth’s atmosphere) and astronautics (the study of space travel beyond Earth’s atmosphere). These systems encompass everything from commercial airplanes and satellites to rockets, drones, and spacecraft. Aerospace systems play a critical role in transportation, communication, scientific exploration, national defense, and more.