XOberon
CS-474-2 Fall 2002 Dr. Abzug
Jeremy BrukerJeremy Carbaugh
Jeff HensleyDrew 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
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)
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
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.
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
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
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
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.
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
Synchronization
• Accomplished through Synchronizer class
• Provides a “mutual exclusion primitive” for locking and signaling
• Tracks usage so locks held by trapped tasks are released
Memory Management
• Problems to overcome
• Memory management schemes
• Heap Manager
• Dynamic linking and loading
Problems to Overcome
• Separate address spaces
• Illegal pointer operations
Memory Management Schemes
• Paging
• Virtual address space (232 bytes)
• Solves:– Nil-checks– Stack-overflow– Noncacheable DMA ranges– Unloaded module references
Heap Manager
• Garbage Collector– Non-realtime task– Variable priority
• Mark-and-Sweep algorithm– Interruptible– Collaborates between garbage collector and running
tasks
Dynamic Linking and Loading
• Module loading
– Usually less than 32 KB in size
– Checked for version-consistency
– Dynamically linked
• Module removal
Host and Target• Host runs on most commercial OS
• Win95/winNT
• Sun/Unix
• Oberon 2 programming environment
• Target System
• Motorola boards and Power PC
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
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
Future Plans for XOberon
• Addition of a real-time compatible incremental garbage collector
• Off-line execution time profiling
• Java Support
• ActiveX visualization tools
XOberon - Summary
• XOberon provides a reliable real-time execution environment
• Runs embedded applications used in high-demanding environments
• Low system overhead