Transcript
Page 1: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

XOberon

CS-474-2 Fall 2002 Dr. Abzug

Jeremy BrukerJeremy Carbaugh

Jeff HensleyDrew Stockdreher

Page 2: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

XOberon - Introduction

• XOberon is a real-time operating system that runs real-time and non-real-time processes– Pre-emptive multi-tasking– Deadline-drive scheduling– Dynamic linking– Garbage collection

• Used in embedded machines for robotics and industrial uses

Page 3: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Goal• The goal of XOberon is about providing a

framework for non-computer-scientists, looking for a rapid application development (RAD) tool for programming embedded applications.

• The charter of XOberon is about providing a reliable, real-time capable run-time environment with safety aspects guaranteed by the operating system.(Brega and Vestli)

Page 4: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Brief History• XOberon is a hard real-time OS

• Loosely Based on the Oberon system

• Developed at the Institute of Robotics (IFR), Swiss Federal Institute of of Technology, Zürich(ETHZ)

• Developed for high-end mechatronic products

• Written in the Oberon-2 Object Oriented programming language

Page 5: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Hardware

• Runs natively on the Motorola VME boards based on MC680x0 and the PowerPC architectures

• Newer versions only on PowerPC

• Host machine runs the Oberon-2 compiler, and transmits emitted code to the target machine via an ethernet link.

• Size: complete OS needs 1 MB ROM and 1.5 MB of RAM on the target machine.

Page 6: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Scheduling

• New paradigm of deadline-driven scheduler

• Task parameters: run method, exception handler, deadline, duration, period

• Period used only for repetitive tasks

• Deadline – latest time when results are usable

Page 7: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Scheduling – Duration/WCET

• Duration – amount of processor time needed to complete longest execution path

• Real-Time Code Analyzer – calculates longest path during compilation (WCET)

• PowerPC604 Performance Monitor

• Duration includes execution time of error handler

Page 8: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Scheduling – Real-Time

• Test for admission to system

• Task with shortest deadline runs until:– Execution completes– Another task has a shorter deadline– Task exceeds duration

Page 9: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Scheduling – Non-Real-Time

• Non-real-time tasks are referred to as threads

• Threads are executed only when no real-time tasks are pending

• Each thread has a priority

• User can choose scheduling algorithm for threads– Round-robin, priority-driven with priority aging, etc.

Page 10: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Scheduling - Overhead

• Overhead is less than one percent on base system– MVME1600 board with 100 MHz

PowerPC604

• Scales linearly for more processes

• Decreases linearly with better implementations

Page 11: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Synchronization

• Accomplished through Synchronizer class

• Provides a “mutual exclusion primitive” for locking and signaling

• Tracks usage so locks held by trapped tasks are released

Page 12: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Memory Management

• Problems to overcome

• Memory management schemes

• Heap Manager

• Dynamic linking and loading

Page 13: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Problems to Overcome

• Separate address spaces

• Illegal pointer operations

Page 14: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Memory Management Schemes

• Paging

• Virtual address space (232 bytes)

• Solves:– Nil-checks– Stack-overflow– Noncacheable DMA ranges– Unloaded module references

Page 15: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Heap Manager

• Garbage Collector– Non-realtime task– Variable priority

• Mark-and-Sweep algorithm– Interruptible– Collaborates between garbage collector and running

tasks

Page 16: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Dynamic Linking and Loading

• Module loading

– Usually less than 32 KB in size

– Checked for version-consistency

– Dynamically linked

• Module removal

Page 17: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Host and Target• Host runs on most commercial OS

• Win95/winNT

• Sun/Unix

• Oberon 2 programming environment

• Target System

• Motorola boards and Power PC

Page 18: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Applications of XOberon

• Hexaglide

– Milling machine

– Runs PowerPC604 at 100MHz

– Hard real-time processes use 89.8% of processor time

– Scheduler capable of running 19 applications and system task with only 5.5% overhead

Page 19: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Applications of Xoberon cont.

• RoboJet Cement Sprayer

• Used for spraying cement sections in a tunnel

• Uses a 6 direction of freedom joystick.

• 8 hydraulic actuators are used by the control system, that are based on XOberon

Page 20: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

Future Plans for XOberon

• Addition of a real-time compatible incremental garbage collector

• Off-line execution time profiling

• Java Support

• ActiveX visualization tools

Page 21: XOberon CS-474-2 Fall 2002 Dr. Abzug Jeremy Bruker Jeremy Carbaugh Jeff Hensley Drew Stockdreher

XOberon - Summary

• XOberon provides a reliable real-time execution environment

• Runs embedded applications used in high-demanding environments

• Low system overhead


Recommended