Real time operating systems an introduction
1 / 30

Real-time Operating Systems - PowerPoint PPT Presentation

  • Updated On :

Real-time Operating Systems – An Introduction. Swaminathan Sivasubramanian and Sai Sudhir A [email protected] [email protected] outline. Outline. Capabilities of RTOS Some Services in detail Types of RTOS Case studies. What is an RTOS.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Real-time Operating Systems ' - elina

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Real time operating systems an introduction l.jpg

Real-time Operating Systems – An Introduction

Swaminathan Sivasubramanian and Sai Sudhir A

[email protected] [email protected]

Outline l.jpg



  • Capabilities of RTOS

  • Some Services in detail

  • Types of RTOS

  • Case studies

What is an rtos l.jpg
What is an RTOS

  • Provides efficient mechanisms and services for real-time scheduling and resource management

  • Must keep its own time and resource consumption predictable and accountable

  • Used in the following areas such as:

    • Embedded Systems or Industrial Control Systems

    • Parallel and Distributed Systems

  • E.g. LynxOS, VxWorks, pSoS, Spring, ARTS, Maruti, MARS

Capabilities l.jpg

  • Conformance to Standards (Real-Time POSIX)

    • POSIX- Portable Operating Systems Interface, an API standard

    • Defines Real-time and thread extensions for RTOS

    • Prioritized scheduling, signals, high-resolution timer, IPC primitives

    • Creation and management of threads

Capabilities contd l.jpg
Capabilities (contd..)

  • Modularity and Scalability

    • Footprint of the kernel – how huge is the kernel?

    • Can the kernel be scaled down to fit in the ROM of the system for small embedded applications

    • I/O, File and Networking services provided by additional components

Rtos capabilities contd l.jpg
RTOS – Capabilities (contd..)

  • Type of RTOS kernel

    • Monolithic kernel – tightly integrated services, less run-time overhead but not extensible

    • Microkernel – high run-time overhead but highly extensible

Rtos capabilities contd7 l.jpg
RTOS – Capabilities (contd..)

  • Speed and Efficiency

    • Run-time overhead – most of the modern RTOSes are microkernels (more overhead), but unlike traditional microkernels they’ve less overhead

    • Run-time overhead is decreased by reducing the unnecessary context switch

    • Important timings such as context switch time, interrupt latency, semaphore get/release latency must be minimum

Capabilities contd8 l.jpg
Capabilities (contd..)

  • System Calls

    • Non preemptable portions of kernel functions necessary for mutual exclusion are highly optimized and made short and deterministic

  • Interrupt Handling

    • Non preemptable portions of the interrupt handler routines are kept small and deterministic

    • Interrupt handlers are scheduled and executed at appropriate priority

Rtos capabilities contd9 l.jpg
RTOS – Capabilities (contd..)

  • Scheduling

    • Type of scheduling supported – RMS or EDF

    • Number of priority levels supported – 32 to be RT-POSIX compliant; many offer between 128-256

    • Type of scheduling for equal priority threads – FIFO or Round-Robin

    • Thread priorities be changed at run-time

Rtos capabilities contd10 l.jpg
RTOS – Capabilities (contd..)

  • Priority Inversion Control

    • Does it support Priority Inheritance or Ceiling protocols for scheduling?

    • You can disable it to save the overhead of these mechanisms

  • Clock and Timer Resolution

    • Provides fine timer resolution

Capabilities contd11 l.jpg
Capabilities (contd..)

  • Memory Management

    • Can provide virtual-to-physical address mapping

    • Traditionally does not do paging

    • Can offer Memory Protection

  • Networking

    • Type of networking supported – deterministic network stack or not, support for TCP/IP

Some services l.jpg
Some Services

  • Timer Services

    • System has at least one clock device consisting of a counter, a timer queue and an interrupt handler

    • Content of counter gives current time, timer queue has pending timers associated with the clock device

    • S/W clock associated with clock device, the latter raises interrupts periodically and kernel updates S/W clock according to current time

Timer services contd l.jpg
Timer Services (contd..)

  • Resolution of S/W clock equal to period of these interrupts (typically in milliseconds- not enough for most RT applns.)

  • Finer the resolution, larger the amount of time kernel spends in responding to interrupts thus limiting the resolution

  • Some implementations allow user threads to read the H/W clock directly for finer resolution by mapping H/W clock on to address space of application e.g. Pentium time stamp counter

Some services contd l.jpg
Some Services (contd..)

  • Scheduling (Fixed priority)

    • 256 priority levels

    • Assigned priority- When the thread is created according to scheduling algorithm

    • Current priority- Thread can inherit higher priority

    • Ready queue for each priority level, thread placed in queue corresponding to its current priority

