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

  • View
    214

  • Download
    0

Embed Size (px)

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

  • XOberonCS-474-2 Fall 2002 Dr. Abzug

    Jeremy BrukerJeremy CarbaughJeff HensleyDrew Stockdreher

  • XOberon - IntroductionXOberon is a real-time operating system that runs real-time and non-real-time processesPre-emptive multi-taskingDeadline-drive schedulingDynamic linkingGarbage collection

    Used in embedded machines for robotics and industrial uses

  • GoalThe 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 HistoryXOberon 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, Zrich(ETHZ)

    Developed for high-end mechatronic products

    Written in the Oberon-2 Object Oriented programming language

  • HardwareRuns 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.

  • SchedulingNew 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/WCETDuration 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-TimeTest for admission to system Task with shortest deadline runs until:Execution completesAnother task has a shorter deadlineTask exceeds duration

  • Scheduling Non-Real-TimeNon-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 threadsRound-robin, priority-driven with priority aging, etc.

  • Scheduling - OverheadOverhead is less than one percent on base systemMVME1600 board with 100 MHz PowerPC604

    Scales linearly for more processes

    Decreases linearly with better implementations

  • SynchronizationAccomplished through Synchronizer class

    Provides a mutual exclusion primitive for locking and signaling

    Tracks usage so locks held by trapped tasks are released

  • Memory ManagementProblems to overcomeMemory management schemesHeap ManagerDynamic linking and loading

  • Problems to OvercomeSeparate address spaces Illegal pointer operations

  • Memory Management SchemesPaging Virtual address space (232 bytes) Solves:Nil-checksStack-overflowNoncacheable DMA rangesUnloaded module references

  • Heap ManagerGarbage CollectorNon-realtime taskVariable priority Mark-and-Sweep algorithmInterruptibleCollaborates between garbage collector and running tasks

  • Dynamic Linking and LoadingModule 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 XOberonHexaglide 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 XOberonAddition of a real-time compatible incremental garbage collector

    Off-line execution time profiling Java Support ActiveX visualization tools

  • XOberon - SummaryXOberon provides a reliable real-time execution environment

    Runs embedded applications used in high-demanding environments

    Low system overhead