Real-Time Operating Systems Rtos
Real-Time Operating Systems Rtos
RTOS
• 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.
• 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.)
• 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