u I-RT04-REALZEITSYSTEME - VL8

I-RT04-HOME

  1. Einführung

  2. Ein Realzeitbeispiel mit Linux und RTAI

  3. Linux und RTAI - Kurzcharakteristik

  4. Testfragen und Übungaufgaben


I-RT04 REALZEITSYSTEME WS04
VL8: Realzeitbetriebssysteme: Ein Beispiel - Linux - RTAI

    Achtung : Skript gibt den mündlichen Vortrag nur teilweise wieder !!! 
	Achtung : Skript noch nicht abgeschlossen !!!
                        

AUTHOR: Gerd Döben-Henisch
DATE OF FIRST GENERATION: September-16, 2003
DATE OF LAST CHANGE: Jan-23, 2005
EMAIL: doeben_at_fb2.fh-frankfurt.de



1. Einführung

Die bisherige Vorlesung hat relativ abstrakt Grundbegriffe über Realzeitsysteme vermittelt, Systeme, die sich letztlich auf die Begriffe Ereignisse, Tasks und Resourcen zurückführen lassen. Für eine theoretische Behandlung bildet dies eine unausweichliche Grundlage. Für eine weitere Vertiefung dieser theoretischen Behandlung sei verwiesen auf die Bücher [COTTET et al 2002], [KLEIN et al 1993] und [KOPETZ 2001].

In den folgenden Vorlesungen sollen nun konkrete Systeme betrachtet werden, und zwar speziell das Real Time Application Interface [RTAI] wie es im Kontext des Linux Betriebssystems zum Einsatz kommt.

Momentan sind noch kaum Veröffentlichungen bekannt, in denen die Installation und Nutzung von RTAI auch für Einsteiger beschrieben wird. Herr Houssaini hatte sich vorab zum WS04 die Aufgabe gestellt, einen Einstieg für RTAI mit Linux zu erarbeiten und --wie man sehen kann-- ist dies im ersten Anlauf sehr gut gelungen. Wir werden daher in den nächsten Vorlesungen so weit wie möglich seinen Ausarbeitungen folgen.

Da das RTAI für seinen Betrieb Linux voraussetzt, müssen die Eigenschaften von Linux soweit behandelt werden, dass der Umgang mit RTAI transparent wird. Zum Einstieg betrachten wir dazu eine konkrete Realzeitanwendung, wie Sie Herr Houssaini herausgearbeitet hat.


START



2. Ein Realzeitbeispiel mit Linux und RTAI

Auf seiner Webseite entwickelt Herr Houssaini das Beispiel einer Realzeitanwendung, bei der mit Hilfe eines Überwachungsmonitor ein Patient beobachtet wird. Bei Sauerstoffmangel im Körper oder bei Herzrhythmusstörungen wird der Monitor einen Alarm auslösen. Das System dient dazu, den Patienten vor weiteren Schäden zu schützen.

Es muss schnell und sicher mit allen Situationen, in denen sich der Patient befinden kann, interagieren. Die Nutzung des System muss für den Benutzer(in diesem Fall der Arzt, Pfleger...), leicht und verständlich sein. Eine grafische Benutzeroberfläche dürfte dabei eine wichtige Rolle spielen.



monitor

Monitor



Überwachung:

Das System misst die Sättigung und den Puls durch eine Pulszählung, wobei die Impulse von einem an dem Patienten angebrachte Sensor stammen.

Überwachung der Herzfrequenz:

Das System soll dem Benutzer (in diesem Fall Arzt, Pfleger, Krankenschwester...) die Herzfrequenz auf dem Anzeigeschirm zur Verfügung stellen. Ein Wertbereich ist vorher einzustellen und ist vom Alter Abhängig (bei kleinen Kindern von 70 bis 120).

Überwachung der Sättigung:

In bestimmten Abständen soll das System die Sättigung (Sauerstoffmenge im Blut) messen (periodische Task) und in % zeigen.

Erreicht dieser Wert eine Grenze, die vorher manuell eingestellt worden ist, wird entweder der Alarm ausgelöst oder dem Patient automatisch Sauerstoff zu Verfügung gestellt. Hilft dies nicht, wird ein Alarm ausgelöst.

Akkuüberwachung :

Die Akkuleistung soll vom System kontrolliert werden, und Alarm auslösen, wenn diese zu niedrig ist. Eine Anzeigemöglichkeit soll vorhanden seien. Steuerung:

Das System soll das Sauerstoffgerät (Ventil) steuern.

