Rotationsauflösende Laserspektroskopie - CFEL at DESY
Rotationsauflösende Laserspektroskopie - CFEL at DESY
Rotationsauflösende Laserspektroskopie - CFEL at DESY
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
84 11. Die entwickelte Software zur D<strong>at</strong>enerfassung<br />
im technisch-n<strong>at</strong>urwissenschaftlichen Bereich h<strong>at</strong>. Zudem war es zum Zeitpunkt<br />
der Entscheidung das deutlich ausgereiftere Produkt (und ist es wohl<br />
noch immer). Zunächst wurde das System auf Real-Time Linux Version 0.5<br />
aus der Arbeitsgruppe Yodaiken [12–14, 251, 252] entwickelt. Später wurde<br />
das System auf die Variante RTAI der Arbeitsgruppe Mantegazza [22] übertragen,<br />
da diese für unser Projekt besser optimierte Zeitscheibenalgorithmen<br />
verwendet und vielseitigere Funktionen zum Prozessstart und der Interprozesskommunik<strong>at</strong>ion<br />
bietet. Zur Zeit arbeitet das System mit RTAI in der Version<br />
1.3 auf einem Linux-Kern in der Version 2.2.14.<br />
Neben den Echtzeitprozessen steht bei diesem System ein normales Linuxsystem<br />
als Prozess niedrigster Priorität zur Verfügung. Somit können die<br />
vielfältigen Programme und Entwicklungswerkzeuge, die für dieses System<br />
vorhanden sind, verwendet werden. Auch die grafische Benutzeroberfläche<br />
der D<strong>at</strong>enerfassungssoftware läuft als normaler Linuxprozess vide infra.<br />
Aufgrund der freien Verfügbarkeit und der aktiven Weiterentwicklung<br />
in den Arbeitsgruppen Yodaiken und Mantegazza sowie weltweit über das<br />
Internet ist das Betriebssystem auch gut und und in aller Breite getestet.<br />
Eventuell dennoch auftretende Fehler werden durch die Entwicklergemeinde<br />
schnell behoben. 1<br />
11.1.1 LEISTUNGSMERKMALE<br />
In der eingesetzten RTAI-Version wird ein Round-Robin Zeitscheibenalgorithmus<br />
eingesetzt, 2 zusätzlich werden Implementierungsmöglichkeiten für<br />
Unterbrechungsbehandlungsroutinen zur Verfügung gestellt. Zur Kommunik<strong>at</strong>ion<br />
zwischen Betriebssystemkern und Anwendungsprozessen können<br />
Queues und shared memory eingesetzt werden. Für dieses Projekt kann jede<br />
Variante des Kerns eingesetzt werden, die einen Scheduler für periodische<br />
und unterbrechungsbedingte Echtzeitprozesse sowie Queues zur Verfügung<br />
stellt. Zu Beachten ist insbesondere die Granularität und Präzision<br />
der Zeitscheibenverteilung für das Modul rt_hidaq sowie die effiziente Um-<br />
1 Im allgemeinen reicht eine Anfrage in den Email-Listen und innerhalb weniger Stunden oder Tage<br />
ist eine Lösung des Problems gefunden.<br />
2 Der verwendete Algorithmus verwaltet eine Liste aller Echtzeittasks, in der st<strong>at</strong>ische Prioritäten<br />
der einzelnen Prozesse sowie ihr St<strong>at</strong>us („bereit“, „wartend“, „laufend“, „angehalten“, usw.)<br />
verwaltet werden. Bei jedem Aufruf der Verteilungsfunktion (rt_schedule) werden – vereinfacht<br />
dargestellt – alle laufbereiten Prozesse gesucht und derjenige dieser Prozesse, der am längsten<br />
nicht mehr gelaufen ist, gestartet. Zum genaueren Verständnis dieses Algorithmus sollte der<br />
Sourcecode herangezogen werden.