Scheduling contd l.jpg
Scheduling (contd..)

  • Within each queue round-robin or FIFO scheduling

  • Thread should change its own priority to support Dynamic priority scheduling, very expensive if this capability is provided through a system call

  • So its better for the kernel to provide its own dynamic priority scheduling data structures

Some services contd16 l.jpg
Some Services (contd..)

  • Memory Management

    • Virtual Memory Mapping - Embedded RT systems may not support this, system directly creates physically contiguous blocks of memory, but fragmentation can occur

    • Memory Locking – Paging introduces unpredictability, RTOS can support paging so that memory demanding applns (editors, debuggers) can co-exist

Memory management contd l.jpg
Memory management (contd..)

  • Memory Protection – Many RTOS don’t provide protected address space for simplicity and light weight of system calls

  • To control paging, application can pin its pages in memory so that they aren’t swapped out

  • But change in one module might require retesting the entire system, so RTOS provides the application the choices in memory management

Types of rtos l.jpg

  • Commercial RTOS

    • e.g., VxWorks (Wind River Systems), LynxOS (Lynux Works)

  • Real-time flavor to commercial OS

    • e.g., RT-Linux, KURT (Univ Kansas)

  • Research kernels

    • e.g., HARTS (UMich), Spring (UMass)

Lynx os l.jpg
Lynx OS

  • Microkernel design

    • Means the kernel footprint is small

    • Only 28 kilobytes in size

  • The small kernel provides essential services in scheduling, interrupt dispatching and synchronization

  • The other services are provided by kernel lightweight service modules, called Kernel Plug-Ins (KPIs)

Lynx os contd l.jpg
Lynx Os (contd..)

  • New KPIs can be added to the microkernel and can be configured to support I/O, file systems, TCP/IP, streams and sockets

  • Here KPIs are multi-threaded, which means each KPI can create as many thread as it wants

Lynx os contd21 l.jpg
Lynx OS (contd..)

  • There is no context switch when sending a message to a KPI

    • For example, when a RFS (Request for Service) message is sent to a File System KPI, this does not request a context switch

    • Hence run-time overhead is minimum

    • Further, inter KPI communication incurs minimal overhead with it consuming only very few instructions

Lynx os contd22 l.jpg
Lynx OS (contd..)

  • Lynx OS is a self hosted system – wherein development can be done in the same system

  • In such a system, there is a need for protecting the OS from such huge memory consuming applications (compilers, debuggers)

  • LynxOS offers memory protection through hardware MMUs

Lynx os contd23 l.jpg
Lynx OS (contd..)

  • Applications make I/O requests to I/O system through system calls

  • Kernel directs I/O request to the device driver

  • Each device driver has an interrupt handler and kernel thread

Lynx os contd24 l.jpg
Lynx OS (contd..)

  • The interrupt handler carries the first step of interrupt handling

  • If it does not complete the processing, it sets an asynchronous trap to the kernel

  • Later, when kernel can respond to the software interrupt, it schedules an instance of the kernel thread to complete the interrupt processing – Priority Tracking

Vxworks l.jpg

  • Monolithic Kernel

    • Leads to an improved performance with less run-time overhead

    • However the scalability is poor I.e. the footprint of the kernel is affected a little.

  • Provides interfaces specified by RT-POSIX standards in addition to its own APIs

  • Though not a multiprocessor OS, provides shared-memory objects: shared binary and counting semaphores

Vxworks contd l.jpg
VxWorks (contd..)

  • It has the standard MMU as a modern OS

    • Provides basic virtual-to-physical memory mapping

    • Allows to add new mappings and make portions of memory non cacheable

    • When memory boards are added dynamically, to increase the address space for interprocess communication

    • The data is made non cacheable, to ensure cache consistency

Vxworks contd27 l.jpg
VxWorks (contd..)

  • Reduced Context Switch time

    • Saves only those register windows that are actually in use (on a Sparc)

    • When a task’s context is restored, only the relevant register window is restored

    • To increase response time, it saves the register windows in a register cache – useful for recurring tasks

Arts distributed os l.jpg
ARTS - Distributed OS

  • Distributed real-time OS – provides a predictable distributed real-time computing environment

Arts contd l.jpg
ARTS (Contd..)

  • Distributed computing environment

    • Heterogeneous computing environment

    • Need for global view of the system and resources

    • No over-utilization and under-utilization of a particular system in a distributed system

    • Guaranteeing predictability in such a system is difficult than in multiprocessor system case

    • How to synchronize the clocks in a distributed system?

Arts contd30 l.jpg
ARTS (contd..)

  • Scheduling

    • Integrated time-driven scheduler

    • ITDS scheduler provides an interface between the scheduling policies and the rest of the operating system

    • Allows different scheduling policies to exist (though only one can be used at a time)

  • Communication scheduling

    • Extended RMS for communication scheduling – integrating message and processor scheduling