Real-Time OpReal-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operating Systems Real-Time Operatingv
2. 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.
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 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
5. 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
6. 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
7. Features of Real Time 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 in RTOS
• Clock Driven Scheduling
• Weighted Round Robin Scheduling
• Priority Scheduling
10. 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.
11. Scheduling Algorithms in RTOS (cont.)
• Weighted Round Robin
– Jobs scheduled in FIFO manner
– Time quantum given to jobs is proportional to it’s
weight
12. 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
13. 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
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
• 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
18. 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
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 for Assigning 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 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
23. 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
24. Interrupt Handling in Linux
(cont.)
• Linux was not suitable for Real Time
Applications
– Interrupts may be missed
25. 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
27. 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.
28. 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
29. 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
30. 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.
31. 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
32. 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
33. 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
34. 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
35. 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.
36. 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.
37. 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.
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.