Real-Time Operating System Design

Download Report

Transcript Real-Time Operating System Design

Real-Time Operating System Design
Alvin AuYoung
ee290O
4/19/01
Real-Time OS Design - 1
Overview
Introduction
- Motivation
- Goals
Design Issues
Methodologies
- Priority-based Kernel
- RT extensions of timesharing systems
- Research operating systems
Case study: Java-OS
Conclusions
Real-Time OS Design - 2
Motivation
Most current operating systems are not
suitable for developing or deploying
applications with real-time constraints
i.e. scheduling policies, process
synchronization, system architecture
Real-Time OS Design - 3
Goals
Create an environment suitable for
developing applications with hard realtime constraints on task execution in a
reactive environment. Two key ideas:
Predictability: Predict direct
consequences of any scheduling decision.
Schedulability Guarantees: Verify the
schedulability of a given set of tasks.
Real-Time OS Design - 4
Design Issues
How can I guarantee predictability and
schedulability with the different
components of my system?
Architecture, Memory Management, Task
structure, Kernel, etc...
Real-Time OS Design - 5
Methodologies
Priority-based Kernels
VxWorks, OS9, pSOS
RT extensions of timesharing systems
RT-Mach, RT-Unix
Research operating systems
Spring, HARTIK
Real-Time OS Design - 6
Priority-based kernels
Objective:
- High performance for average response
time to external events.
Characteristics:
- fast context switching
- small footprint
- efficient interrupt handling
- preemptable primitives
- fast communication mechanisms
Real-Time OS Design - 7
Priority-based kernels
Driven by a real-time clock
Task Scheduling with fixed priorities
Synchronization tools, limitations
Communication protocols
Problem?
Real-Time OS Design - 8
Real-Time extensions of timesharing OS
Objective:
-Extend current (commerical) time-sharing
systems to satisfy real-time constraints.
Characteristics:
- Reuse standard peripherals and interfaces
- Speedier development
Real-Time OS Design - 9
Real-Time extensions of timesharing OS
- Reused Kernel
- Task Scheduling with fixed priorities
Tasks vs Threads? (N. Wirth)
- Re-implemented User-Level Threads
- Nonpreemptable syscalls, interrupts
problems?
Real-Time OS Design - 10
Research Operating Systems
Objective: The ability to treat tasks with
explicit timing constraints, such as periods and
deadlines
Characteristics:
- Scheduling guarantee mechanisms
- Characterize tasks with additional parameters
- Avoidance of nondeterministic blocking time
Real-Time OS Design - 11
Research Operating Systems
Case Study: Spring Kernel
Real-Time OS Design - 12
A Java Solution: JMD
A Java Kernel for Embedded Systems in
Distributed Process Control
Java Microcontrolled Device (JMD)
-
JMD applications
JMD-OS API
JMD Kernel
MicroKernel
(high level)
(low level)
Real-Time OS Design - 13
A Java Solution: Task Model
Task Methods and Behaviors:
parameterized by:
- period of execution
- deadline
- WCET
- Priority Class (1 - 10)
Variable Scheduling Algorithm
Real-Time OS Design - 14
A Java Solution: Conclusions
Not yet RTSJ compliant
Flexible Kernel provides abstraction and
possibility for future development.
Maybe in the future?
Real-Time OS Design - 15