Bei nicht manueller Einstellung ist der Sauerstoff zunächst abgestellt. Meldet das System einen Sauerstoffbedarf soll es zuerst Alarm schlagen (Alarmstuffe Orange), und muss gleichzeitig dafür gesorgt werden, dass der Patient mit Sauerstoff versorgt wird. Der Sauerstoff muss mit einem bestimmten Durchfluss fließen, bis die Sättigung im Körper normal wird. Geschieht dies nicht, dann soll die Alarmstufe Rot eingeschaltet werden.

Dazu gehören noch folgende Funktionen:

Betätigt der Pfleger Aktivieren und stellt er einen bestimmten Durchfluss ein, so wird das System dies übernehmen und als Default einsetzen.

Anforderungsmodell

In diesem Abschnitt wird die Beziehung Pfleger-System, Patient-System, Sauerstoffgerät-System erläutert.

Das System verfügt über Schnittstellen zum Pfleger, zum Patient und zum Sauerstoffgerät. Diese Elemente und die dazwischen fließenden Signale sind im unteren Diagramm beschrieben



monitor-requ

Monitor Anforderungen



Entwicklung und Planung eines RT-Anwendung

Bevor wir mit der Planung anfangen, sollten wir folgende Fragen beantworten:

  1. Warum erfordert diese Aufgabe ein Echtzeitsystem

  2. Was sind die Echtzeitanforderungen

  3. Wie schnell muss das System reagieren

Da es in diesem Fall um Menschenleben geht und die Folgen im Falle eines nicht fehlerfreien funktionsfähigen Systems, das System unbrauchbar wird und die Umwelt Schaden nimmt, spricht man hier von einem harten Realzeitsystem.

Zu den wichtigsten Elemente fürs System gehören:



archi

Monitor Architektur



Beschreibung der Prozesse

Nach Systemsstart werden mehrere Prozesse gestartet und aktiviert. Diese Prozesse laufen parallel zueinander. Einige sind Applikationsspezifisch andre Systemspezifisch.

Applikationsspezifische Tasks:

Systemspezifische Tasks:



archi2

Monitor Architektur 2





archi3

Monitor Architektur 3




START



3. Linux und RTAI - Kurzcharakteristik

(Wir folgen hier weitgehend wieder dem Skript von Herrn Houssaini)

Linux und Realzeit

Linux ist wie die meisten andren Betriebsysteme nicht für die Erfüllung von harten Realzeitsystembedienungen geeignet, Es kann auf Ereignisse nur in einem vordefinierten Zeitrahmen reagieren, aber das ist nicht immer der Fall. Es garantiert also nicht, dass ein Programm nach einer bestimmten Zeit Rechenzeit (CPU)erhält. Jedoch ist es möglich es zu modifizieren, so daß diese Einschränkung überwinden wird.

Einige Linux-Eigenschaften

  • Verführbarkeit des Quellcodes

  • Unterschtüzung fast aller verfügbaren Prozessplattformen

  • Minimales System zu erstellen (passt auf ein Diskette 1.44MB)

  • Embedded Tools (BusyBox....)

  • Lizenzfreie Software

  • Dynamisch Entwicklung im Internet

    Um diese Realzeitbeschränkung von Linux auszugleichen, wurden RTLinux (Real Time Linux) und RTAI (Realtime Application Interface) entwicklt.

    RTLinux:

    RT-Linux wurde im Jahr 1997 am Department of Computer Science der Universität New Mexico als Forschungsprojekt entwickelt. RTLinux selbst ist zunächst ein kleiner Echtzeitkern, der Linux in einer eigenen Task ablaufen läßt. Linux ist dabei die Idletask, die nur dann aufgerufen wird, wenn keine andere Echtzeittask lauffähig ist.

    Es ist in zahlreichen Hochschulen und -Industrieprojekten benutzt worden.

    1997 Erste Version von RTLinux Für Linux Kernel 2.0.25. Komplexes Hardware Interface. Philosophie: POSIX Kompatibilität. Patent geschützt (Jedoch frei für Forschung & Lehre)

    RTAI:

    1999 Erste Version von RTAI

    Die Linux Struktur:

    Der Kern (Kernel) ist das Herz eines Linux Systems und hat folgende Aufgaben:



    LINUX KERNEL

    Linux Kernel 1





    LINUX KERNEL 2

    Linux Kernel 2





    LINUX Dateisystem

    Linux Dateisystem



    Der Bootvorgang für Linux System

    Ein Linux System besteht hauptsichtlich aus drei Teile: