Bevor die Hardwaresteuerung implementiert werden konnte, mußte zuerst ein geeignetes System gefunden werden, welches die nicht geringen Anforderungen der Steuerung an die Echtzeitfähigkeit des Systems erfüllt. Das genaue Einhalten des Zeittaktes, was für das Lernen und Steuern mit dem neuronalen Netz essentiell ist, führt in einem nicht echtzeitfähigen Betriebssystem zu großen Problemen. Da zur Steuerung kein spezielles Echtzeitsystem zur Verfügung stand, mußte die Steuerung mit einem Standardsystem durchgeführt werden. Windows ist für Echtzeitanwendungen prinzipiell nicht geeignet, da bei Windows 3.11 kein preemptatives Multitasking existiert, und bei Windows 95 oder NT der Prozeßwechseltakt nicht beeinflußt werden kann. Unter DOS ist es zwar möglich, wenn nur das Steuerprogramm läuft und die Hardware direkt angesteuert wird. Dazu muß das Steuerprogramm aber auch unter den eingeschränkten Möglichkeiten von DOS funktionieren, was u.a. bedeutet: kein Multitasking, nur 640 KB Speicher und 16-Bit Speichermodell.
Für unsere Steueraufgabe mit einem neuronalen Netz reicht diese
Leistungsunfähigkeit nicht aus. Daher wurde die Steuerung unter dem
UNIX kompatiblen System Linux implementiert. Dies
hat auch noch den großen Vorteil, daß das komplette System im
Quellcode verfügbar ist und an entsprechende Anforderungen angepaßt
werden kann. Außerdem ergibt sich durch Verwendung eines
UNIX
Systems der große Vorteil, daß die Anwendung leicht
portierbar bleibt. Wie in Kap.
dargelegt,
läuft die Simulation auf den unterschiedlichsten Rechnern. Die
Hardwaresteuerung funktioniert aber nur auf PCs, in denen die originale
Schnittstellenkarte eingebaut ist. Da der Gerätetreiber für die
Hardware aber vollkommen gekapselt ist und nur über eine wohldefinierte
Schnittstelle angesprochen wird, sollte eine Portierung der
Hardwaresteuerung auf andere Hardware möglich sein.
Um nun die oben geforderte Echtzeitfähigkeit auf einem Linux System zu erreichen, sind die im folgenden beschriebenen Anpassungen erforderlich. Dazu wird erst etwas über Prozeßwechselstrategien, Scheduling genannt, ausgeholt. Genauere Information über Scheduling finden sich z.B. in Hier93 oder anderen Büchern über die UNIX-Architektur.