Dieser Audiobeitrag wird von der Universität Erlangen-Nürnberg präsentiert.
Weil da muss ich ja davon ausgehen, dass es Zyklen gibt, wo die Periode nicht eingehalten
wird und auch der Termin nicht eingehalten wird, wo ich ein Stück Restarbeit noch in
die nächste Periode verschiebe. Genau, das heißt, das ist alles ein Riesenproblem,
also mit sehr viel Verwaltungsaufwand verbunden, mit sehr viel Arbeit verbunden, mit sehr viel
manueller Arbeit verbunden. Das ist auch tatsächlich das, was man heutzutage immer noch sehr, sehr
häufig sieht in der Praxis. Dass also sehr, sehr, sehr viel Arbeit da drauf geht, das manuell zu tun.
Ich hatte erst neulich eine Masterarbeit bei einem Zulieferer hier aus der Gegend, wo es darum ging,
jetzt nicht die Zeiten zu modellieren und letztendlich diesen Ablaufplan zu automatisieren,
sondern dasselbe Problem gibt es sich natürlich auch bei jeder anderen Art von Ressourcenallokation.
Also stellt euch mal vor, was ist mit Speicher? Speicher muss genauso verwaltet werden zwischen
diesen einzelnen Softwaremodulen wie Zeit. Und da haben sie dann festgestellt, sie verbrauchen in
einem Projekt Größenordnung 800 Arbeitsstunden dafür, dass man in Excel-Tabellen Speicherzuordnungen
festlegt. Das kann man sich gar nicht vorstellen. Von der einzelnen Anwendung, die dieser Zulieferer
herstellt. Und er hat im Prinzip nichts anderes gemacht, als den Prozess zu automatisieren mit
einem kleinen Tool. Im Prinzip das, was wir den Compiler machen lassen, wenn wir das komplette
Softwareprojekt unter Kontrolle haben. Wenn wir alle Sourcen haben und wenn wir einen
Übersetzungsvorgang haben, dann können wir diese Aufgabe den Compiler übernehmen lassen,
beziehungsweise den Linker. Deshalb stellt sich die Frage für uns gar nicht. Aber wenn man so eine
verteilte Entwicklung hat, dann bekommt man eben lauter Softwaremodule zugeliefert und jeder hat
ihr eigenes Speichermapping. Und irgendjemand muss sich hinsetzen und muss dieses Speichermapping
machen. Und er hat dieses Tool geschrieben und hat das Ganze auf acht Minuten reduziert, was das Tool
braucht zum Übersetzen und Rechnen. Das ist für den Betrieb ein Riesenfortschritt. Und im Prinzip
dasselbe Spielchen kann man sich auf der Zeit auch vorstellen. Wie macht man das jetzt in der
Praxis? Was ist sozusagen der aktuelle Stand? Wie wird da vorgegangen? Man hilft sich mit
Spezifikationen. Das ist letztendlich das, was die Automobilisten kennen, was die Maschinenbauer
kennen. Das heißt, die haben den selben Ansatz auf die Softwareübertragung. Wir spezifizieren
einfach das zeitliche Verhalten. Ihr solltet inzwischen, denke ich, ein Gefühl dafür entwickelt
haben, dass das ganz schön knifflig ist, im Vorhinein das zeitliche Verhalten von Software
zu spezifizieren. Aber gut, das ist das, was man macht. Das heißt, man geht von oben nach unten.
Der Hersteller spezifiziert das zeitliche Verhalten von der Anwendung, der Zulieferer spezifiziert
für das Projekt das zeitliche Verhalten von der Softwarekomponente und der Unit-Entwickler,
der Funktionsentwickler, der muss sich halt irgendwie dran halten. Ja gut, das ist halt
wieder dieses klassische Vorgehen mit, ja, wir geben es halt vor und wir verpflichten euch,
dass ihr euch daran haltet, egal ob es geht oder eben nicht. Das ist dieses typische Hollywood-Prinzip.
Rufen Sie uns nicht an, wir rufen Sie an. Ist natürlich aus Sicht des Entwicklers problematisch,
weil er muss sich jetzt an Vorgaben halten, die in Umständen völlig unrealistisch sind. Das heißt,
wir haben jetzt eine globale Planung, die wir vornehmen müssen oder die wir vornehmen sollen
und müssen aber eigentlich lokal mit diesen Zuweisungen, mit diesen Zeitschlitzen, die uns
der Hersteller da vorgibt, müssen wir letztendlich lokal umgehen. Ermöglicht natürlich, dass man jetzt
lokal Probleme löst, das heißt, wenn ich einen festen Zeitschlitz zugewiesen habe, habe ich
zumindest das Problem weg, dass ich mich um irgendwelche Zeiteinheiten kloppen muss, weil
der andere größer wird, wird mein Bereich kleiner, das gibt es dann nicht, sondern jeder hat seinen
zugewiesenen Bereich. Dementsprechend kann ich mich lokal darum kümmern, wenn es nicht reicht,
habe ich natürlich trotzdem ein Problem. Und weiteres Problem ist, wenn ich das sinnvoll machen
will, das heißt, wenn ich nicht im Nachgang feststellen muss, dass mir dieser zugewiesene
Zeitrahmen nicht ausreicht, dann müsste ich ja im Voraus wissen, welcher Zeitbedarf tatsächlich
da ist und dieses, diese globale Ablaufplanung, das heißt, dieses Vorgeben von Zeit durch eine
Spezifikation von oben nach unten, um das durchzuziehen, müsste ich ein globales Wissen
haben, das heißt, dieses typische A priori Wissen, von dem man hier und da mal im Skript liest,
Presenters
Zugänglich über
Offener Zugang
Dauer
01:08:53 Min
Aufnahmedatum
2018-11-29
Hochgeladen am
2018-12-03 22:09:46
Sprache
de-DE
Die Entwicklung eines Echtzeitsystems schliesst typischerweise Experten aus verschiedenen Bereichen mit ein. Die Veranstaltung nähert sich der Thematik zwar aus der Sicht der Informatik, ist jedoch grundsätzlich interdisziplinär ausgelegt und richtet sich sowohl an Studierende der Informatik als auch an diejenigen anderer Studiengänge mit einem anwenungsorientierten Bezug wie beispielsweise Mechatronik, Elektrotechnik, I&K, CE, Maschinenbau und Medizintechnik (siehe Vorraussetzungen).
Entsprechend weit spannt sich auch das Themengebiet Echtzeitsysteme auf. Abhängig von der Betrachtungsebene spricht man allgemein von eingebetteten Systemen oder, um den regelungstechnischen Anteil hervorzuheben, von Cyber-Physical Systems. Die Veranstaltung Echtzeitsysteme nimmt hierbei den Standpunkt der Systemsoftware (Echtzeitbetriebssystem) ein und erlaubt dadurch einen querschneidenden Einblick in die gesamte Welt der Echtzeitsystementwicklung. Die Vorlesung vermittelt dabei die notwendigen Grundkenntnisse, Techniken und Mechanismen für die Entwicklung von Echtzeit(betriebs)systemen und schafft damit eine gemeinsame Grundlage für alle Beteiligten.
Ziel der Veranstaltung ist neben einem fundierten theoretischen Überblick auch die tiefgehende Vermittlung von praktischem Wissen und Fähigkeiten, welche als Basis für eine erfolgreiche industrielle bzw. wissenschaftliche Anwendung dienen können.