RTOS
Design & Implementation
Swetanka Kumar Mishra & Kirti Chawla
Introduction
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
A variant of OS that operates in
constrained environment in which
computer memory and processing
power is limited. Moreover they often
need to provide their services in
definite amount of time.
Hard, Soft & Firm RTOS
Example RTOS: VxWorks, pSOS,
Nucleus, RTLinux
Structure of a RTOS
Introduction
Structure of RTOS
Components of RTOS
Applications
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
RTOS-kernel
BSP
Expectations
Examples
Custom-Hardware
Components of RTOS
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
The most important
component of RTOS is its
kernel (Monolithic & Microkernel).
BSP or Board Support
Package makes an RTOS
target-specific (Its a processor specific
code onto (processor) which we like to have our
RTOS running
).
RTOS KERNEL
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
RTOS KERNEL: Tasks(1)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
A task is basic unit of
execution in RTOS.
RTOS scheduler needs to be
deterministic ~ O(1) or O(n).
Scheduling policies that are
available in a RTOS are:
Clock
driven
Priority driven (RMS & EDF)
RTOS KERNEL: Tasks(2)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
TID
SAVED_TASK_STATE
Resource 1 (signals)
Memory
Timers
Resource 2 (events)
I/O
IPCs
Resource 3 (shared memory)
Device Drivers
Expectations
Examples
.
.
System Variables
Task Control Block
RTOS KERNEL: Tasks(3)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
RTOS KERNEL: Tasks(4)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
RTOS KERNEL: Tasks(5)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
RMS, EDF
RTOS KERNEL: Tasks(6)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
XXX_CreateTask
XXX_AddtoProcessQueue
XXX_ChangePriority
XXX_KillTask
XXX_CreateTaskQueues
RTOS KERNEL: Memory(1)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
Memory is premium in
environments where RTOS
work.
Supports Virtual Memory
(MMU) and Memory
Protection (MPU) models.
User space and Kernel space
memory.
RTOS KERNEL: Memory(2)
Introduction
Physical Address
Structure of RTOS
Virtual Address
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
PHY1
VIRT1
PHY2
VIRT2
PHY3
VIRT3
PHY4
VIRT4
.
.
.
.
.
Virtual Memory Concept
RTOS KERNEL: Memory(3)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
Virtual Memory Concept
RTOS KERNEL: Memory(4)
Introduction
Structure of RTOS
Components of RTOS
Participation of User space programs with kernel for
services and as a central pool of memory for
specialized applications.
RTOS Kernel
Tasks
Memory
Timers
P1
User Space memory
P2
I/O
IPCs
Device Drivers
Expectations
Examples
M1
M2
Kernel Space Memory
RTOS KERNEL: Memory(5)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
XXX_Kmap
XXX_PassToUserSpace
XXX_Mmap
XXX_PurgeMemory/Kfree
XXX_Kmalloc
RTOS KERNEL: Timer(1)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
Timer is software entity
derived from hardware clock.
Timer provides mechanism to
introduce task-delays and/or
to help synchronize and
provide time off-course.
Watchdog Timers,
Programmable Timers
RTOS KERNEL: Timer(2)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
RTOS KERNEL: Timer(3)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
Based upon these hardwareprogrammable timers, RTOS
kernel can use to create
software structures of timers
associated with tasks.
Scheduling, Synchronization,
time-stamping
RTOS KERNEL: Timer(4)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
XXX_SetTimer
XXX_AddtoTimerQueue
XXX_isExpired
XXX_RunAtExpiry
XXX_PurgeTimerQueue
RTOS KERNEL: I/O(1)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
I/O is slow as compared to
CPU.
I/O: Interrupt-driven, Polling,
DMA.
I/O map: Memory Space & IO
Space.
RTOS KERNEL: I/O(2)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
RTOS KERNEL: I/O(3)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
RTOS KERNEL: I/O(4)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
DMA driven I/O
RTOS KERNEL: I/O(5)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
XXX_IORead/IOWrite
XXX_IOMap/Unmap
XXX_BindInterrupt
RTOS KERNEL:
Inter-process Communication(1)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
Most of the time tasks cannot
run in isolation. They require
to talk to each other.
Synchronization, Protection
and Sharing are goals of IPC.
RTOS KERNEL:
Inter-process Communication(2)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
Semaphores
(Binary, Mutual)
Message Queues
Pipes/Named
Pipes
Shared Memory
Signals/Slots
Mail slots
Sockets/XTI
RTOS KERNEL:
Inter-process Communication(3)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
A common
shared datastructure
residing in
kernel or user
space.
Mechanism to
access it.
RTOS KERNEL:
Device Drivers(1)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
A piece of software that enables
devices connected to particular
processor, via various
interfaces.
Controls, manages and
configures devices connected to
system.
RTOS KERNEL:
Device Drivers(2)
Introduction
Structure of RTOS
Components of RTOS
Client Drivers
RTOS Kernel
Tasks
Memory
Timers
Protocol Layers
I/O
IPCs
Device Drivers
Expectations
Host Controller Drivers
Examples
Hardware
RTOS KERNEL:
Device Drivers(3)
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
A host controller driver enables
system to accept a particular type of
device.
Client drivers are device specific.
Protocol layer converts device
request to form that is understood
by corresponding host controllers
through their drivers.
Expectations from RTOS
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
Deadline-driven
Work with Dearth of Resources
Intricate I/O interfaces (Touch
panels, Push buttons )
Fail-safe and Robust
Availability
An Example RTOS
Introduction
Structure of RTOS
Components of RTOS
RTOS Kernel
Tasks
Memory
Timers
I/O
IPCs
Device Drivers
Expectations
Examples
EMERALDS architecture
Relevant books and
websites
[Link]
operating_systems_training_materials.html
Linux Device Drivers Alexander Rubini, Oreilly publications
[Link] : Dr. Dobbs Journal
[Link]
Some RTOS based Embedded Systems
[Link]
[Link]