real time operating systems an introduction l.
Skip this Video
Loading SlideShow in 5 Seconds..
Real-time Operating Systems – An Introduction PowerPoint Presentation
Download Presentation
Real-time Operating Systems – An Introduction

Loading in 2 Seconds...

play fullscreen
1 / 30

Real-time Operating Systems – An Introduction - PowerPoint PPT Presentation

  • Uploaded on

Real-time Operating Systems – An Introduction. Swaminathan Sivasubramanian and Sai Sudhir A 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

Real-time Operating Systems – An Introduction

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

Real-time Operating Systems – An Introduction

Swaminathan Sivasubramanian and Sai Sudhir A



  • Capabilities of RTOS
  • Some Services in detail
  • Types of RTOS
  • Case studies
what is an rtos
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
  • 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
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
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
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
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
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
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
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
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
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
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
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
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
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
  • 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
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
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
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
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
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
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
  • 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
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
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
ARTS - Distributed OS
  • Distributed real-time OS – provides a predictable distributed real-time computing environment
arts contd
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
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