Modell-Realzeitbetriebssystem

Ähnliche Dokumente
Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Künstliches binäres Neuron

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Mediator 9 - Lernprogramm

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Auftragsbearbeitung 3.1

Erstellen von x-y-diagrammen in OpenOffice.calc

So gehts Schritt-für-Schritt-Anleitung

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

Fallbeispiel: Eintragen einer Behandlung

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Anleitung über den Umgang mit Schildern

Inventur. Bemerkung. / Inventur

5. Übung: PHP-Grundlagen

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

1 Vom Problem zum Programm

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Dokumentation. estat Version 2.0

Primzahlen und RSA-Verschlüsselung

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Microsoft Access 2010 Navigationsformular (Musterlösung)

Dokumentation IBIS Monitor

Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen

Arbeiten mit UMLed und Delphi

Stundenerfassung Version 1.8

Anzeige von eingescannten Rechnungen

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

Schulberichtssystem. Inhaltsverzeichnis

1. So beginnen Sie eine Kalkulation

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Datenbanken Kapitel 2

Zinsrechner. Bedienungsanleitung

Stammdatenanlage über den Einrichtungsassistenten

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Zahlen auf einen Blick

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Anwendungshinweise zur Anwendung der Soziometrie

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Dokumentation TELAU Post Mobile Billitem Converter

Grundlagen der Theoretischen Informatik, SoSe 2008

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Einführungskurs MOODLE Themen:

Professionelle Seminare im Bereich MS-Office

Anwendungsbeispiele Buchhaltung

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

TIF2ELO Maskeneditor Handbuch

ZAHLUNGSAVIS. Im Zahlungsprogrammteil automatisch erstellen

Tutorial: Gnumeric installieren und Jahres-Kostenübersicht erstellen mit Diagramm

Berechnungen in Access Teil I

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Filialpreisverwaltung

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Bedienungsanleitung für Mitglieder von Oberstdorf Aktiv e.v. zur Verwaltung Ihres Benutzeraccounts auf

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: Änderungen vorbehalten

1.5 Umsatzsteuervoranmeldung

1 Mathematische Grundlagen

NanoTrader Neue KontoLeiste

GEVITAS Farben-Reaktionstest

Microsoft Outlook 2010 Handbuch

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

Anleitung zur Verwendung der VVW-Word-Vorlagen

Erster Schritt: Antrag um Passwort (s. Rubrik -> techn. Richtlinien/Antrag für Zugangsberechtigung)

Modellbildungssysteme: Pädagogische und didaktische Ziele

Excel Pivot-Tabellen 2010 effektiv

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Um eine Person in Magnolia zu erfassen, gehen Sie wie folgt vor:

Datenaufbereitung in SPSS. Daten zusammenfügen

Erstellen der Barcode-Etiketten:

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Kontakte Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

1 topologisches Sortieren

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Sichern auf den zentralen TSM-Servern unter Windows. Sichern auf den zentralen TSM-Servern unter Windows

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Wie halte ich Ordnung auf meiner Festplatte?

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

Anleitung für Autoren auf sv-bofsheim.de

Thermoguard. Thermoguard CIM Custom Integration Module Version 2.70

Pfötchenhoffung e.v. Tier Manager

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

ecaros2 - Accountmanager

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Mandant in den einzelnen Anwendungen löschen

Lehrer: Einschreibemethoden

Word 2010 Schnellbausteine

Bedienung des Web-Portales der Sportbergbetriebe

Nutzer-Synchronisation mittels WebWeaver Desktop. Handreichung

Aufklappelemente anlegen

Transkript:

Modell-Realzeitbetriebssystem 1. Versionsgeschichte: 1.0 2. Aufgabenstellung für das Modell: 2.1 Welche Aufgaben soll das Modell erfüllen? Das Modell soll das Verhalten eines Realzeitbetriebssystem das mit einem RM-Planungs-Algorithmus arbeitet darstellen. DETAILLIERTE AUFGABENSTELLUNG Das Ziel dieses Projektes ist die Erstellung eines Simulationsbaukastens mit der OKSIMO Software für die Simulation von Realzeitbetriebssystemen. Entsprechend der Vorlesung Realzeitsysteme von Prof. Gerd Doeben Henisch wird hier angenommen, dass sich die 'Welt' und ihr potentieller 'Inhalt' mit einem einzigen Begriff modellieren lassen, nämlich mit dem Begriff des Systems. So wird die Welt aufgefasst als eine Menge von vernetzten Systemen S, die entweder über Interaktionen miteinander verknüpft sind oder über Ist-Teil-Von-Beziehungen. Ein Realzeitsystem ist dann ein RTS- System, dem man ein Umwelt-System gegenüberstellen kann. Innerhalb des RTS-Systems wiederum kann man weitere Systeme annehmen. Ein Input-Output-System besteht aus internen Zuständen, aus einer Inputmenge, einer Outputmenge sowie einer Systemfunktion.

Die Vereinigung von Input- und Output Zuständen bildet die Oberfläche/ die Schnittstelle eines Systems. Sowohl ein Realzeitsystem wie auch die Umgebung zu einem Realzeitsystem sind jeweils Input-Output-Systeme. Eine Realzeitwelt besteht aus einer einzelnen Welt/Umgebung und einer Menge von Realtzeitsystemen. Mittels der Funktion act kann man den Output eines bestimmten Systems abbilden in eine Menge von Ereignissen. Umgekehrt bildet die Funktion Ereignisse ab auf den Input eines Systems. Von der Umgebung eines Realzeitsystems wird angenommen, dass es Ereignisse generiert, die entweder periodisch oder aperiodisch sind, also. Die aperiodischen Ereignisse zerfallen weiter in sporadische oder nicht-sporadische, also. Ereignisse können darüberhinaus untereinander abhängig sein oder nicht-abhängig. Man kann ihre Startzeit ( ) frei wählen, ebenso die Anzahl der Ereignisse. Von Realzeitsystemen wird angenommen, dass sie Ereignisse aus der Umgebung als Ereignis registrieren können und dass sie auf solche registrierte Ereignisse mittels ihrer Systemfunktion mit einer definierten Antworten innerhalb vorgegebener Deadlines reagieren können. Um diese Simulation zu bedienen, benötigt man das Modell eines Systems (Baukasten), das das geforderte Verhalten bedienen kann. Dazu wählen wir als Einstieg zwei Darstellungsweisen: (i)grafische Darstellungen der Systemkomponenten und (ii) eine formale (mathematische) Darstellung der Struktur. Die Struktur wird dann weiter konkretisiert.

(i)grafische Darstellungen der Systemkomponenten Grafische Darstellung 1: RTS-Systemfunktion Daten- und Funktions-Komponenten (ii) eine formale (mathematische) Darstellung der Struktur. Die Input-Output-Struktur eines Realzeitsystems ist gegenüber einem allgemeinen Input- Output-System sehr viel differenzierter (das gleiche als Systemdiagramm wie (i)).

Diese Anforderungen sollen nun in ein OKSIMO-Modell übersetzt werden, das sich dann auch mit dem OKSIMO-Simulator simulieren läßt. Die Grundelemente eines Realzeitsystems für diese Aufgabe kann man der Grafischen Darstellung 1 entnehmen: Auf der Inputseite kann das System RTS registrieren, zu welchem Zeitpunkt CLCKext,int welche Ereignisse E aus der Umgebung auftreten. Zugleich verfügt es über eine Technische Tabelle TT, anhand deren eine Zuordnung von Ereignissen E zu Tasks T stattfinden kann. Hier wird angenommen, dass auch weitere wichtige Informationen sowohl zu den Ereignissen E also Auftretenszeit, Deadline D und Periode P festgehalten sind. Ferner gibt es eine Menge von Prioritätsregeln (RM), anhand deren sich die Prioritäten für aktuelle Tasks berechnen lassen. Aus der Menge der aktuellen Ereignisse E und der Menge der noch wartenden Tasks T aus den vorausgehenden Zeitpunkten Q wird die Menge Q jeweils neu gebildet. Es gibt eine interne Uhr CLCKint und mindestens einen Prozessor (central processing unit) CPU. Es ist Aufgabe des Scheduling-Algorithmus Sched aus allen diesen Daten den Task ri r zu ermitteln, der aktuell ausgeführt werden soll, geschrieben ri aktuell auszuführenden Tasks). X (mit X als die Menge der Scheduling Algorithmus: Die Grundstruktur eines Schedulingalgorithmus für Realzeitsysteme lässt sich durch folgendes einfaches Schema beschreiben: Schedulingalgorithmus Sched 1. Start 2. t = 0; X = 0; Q = 0 3. if(checkx(x) == FINISCHED) then Q= Q X 4. X = 0; Q = Q + TT(E) 5. Q* = order (Q, Pi) 6. if(checkd(q*) == true) then ERROR; else first(q*) X 7. t=t+1;

Der Schedulingalgorithmus Sched beginnt mit der Nullsetzung der Parameter t, X, Q, t CLCKint ist die aktuelle Zeit, x c r ist die Menge der aktuell auszuführenden Tasks und Q ist die vereinigte Menge der neuen TT(E) und der noch nicht vollendeten Tasks. Die aktive Schleife des Algorithmus beginnt mit der Überprüfung, ob die zuletzt ausgeführten Tasks aus der Menge X schon vollständig abgearbeitet sind. Falls 'JA', dann werden sie aus der Menge Q entfernt: if(checkx(x) == FINISHED) then Q = Q - X. Anschließend wird die Menge X auf jeden Fall auf Null gesetzt, da für den neuen Zyklus alle Tasks - auch die noch in Verarbeitung befindlichen - bezüglich ihrer Prioritäten neu überprüft werden müssen X = 0. Danach werden alle Tasks ermittelt, die aufgrund neuer Ereignisse zu Q hinzukommen müssen: Q=Q +TT(E). Nachdem die Menge Q neu gebildet wurde, muss Q mittels der gewünschten Prioritätsregeln als Menge Q*= order(q,pi) neu nach Prioritäten geordnet werden. Nachdem geklärt wurde, in welcher Reihenfolge die Tasks ausgeführt werden müssen, kann man überprüfen, ob einer dieser Tasks ri aus Q*seine relative Deadline Di überschritten hat. Falls dies der Fall ist, also checkd(q*) == true dann stoppt der Algorithmus mit einer Fehlermeldung; das Scheduling hat dann versagt. Wurde keine Deadline gebrochen, dann wird das erste Element aus Q* ausgewählt und in die Menge X eingefügt first(q*) X. Man kann leicht erkennen, dass dieser Algorithmus entweder nach endlichen vielen Schritten terminiert, wenn eine Deadline nicht bedient werden konnte, oder aber er läuft beliebig lange weiter, indem immer genau der Task mit der höchsten Priorität bearbeitet und ausgeführt wird. Es gibt vielfältige Möglichkeiten, dieses Modell eines RTS mit einem Scheduler wie Sched zu implementieren. Nachdem ein Modell implementiert wurde, soll es getestet werden. Dies geschieht hier mit den Daten des Verhaltensmodells. Dazu nehmen wir an, dass die Prioritätsregel anhand der Rate Monotonic (RM)-Regel definiert sein soll. Die RM-Regel lautet: Ti < Tj Pi> Pj mit der zusätzlichen Annahme, dass Di = Ti, d.h. wenn die Periode Ti des i-ten Ereignisses ei kleiner ist als die Periode Tj des j-ten Ereignisses ej, dann ist die Priorität Pi des i-ten Ereignisses ei größer als die Priorität Pj des j-ten Ereignisses ej. Eine Möglichkeit der Validierung besteht darin, das System anhand eines Zeitdiagramms zu überprüfen (Abbildung).

ABBILDUNG : LOESUNGSBEISPIEL FÜR EINE TASKMENGE MIT RM-PRIORITAETSREGEL CLCK = -1: Q = TT(E)= {1,2,3}; Q*= order({1,2,3}, RM) = {1,2,3}; first(q*) = '1'; X={1} CLCK = -1: TT(E)={ }; Q = Q-X+TT(E)= {2,3}; Q*= order({2,3}, RM) = {2,3}; first(q*) = '2'; X={2} CLCK = -1: TT(E)={ }; Q = Q-X+TT(E)= {3}; Q*= order({3}, RM) = {3}; first(q*) = '3'; X={3} CLCK = -1: TT(E)={ 1 }; Q = Q-X+TT(E)= {1,3}; Q*= order({1,3}, RM) = {1,3}; first(q*) = '1'; X={1} CLCK = -1: TT(E)={ 2 }; Q = Q-X+TT(E)= {2,3}; Q*= order({2,3}, RM) = {2,3}; first(q*) = '2'; X={2} CLCK = -1: TT(E)={ }; Q = Q-X+TT(E)= {3}; Q*= order({3}, RM) = {3}; first(q*) = '3'; X={3} CLCK = -1: TT(E)={1,3 }; Q = Q-X+TT(E)= {1,3}; Q*= order({1,3}, RM) = {1,3}; first(q*) = '1'; X={1} CLCK = -1: TT(E)={ }; Q = Q-X+TT(E)= {3}; Q*= order({3}, RM) = {3}; first(q*) = '3'; X={3} CLCK = -1: TT(E)={2 }; Q = Q-X+TT(E)= {2,3}; Q*= order({2,3}, RM) = {2,3}; first(q*) = '2'; X={2} CLCK = -1: TT(E)={1 }; Q = Q-X+TT(E)= {1,3}; Q*= order({1,3}, RM) = {1,3}; first(q*) = '1'; X={1} CLCK = -1: TT(E)={ }; Q = Q-X+TT(E)= {3}; Q*= order({3}, RM) = {3}; first(q*) = '3'; X={3}

2.2 Welche Umgebungsbedingungen werden angenommen? Auf der Input Seite wird angenommen dass alle zu verarbeitenden Events Periodisch sind. Diskrete Simulation ->Ereignisorientiertes Modell Das System Arbeitet mit einem RM-(Rate Monotonic)/Planungs-Algorithmus Es wird angenommen dass die Deadline gleich der Periode (D=T) ist. Zurzeit können aus der Umgebung nur vier Events generiert und verarbeitet werden. Die Tabelle Q-Task kann maximal 10 Tasks aufnehmen und verarbeiten. 2.3 Gibt es spezielle Randbedingungen/Einschränkungen? Die Verwaltung der kritischen Ressourcen ist in diesem RTS-Modell noch nicht beinhaltet. 3. Systembeschreibung: 3.1 Input - Output Input: CLOCK: ist die Startzeit der CLOCK. Startwert CLOCK = 0 führt dazu, dass alle vier Events gleichzeitig ausgelöst werden. PERIODE_T1: gibt die Periode an, in der ein Event auftreten soll. Ist z.b. PERIODE_T1 = 2, so wird alle zwei Simulationszyklen der Event Nr. 1 ausgelöst. PERIODE_T2: gibt die Periode an, in der ein Event auftreten soll. Ist z.b. PERIODE_T2 = 3, so wird alle drei Simulationszyklen der Event Nr. 2 ausgelöst.

PERIODE_T3: gibt die Periode an, in der ein Event auftreten soll. Ist z.b. PERIODE_T3 = 5, so wird alle fünf Simulationszyklen der Event Nr. 3 ausgelöst. PERIODE_T4: gibt die Periode an, in der ein Event auftreten soll. Ist z.b. PERIODE_T4 = 7, so wird alle sieben Simulationszyklen der Event Nr. 4 ausgelöst. Technische Tabelle (TT): Die Technische Tabelle ist eine zweidimensionale Matrix (4x6). Hier wird angenommen dass alle wichtigen Informationen sowohl zu den Ereignissen (Events), als auch zu den Tasks in der Technische Tabelle beinhaltet sind. Die Werte die sich in der Matrix befinden, wurden in diesem Fall manuell eingegeben. Es besteht aber auch die Möglichkeit die Werte aus einer externe Datei einlesen zu lassen. Q_10: Ist eine zweidimensionale Matrix 10x4. Zu beginn der Simulation ist Q_10 =Eventliste. Nach der ersten Simulation beinhaltet Q_10 die neu Registrierten Event und die alten Tasks die vom vorherigen Zyklus noch nicht abgearbeitet wurden. Output: EVENTLISTE: Ist eine Liste (Matrix 1x4) der eingegangenen Events. Q_PRIOR: Eine Matrix 10x4. Die Priorisierte Taskliste bevor der höchst Priorisierte Task ausgeführt wurde. Q_10: Eine Matrix 10x4.Taskliste nach dem der höchst Priorisierte Task ausgeführt wurde. ERROR_TASK: Gibt die Tasknummer eines Tasks aus der gescheitert ist. Dieser Task hat seine Deadline überschritten somit ist er gescheitert.

Q_OVERLOW_ERROR: wird = 1 wenn zu viele (mehr als 10) Tasks in die Queue (Q_10) geschrieben werden sollten. Die Matrix Q_10 kann maximal 10 Tasks aufnehmen. NR_ERFOLGREICHER_TASK: Gibt die Nummer eines Task aus der erfolgreich abgearbeitet worden ist (C wurde 0). Der Task hat seine volle Ausführungszeit erhalten und hat sein Deadline nicht überschritten. CLOCK: Um eins erhöhter Wert der Clock. 3.2 Systemfunktion: Die Systemfunktion bildet die Eingänge auf den Ausgang ab. Es wird für jedes Modell detailliert die Systemfunktion mit den Input und Output Werte erklärt. Die Grafisch Darstellung 1 zeigt die ganze Systemfunktion des RTS-Systems, insbesondere die Grundbauelemente eines Realzeitbetriebssystems. Dazu wird das ganze RTS-System in kleine Komponenten zerlegt, Detailliert erläutert. und MODELL: RTS_SIMULATOR Der RTS_SIMULATOR ist ein Simulationsbaukasten und simuliert ein Real Time System das mit einem RM-Planungs-Algorithmus arbeitet. Das Modell env_event_v2 stellt eine Umgebung (Environment) dar und generiert mit Hilfe einer Uhr (CLOCK) periodisch Events, die vom RT-System registriert werden. Auf der Inputseite kann das RT-System registrieren zu welchem Zeitpunkt Clock welche Ereignisse E aus der Umgebung auftreten. Es verarbeitet die Events, die aus der Umgebung (Modell: env_event) kommen. Diesen Events wird anhand einer Technischen Tabelle(TT) Tasks zugeordnet. Die Tasks werden dann priorisiert und der Simulationsbaukasten simuliert die Abarbeitung und Ausführung dieser Tasks. Auf der Output Seite werden die Ergebnisse der Auswertung dargestellt. Die nachstehende grafische Abbildung (Abbildung 1) zeigt ein RTS_SIMULATOR der mit der OKSIMO Software erstellt wurde parallel dazu steht die grafische Darstellung der Systemfunktion.

Im Folgenden wird die Grafische Darstellung 1 der gesamten Systemfunktion des RT-System 1 zu 1 in ein OKSIMO FCL-Modell überführt. GRAFISCHE DARSTELLUNG 1: RT-System funktion Daten- und Funktions- Komponenten. OKSIMO-FCL-MODELL ABBILDUNG 1: RT- Systemfunktion Daten- und Funktions- Komponenten. Die Grafische Darstellung 1 des RT-Systems, mit allen Systemrelevanten Komponenten, wird von links nach rechts in ein FCL-Modell überführt und Modelliert. ENVOIREMENT: in der Grafischen Darstellung 1 entspricht unter OKSIMO RT-System dem FCL- Modell: env_event_v2. MODELL: ENV_EVENT_V2 Das Modell env_event_v2 erzeugt periodisch EVENTS. Die nachstehende grafische Abbildung (Abbildung 2) zeigt das Modell: env_event_v2 welches mit der OKSIMO Software erstellt wurde.

ABBILDUNG 2: MODELL ENV_EVENT_V2 SYSTEMBESCHREIBUNG: ENV_EVENT_V2 Das Modell env_event_v2 stellt eine Umgebung (Environment) dar und generiert mit Hilfe einer Uhr (CLOCK) periodisch Events, die vom RT-System registriert werden können. Die periodischen Events werden mit Hilfe eines Moduls mit den Inputs Zeit (CLOCK) und Periode und zu dem Output Event bearbeitet. Die aktuelle Zeit wird durch die Periode geteilt, sollte der Rest 0 ergeben, bedeutet dies, dass die Periode ins Zeitfenster passt und somit das dazugehörige Event gesetzt und ausgegeben werden kann. Wenn der Rest größer 0 ist passiert nichts.

Input-Output des Systems Input Parameter: CLOCK: ist die Startzeit der CLOCK. Startwert CLOCK = 0 führt dazu, dass alle vier Events gleichzeitig ausgelöst werden. PERIODE_T1: gibt die Periode an, in der ein Event auftreten soll. Ist z.b. PERIODE_T1 = 2, so wird alle zwei Simulationszyklen der Event Nr. 1 ausgelöst. PERIODE_T2: gibt die Periode an, in der ein Event auftreten soll. Ist z.b. PERIODE_T2 = 3, so wird alle drei Simulationszyklen der Event Nr. 2 ausgelöst. PERIODE_T3: gibt die Periode an, in der ein Event auftreten soll. Ist z.b. PERIODE_T3 = 5, so wird alle fünf Simulationszyklen der Event Nr. 3 ausgelöst. PERIODE_T4: gibt die Periode an, in der ein Event auftreten soll. Ist z.b. PERIODE_T4 = 7, so wird alle sieben Simulationszyklen der Event Nr. 4 ausgelöst.

Output Parameter: CLOCK: Der um 1 erhöhte Wert der CLOCK. EVENT_1: gibt 1 aus wenn das Event aufgetreten ist und gibt 0 aus wenn das Event nicht aufgetreten ist EVENT_2: gibt 2 aus wenn das Event aufgetreten ist und gibt 0 aus wenn das Event nicht aufgetreten ist. EVENT_3: gibt 3 aus wenn das Event aufgetreten ist und gibt 0 aus wenn das Event nicht aufgetreten ist. EVENT_4: gibt 4 aus wenn das Event aufgetreten ist und gibt 0 aus wenn das Event nicht aufgetreten ist.

RT-System: in der Grafischen Darstellung 1 entspricht unter OKSIMO RTS-System dem FCL- Modell RT-System MODELL: RT_SYSTEM Das RT-System ist ein Simulationsbaukasten für die Simulation von Realzeitbetriebssystemen. Das Modell beinhaltet die Grundstruktur eines Scheduling- Algorithmus für Realzeitsysteme. Die nachstehende grafische Abbildung (Abbildung 3) zeigt ein RT-System Modell das mit der OKSIMO Software erstellt wurde. ABBILDUNG 3: MODELL RTS_SYSTEM

SYSTEMBESCHREIBUNG: RT_SYSTEM Das Modell simuliert ein Real Time System das mit einem RM-Planungs-Algorithmus arbeitet. Auf der Inputseite kann das RT-System registrieren zu welchem Zeitpunkt Clock welche Ereignisse E aus der Umgebung auftreten. Es verarbeitet die Events, die aus der Umgebung (Modell: env_event) kommen. Diesen Events wird anhand einer Technischen Tabelle(TT) Tasks zugeordnet. Das aufgetretene Event e (x) soll zur Ausführung von Task t (x) führen. Die Tasks werden dann priorisiert und das Modell simuliert die Abarbeitung und Ausführung dieser Tasks. Input-Output des Systems Input Parameter: CLOCK: Startzeit der CLOCK. Sie triggert die Events. EVENTLISTE: Ist eine eindimensionale Matrix (4x1), die alle eingegangenen Events, auf die das RT-System reagieren sollen, enthält. Technische Tabelle: Die Technische Tabelle ist eine zweidimensionale Matrix (4x6). Die Technische Tabelle beinhaltet alle wichtigen Informationen über die Events und Tasks. Q_10: Die Matrix Q_10 ist eine zweidimensionale Matrix (10x4). Q_10 beinhaltet alle neu aufgetreten Tasks und alle alten Tasks die vom vorherigen Zyklus noch nicht zur Ausführung kamen, oder noch nicht fertig geworden sind. In der Matrix Q_10 werden alle Informationen gespeichert die wichtig sind für die weitere Abarbeitung der Tasks.

Output Parameter: EVENTLISTE: ist eine Liste (Matrix 1x4) der eingegangenen Events. Q_PRIO: ist eine priorisierte Taskliste (zweidimensionale Matrix 10x4), bevor der höchst priorisierten Task ausgeführt wurde. Q_10: ist eine Taskliste (zweidimensionale Matrix 10x4), nach dem der Task mit der höchsten Priorität ausgeführt wurde. ERROR_TASK: ist eine Matrix (1x10) und gibt die Tasknummer eines gescheiterten Tasks aus. (Deadline wurde 0). Dieser Task hat seine Deadline überschritten und ist somit gescheitert. Q_OVERFLOW_ERROR: wird = 1 wenn zu viele (mehr als 10) Tasks in die Queue (Q_10) geschrieben werden. Die Matrix Q_10 kann maximal 10 Tasks aufnehmen. NR_ERFOLGREICHER_TASK: gibt die Nummer eines Task aus der erfolgreich abgearbeitet worden ist (C wurde 0). Der Task hat seine volle Ausführungszeit erhalten und hat seine Deadline nicht überschritten. CLOCK: der um 1 erhöhte Wert der Clock.

E: in der Grafischen Darstellung 1 entspricht unter OKSIMO RT-System dem FCL- Modell: EVENTS-IN_LISTE. MODELL: EVENTS_IN_LISTE Statt lauter einzelner Eingabevariablen kann man auch alle fixen Parameter in einer Matrix zusammenfassen. Die nachstehende grafische Abbildung (Abbildung 4) zeigt das Modell events_in_liste welches mit der OKSIMO Software erstellt wurde. ABBILDUNG 4: MODELL EVENTS_IN_LISTE SYSTEMBESCHREIBUNG: EVENTS_IN_LISTE Das Modell events_in_liste setzt vier einzelne Events aus der Umgebung mit Hilfe einer setmatrixvalue zu einer EVENTLISTE (Matrix 1x4) zusammen. Es wird angenommen, dass alle aufgetretenen Ereignisse periodisch sind und somit vom RTS registriert werden können.

Input-Output des Systems Input Parameter: EVENT_1: Gibt 1 aus wenn das Event aufgetreten ist und gibt 0 aus wenn das Event nicht aufgetreten ist. EVENT_2: Gibt 2 aus wenn das Event aufgetreten ist und gibt 0 aus wenn das Event nicht aufgetreten ist. EVENT_3: Gibt 3 aus wenn das Event aufgetreten ist und gibt 0 aus wenn das Event nicht aufgetreten ist. EVENT_4: Gibt 4 aus wenn das Event aufgetreten ist und gibt 0 aus wenn das Event nicht aufgetreten ist. Output Parameter: EVENTLISTE: Ist eine eindimensionale Matrix (1x4), die alle eingegangenen Events, auf die das RT-System reagieren sollen, enthält. TT: Technische Tabelle: in der Grafischen Darstellung 1 entspricht unter OKSIMO RT- System dem FCL- Modell: technische tabelle. Technische Tabelle: Die Technische Tabelle ist eine zweidimensionale Matrix (4x6). Die nachstehende grafische Abbildung (Abbildung 5) zeigt das Modell technische_tabelle welches mit der OKSIMO Software erstellt wurde.

ABBILDUNG 5: TECHNISCHE_TABELLE Die Werte die sich in der Matrix befinden wurden in diesem Fall manuell eingegeben. Es besteht aber auch die Möglichkeit die Werte aus einer externe Datei einlesen zu lassen, diese Option finden sie in der Abbildung unter Select the format of the input source. Dort sollte man die Option file in csv format auswählen. Die nachstehende grafische Abbildung (Abbildung 6) zeigt die Dateneingabe in eine Technische Tabelle. ABBILDUNG 6: MANUELL EINGEGEBENE DATEN IN EINE TECHNISCHE TABELLE

Es muss angenommen werden, dass keine Tasks in COL = 2 der Technischen Tabelle (TT) stehen dürfen die den Wert = 0 haben. In der nachstehenden Technischen Tabelle (Tabelle 1) befinden sich alle wichtigen Informationen über Events und Tasks. E Ci Ti Di 0 1 2 2 0 2 3 3 0 3 5 5 e4 0 T4 4 7 7 TABELLE 1: TECHNISCHE TABELLE Erläuterung der Inhalte von ROW und COL der Technischen Tabelle: COL=0: also Spalte E: Eine eindeutige Bezeichnung des Ereignisses. COL=1: also Spalte : Zeitpunkt zu dem das Ereignis erstmalig auftritt. Standardmäßig wird Zeitpunkt t=0 angenommen. COL=2: also Spalte T: Eine eindeutige Bezeichnung des Tasks. COL=3: also Spalte Ci: Zeitdauer für die vollständige Ausführung eines Tasks. COL=4: also Spalte Ti: Periode, Zeitdauer zwischen dem Auftreten und Wiederauftreten eines Ereignisses. COL=5: also Spalte Di: Relative Deadline vom letzten Auftreten eines Ereignisses bis zur vollständigen Ausführung des zugehörigen Tasks.

Q_10: Die Matrix Q_10 (Tabelle 2) zeigt eine zweidimensionale Matrix (10x4) die in einer Zeile die Tasknummern, und in der andere zum Beispiel C und D speichert. In der Matrix Q_10 werden alle Informationen gespeichert die wichtig sind für die weitere Abarbeitung der Tasks. Ci Ti PH 1 2 0 2 3 0 3 5 0 4 7 0 TABELLE 2: MATRIX Q_10 Erläuterung der Inhalte von ROW und COL der Matrix Q_10: COL = 0: Eine eindeutige Bezeichnung des Tasks. COL = 1: Zeitdauer für die vollständige Ausführung eines Tasks. COL = 2: Periode, Zeitdauer zwischen dem Auftreten und Wiederauftreten eines Ereignisses. COL = 3: wird nicht benutzt. Platzhalter für weitere Optionen.

TT: E T in der Grafischen Darstellung 1 entspricht unter OKSIMO RT-System dem FCL- Modell: event_n_q. Abbildung 7: event_n_q Q: in der Grafischen Darstellung 1 entspricht unter OKSIMO RT-System dem FCL- Modell: make_q. T: in der Grafischen Darstellung 1 entspricht unter OKSIMO RT-System der ersten Spalte von Matrix Q_Task

MODELL: MAKE_Q Das Modell make_q beinhaltet alle Taskparameter, die durch das Auftreten der Events aus der Umgebung ausgelöst worden sind. Zugleich beinhaltet es alle Tasks die vom vorherigen Zyklus noch nicht zur Ausführung kamen oder noch nicht fertig geworden sind. Anhand der Technischen Tabelle werden den Events aus der Eventliste, die entsprechenden Tasks und deren Parameter zugeordnet. Diese werden dann in die Queue geschrieben. Wird die Queue zu groß wird Error ausgegeben. Die nachstehende grafische Abbildung (Abbildung 8) zeigt das Modell make_q welches mit der OKSIMO Software erstellt wurde. ABBILDUNG 8: MODELL MAKE_Q

SYSTEMBESCHREIBUNG: MAKE_Q Das Modell make_q erzeugt aus einer Liste von Events mit Hilfe der Technische Tabelle (TT) eine neue Eventliste Q_4 die alle neuen Events beinhaltet die aus der Umgebung aufgetreten sind und verknüpft diese mit der Q_10, die noch die nicht abgearbeiteten Tasks beherbergt und gibt einen Error aus, wenn die Q zu groß wird. Input-Output des Systems: Input Parameter: Eventliste: Eine Matrix der Länge (1x4), die die Nummern der aufgetretenen Events beinhaltet. Technische Tabelle: ist eine Tabelle in Form einer zweidimensionalen Matrix (4x6) Q_10: Diese zweidimensionale Matrix (10x4) beinhaltet die Tasks des vorherigen Simulationszyklus, die durch den RTS-Zyklus noch nicht abgearbeitet wurden. Output Parameter: Q_TASK: ist eine zweidimensionale Matrix (10x4) der neu erzeugten Queue und beherbergt die alten, noch nicht ausgeführten Tasks und die durch Events ausgelösten neuen Tasks. Q_ERROR: ist 0 wenn die Erzeugung von Q_TASK erfolgreich war und wird 1 wenn mehr Events aufgetreten sind, als die Queue verarbeiten kann (hier: wenn mehr als 10 Tasks in Q_10 geschrieben werden sollen).

SCHEDULE: in der Grafischen Darstellung 1 entspricht unter OKSIMO RT-System dem FCL- Modell: rm_scheduler. MODELL: RM_SCHEDULER Das Modell sortiert die ungeordnete Menge Q_Task_10 nach dem Rate Monotonic (RM) Algorithmus. Dieser Algorithmus sortiert die Periode nach der Größe. Der kleinste Wert nach oben und der größte nach unten. Hier wird angenommen, dass alle Ereignisse periodisch mit einer stabilen Auftretenszeit sind. Ereignisse mit kleinerer Periode haben eine höhere Priorität gegenüber jenen mit einer größeren Periode: Damit gibt es eine feste Prioritätenverteilung. Die zugehörigen periodischen Tasks sind präemptiv (preemptable). Bei Rate Monotonic (RM) Algorithmus ist die Periode immer gleich der Deadline. Die nachstehende grafische Abbildung (Abbildung 9) zeigt das Modell RM_Scheduler welches mit der OKSIMO Software erstellt wurde. Q*: in der Grafischen Darstellung entspricht unter OKSIMO RT-System dem FCL- Modell: rm_scheduler Anmerkung: insbesondere die Ausgabe O_PRIORISIRT entspricht Q*. ABBILDUNG 9: MODELL RM_SCHEDULER

SYSTEMBESCHREIBUNG: RM_SCHEDULER: Die Priorität wird anhand der Periode berechnet. Der Task mit der höchsten Priorität wird ausgeführt. In diesem Fall handelt es sich um Rate Monotonic (RM) Algorithmus. Der Algorithmus vergleicht der Reihe nach (startet bei ROW = 0) zwei benachbarte Elemente und vertauscht sie, falls sie in der falschen Reihenfolge vorliegen. Dieser Vorgang wird solange wiederholt, bis keine Vertauschung mehr vorliegt. Beim Vertauschen der Elemente werden auch alle dazugehörigen Parameter (also die ganze dazu gehörige Zeile) mit getauscht. Dieser Vorgang wird im Modell: zeile_tauschen ausgeführt. Die nachstehende grafische Abbildung (Abbildung 10) zeigt das Modell zeile_tauschen welches mit der OKSIMO Software erstellt wurde. : in der Grafischen Darstellung 1 entspricht unter OKSIMO RT-System dem FCL- Modell: zeile_tauschen. ABBILDUNG 10: MODELL ZEILE_TAUSCHEN

Input-Output des Systems: Input Parameter: Q_TASK: ist die zweidimensionale Matrix der Größe (10x4) und beinhaltet die aktuell zu bearbeitende Task Menge, die noch nicht priorisiert wurde (ungeordnet). Output Parameter: Q_PRIO: ist die aktuelle berechnete Priorität für die Task Menge Q_TASK. In dieser zweidimensionalen Matrix (10x4) stehen die Tasks nach ihrer Priorität sortiert/geordnet. X: in der Grafischen Darstellung 1 entspricht unter OKSIMO RT-System dem FCL- Modell: do_task. MODELL: DO_TASK In diesem Modell wird der Task mit der höchsten Priorität aus der Matrix Q_PRIO bearbeitet und es wird geprüft ob er fertig geworden ist. Die nachstehende grafische Abbildung (Abbildung 11) zeigt das Modell do_task welches mit der OKSIMO Software erstellt wurde.

ABBILDUNG 11: MODELL DO_TASK SYSTEMBESCHREIBUNG: DO_TASK Dieses Modell holt sich den ersten Wert aus der Matrix Q_PRIO und zieht bei jedem Zyklus 1 von Ci=Ausführungszeit ab. Mit dem Modell zeile_loeschen wird die Ausführungszeit mit jedem Zyklus um 1 reduziert. Erreicht die Ausführungszeit den Wert 0 ist der Task erfolgreich ausgeführt. Darauf hin wird die komplette Zeile gelöscht (auf 0 gesetzt) und die Nummer des erfolgreichen Tasks wird ausgegeben. Die nachstehende grafische Abbildung (Abbildung 12) zeigt das Modell zeile_loeschen welches mit der OKSIMO Software erstellt wurde.

ABBILDUNG 12: MODELL ZEILE_LOESCHEN Input-Output des Systems: Input Parameter: Q_PRIO: Ist eine nach Priorität geordnete zweidimensionale Matrix (10x4). Der Task mit der höchsten Priorität steht in der ersten Zeile der Matrix. Output Parameter: NR_ERFOLGREICHER_TASK: dieser Task gibt die Task-Nummer aus, wenn der Task erfolgreich zur Ausführung kam. Q_TASK: ist eine zweidimensionale Matrix (10x4) und zeigt die Menge aller Tasks, die nicht abgearbeitet worden sind. Ist ein Task fertig geworden (C=0) steht dieser nicht mehr in q_task.

MODELL: CHECK_DEADLINE Dieses Modell vermindert die Deadline der Tasks und prüft ob ein Task seine Deadline überschritten hat. SYSTEMBESCHREIBUNG: CHECK_DEADLINE Wenn ein Task seine Deadline überschritten hat gibt das System eine Fehlermeldung aus. Die nachstehende grafische Abbildung (Abbildung 13) zeigt das Modell check_deadline welches mit der OKSIMO Software erstellt wurde. ABBILDUNG 13: MODELL CHECK_DEADLINE Zum Modell check_deadline gehört auch das Modell deadline_vermindern. Zuerst wird in der Matrix q_task die Deadline um 1 verringert. Die neue Ausgabe q_task mit verringertem d (Deadline q_task, COL = 2) wird jetzt weitergereicht an den Input von deadline_pruefen. Die nachstehende grafische Abbildung (Abbildung 14) zeigt das Modell deadline_vermindern welches mit der OKSIMO Software erstellt wurde.

ABBILDUNG 14: MODELL DEADLINE_VERMINDERN Mit dem Modell deadline_pruefen wird ein gescheiterter Task d = 0 erfasst und seine Task Nummer wird in ERROR_TASK ausgegeben. Der Task wird nicht aus Q_TASK gelöscht. Die nachstehende grafische Abbildung (Abbildung 15) zeigt das Modell deadline_pruefen welches mit der OKSIMO Software erstellt wurde. ABBILDUNG 15: MODELL DEADLINE_PRUEFEN

Input-Output des Systems: Input Parameter: Q_TASK: ist eine zweidimensionale Matrix (10x4) und beinhaltet die aktuelle Menge der Tasks die bearbeitet werden sollen. Output Parameter: Q_TASK: ist eine zweidimensionale Matrix (10x4) und beinhaltet jetzt die Menge der Tasks die ausgeführt werden sollen, wobei die verbleibende Deadline jeweils schon um 1 gekürzt wurde. ERROR_TASK: Wenn ein Task seine Deadline überschritten hat, wird die Nummer des Tasks ausgegeben.

4. Bedienungsanleitung mit Beispiel: Mit der Simulation eines funktionierenden Systems und weiteren nachfolgenden Beispielen wird die Funktionstüchtigkeit des rts-simulator getestet und bewiesen. Das auszuführende Modell rts-simulator befindet sich im Ordner: hafid yahiaoui, unter Hauptprogramm rts_simulator. ABBILDUNG 16: MODELLE UND UNTERMODELLE DES RTS-SIMULATORS

FUNKTIONIERENDES SYSTEM Testen und Validieren des kompletten RTS_ Simulator mit allen Ein/und Ausgabewerten. Die Ausgabe erfolgt in grafischer Form (Bar char), eine andere Variante der Ausgabe ist die Möglichkeit sich das ganze in Form von Console Text Mode ausgeben zu lassen. Nach der grafischen Simulationsausgabe kann man den genauen Prozessverlauf nachvollziehen und analysieren. Die Simulation soll auch zeigen, wie man sich aus größeren Tabellen einzelne Spalten oder mehrere Ausgaben gleichzeitig ausgeben lassen kann. Zu Beginn der Simulation wird das Simulationsbaukasten, das mit der OKSIMO-Software erstellt wurde grafisch dargestellt und abgebildet. Die nachstehende grafische Abbildung (Abbildung 17) zeigt das Simulationsbaukasten rts_simulator welches mit der OKSIMO Software erstellt wurde. ABBILDUNG 17: Simulationsbaukasten RTS_SIMULATOR

Simulation Input Parameter Zum Start einer Simulation muss man die Startwerte eingeben. Nachstehend sind die Eingaben-Werte aufgelistet: Clock = 0 Periode_T1 = 2 Periode_T2 = 3 Periode_T3 = 5 Periode_T4 = 7 In die Technische Tabelle (TT) kann man manuell die Daten eingeben oder z.b. aus der Datei csv Daten einlesen. Die Technische Tabelle ist gut sichtbar, sie beinhaltet alle wichtigen Informationen über Events und Tasks. Die nachstehende grafische Abbildung (Abbildung 18) zeigt Simulation Input Parameter Fenster. ABBILDUNG 18: SIMULATION INPUT PARAMETER

Simulation Chart Output Parameter Mit dem Simulation Chart Output Parameter Fenster werden die Werte für die Ausgabe ausgewählt. Für die Simulation wurde die EVENT_LISTE, ERROR_TASK, NR_ERFOLGREICHER_TASK, Q_PRIO (COL = 1) Ausführungszeit und Q_PRIO (COL = 3) Deadline ausgewählt. Auf der linken Seite stehen alle möglichen Ausgabe Parameter, es soll aber nur die ausgewählten Parameter ausgegeben werden. Dies geschieht durch Doppelklick, dann erscheint sofort die gewünschten Ausgaben. Durch die Option sich mehrere Werte ausgeben zu lassen, ist es ratsam die Ausgabe Steuerungsfenster um die Anzahl der gewünschten Ausgaben zu erweitern. Dies kann man mit dem Fenster Selected values of output chart Eventliste ausgeben lassen. Alle restlichen Ausgabewerte lassen sich unter Output Visualisation Setting ausgeben. Zuvor muss aber die Option Enable combined X axis chart aktiviert werden. Dadurch erhält man die einzelnen Ausgabewerte auf jeweils separaten Zeitachsen. Leider wird die Simulationsausgabe dadurch sehr unübersichtlich. Die Form der visuellen Ausgabe wird mit dem Befehl Select the type of the Chart ausgewählt. In dem Beispiel Bar Char. Die nachstehende grafische Abbildung (Abbildung 19) zeigt das Simulation Chart Output Parameter Fenster.

Simulation Chart Output Parameter Fenster. ABBILDUNG 19: SIMULATION CHART OUTPUT PARAMETER: EVENTLISTE Simulation Controller: Der Simulation Controller kontrolliert die auszuführende Simulation. In dem Fenster Simulation Controller wird die Anzahl der Zyklen eingegeben. Für das Beispiel wurden 12 Zyklen (Cycles = 12) angenommen. Mit dem Befehl Start Simulation wird die Simulation gestartet. Die nachstehende grafische Abbildung (Abbildung 20) zeigt das Simulation Controller Fenster.

ABBILDUNG 20: SIMULATION CONTROLLER FCL Visualisation Engine Chart Output: Mit dem FCL Visualization Engine Chart Output Fenster werden gemäß den vorselektierten Output Parameter in grafischer Abbildung die Werte ausgegeben. Die grafische Simulationsausgabe zeigt fünf Ausgabe Simulationsfenster, jedes Ausgabe Fenster steht für einen bestimmten Ausgangswert. Das erste Simulationsausgabe Fenster zeigt das zeitliche Auftreten der Events. Das zweite Simulationsausgabe Fenster zeigt zu welchem Zeitpunkt ein Task gescheitert ist weil er nicht zu Ausführung kam oder er seine Deadline verletzt hat. Im dritten Fenster werden alle Tasks simuliert die erfolgreich ausgeführt wurden. Im vierten Simulationsausgabe Fenster ist die Minderung der Deadline mit jedem weiteren Fortschreiten der Zyklen simuliert. Fenster fünf der Simulationsausgabe zeigt die Simulation der jeweils neu mit jedem Simulationszyklus berechnete und priorisierte Task der Matrix Q_PRIO. Die nachstehende grafische Abbildung (Abbildung 21) zeigt die Ausgabe der Simulation vom RTS_SIMULATOR.

ABBILDUNG 21: SIMULATION RESULT OF RTS_SIMULATOR

BEISPIELE FÜR VERSCHIEDENE SIMULATIONS-AUSGABEWERTE Anhand der nachfolgenden Beispiele soll gezeigt werden wie man sich verschiedene Ausgabewerte der Simulation ausgeben lässt. Die Ausgabe erfolgt meist in grafischer form (bar char), eine andere Variante der Ausgabe ist die Möglichkeit sich das ganze in Form von console text mode ausgeben zu lassen. Nach der grafischen Simulationsausgabe (bar char) kann man dann den genauen Prozessverlauf nachvollziehen und analysieren. Die Beispiele sollen auch verdeutlichen wie man sich aus größeren Tabellen einzelne Spalten oder mehrere Ausgaben gleichzeitig ausgeben lassen kann. Anhand der Vielzahl von Simulationsausgabewerten kann man verschiedene Szenarien testen. Zu Beginn eines Simulationsbeispiels wird ein dazugehöriges FCL-Modell, das mit der OKSIMO Software erstellt wurde grafisch dargestellt und abgebildet. Es ist jedoch lediglich nur ein kleiner Ausschnitt vom ganzen Modell. BEISPIEL 1: EVENTLISTE Im Beispiel 1 wird eine Eventliste ausgegeben. Anhand dieses Simulationsausgabewertes lassen sich die aufgetretenen Events und deren Auftretenszeitpunkte darstellen. Simulation Input Parameter: Zum Start einer Simulation muss man die Startwerte eingeben. Nachstehend sind die Eingaben aufgelistet: Clock = 0 Periode_T1= 2 Periode_T2 = 3 Periode_T3 = 5 Periode_T4 = 7

In die Technische Tabelle (TT) kann man manuell die Daten eingeben oder z.b. aus der Datei csv Daten einlesen. Die Technische Tabelle ist gut sichtbar, sie beinhaltet alle wichtigen Informationen über Events und Tasks. In COL = 0, also Spalte E: kodiert die Ereignisse = (EVENTS). In COL = 1, also Spalte A: steht die Auftretenszeit in diesem Fall immer 0. In COL = 2, also Spalte T: die Menge der erwarteten Tasks. In COL = 3, also Spalte Ci: die jeweiligen angenommenen Ausführungszeiten. In COL = 4, also Spalte Ti: die jeweiligen angenommenen Perioden. In COL = 5, also Spalte Di: die relative Deadline ist gleich der Periode. Die nachstehende grafische Abbildung (Abbildung 22) zeigt die manuelle Dateneingabe in die Technische Tabelle. ABBILDUNG 22: MANUELLE EINGABE VON DATEN IN EINE TECHNISCHE TABELLE Die nachstehende grafische Abbildung (Abbildung 23) zeigt die Übernahme einer CSV Datei. Zu beachten ist, dass die CSV Datei der Länge der Matrix entsprich.

ABBILDUNG 23: CSV DATEI Die nachstehende grafische Abbildung (Abbildung 24) zeigt das Simulator Input Parameter Fenster. ABBILDUNG 24: SIMULATOR INPUT PARAMETER

Simulation Chart Output Parameter: Mit dem Simulation Chart Output Parameter Fenster werden die Werte für die Ausgabe ausgewählt. Für das Beispiel wurde die EVENTLISTE ausgewählt. Auf der linken Seite stehen alle möglichen Ausgabe Parameter, es soll aber nur EVENTLISTE ausgegeben werden, das geschieht durch Doppelklick auf EVENTLISTE. Dann erscheint sofort die gewünschte Ausgabe EVENTLISTE auf der rechten Seite. Die Form der visuellen Ausgabe wird mit dem Befehl Select the type of the Chart ausgewählt. In dem Beispiel Bar Char. Die nachstehende grafische Abbildung (Abbildung 25) zeigt das Simulation Chart Output Parameter Fenster. ABBILDUNG 25: SIMULATION CHART OUTPUT PARAMETER: EVENTLISTE Simulation Controller Der Simulation Controller kontrolliert die auszuführende Simulation. In dem Fenster Simulation Controller wird die Anzahl der Zyklen eingegeben. Für das Beispiel wurden 12 Zyklen (Cycles = 12) angenommen. Mit dem Befehl Start Simulation wird die Simulation gestartet. Die nachstehende grafische Abbildung (Abbildung 26) zeigt das Simulation Controller Fenster.

ABBILDUNG 26: SIMULATION CONTROLLER FCL Visualization Engine Chart Output Mit dem FCL Visualization Engine Chart Output Fenster werden gemäß den vorselektierten Outputparameter in grafischer Abbildung die Werte ausgegeben. Die grafische Simulationsausgabe zeigt deutlich das zum Zeitpunkt = 0 alle vier Events aufgetreten sind. Der weitere Verlauf der Events ergibt sich aus der Periode der einzelnen Tasks, somit ist zuerkennen das Event_1 mit der Periode = 2 zum Zeitpunkt = 2 wieder auftritt. Im dritten Simulationszyklus ist Event_2 mit der Periode = 3 aufgetreten. Im fünften Simulationszyklus ist Event_3 mit der Periode = 5 aufgetreten. Im sechsten Simulationszyklus treten Event_1 mit der Periode = 2 und Event_3 mit der Periode = 3 zeitgleich auf. Im siebten Simulationszyklus ist Event_4 mit der Periode = 7 aufgetreten. Zum Zeitpunkt Clock = 10 treten Event_1 mit der Periode = 2 und Event_3 mit der Periode = 5 zeitgleich auf. Man kann sehr gut erkennen zu welchem Zeitpunkt welche Events aus der Umgebung auftreten. Zugleich ist der periodische Verlauf der Events gut ab lesbar. Die nachstehende grafische Abbildung (Abbildung 27) zeigt die Ausgabe von Beispiel 1.

ABBILDUNG 27: GRAFISCHE SIMULATIONSAUSGABE DES RTS_SIMULATOR

BEISPIEL 2: Q_PRIO Im Beispiel 2 wird eine Matrix Q_PRIO ausgegeben. Anhand dieses Simulationsausgabewertes lassen sich die priorisierten Tasks (Spalte 1 von TT) darstellen. Das Model Q_PRIO unterliegt der Basis Grundstruktur von dem Modell sort. Das Modell sort sortiert nach einem bestimmten Sortier-Algorithmus die COL 2 der Matrix. Das Besondere an diesem Sortierer ist, dass er gleichzeitig die ganze Zeile mit tauscht. Somit ist garantiert das alle Task Parameter ebenfalls mit getauscht werden. Die nachstehende grafische Abbildung (Abbildung 28) zeigt das Modell sort. ABBILDUNG 28: MODELL SORT

Simulation Input Parameter: Zum Start einer Simulation muss man die Startwerte eingeben. Nachstehend sind die Startwerte aufgelistet. Um Q_PRIO in der COL = 1 zu simulieren, sind folgende Werte einzugeben: Clock = 0 Periode_T1 = 2 Periode_T2 = 3 Periode_T3 = 5 Periode_T4 = 7 In die Technische Tabelle (TT) kann man manuell die Daten eingeben oder z.b. aus der Datei csv Daten einlesen. Die Technische Tabelle ist gut sichtbar, sie beinhaltet alle wichtigen Informationen über Events und Tasks. Die nachstehende grafische Abbildung (Abbildung 29) zeigt das Simulation Input Parameter Fenster. ABBILDUNG 29: SIMULATION INPUT PARAMETER

Simulation Chart Output Parameter Mit dem Simulation Chart Output Parameter Fenster werden die Werte für die Ausgabe ausgewählt. Für das Beispiel wurde die Q_PRIO ausgewählt. Auf der linken Seite stehen alle möglichen Ausgabe Parameter, es soll aber nur Q_PRIO ausgegeben werden, das geschieht durch Doppelklick auf Q_PRIO. Dann erscheint sofort die gewünschte Ausgabe Q_PRIO auf der rechten Seite. Die Form der visuellen Ausgabe wird mit dem Befehl Select the type of the Chart ausgewählt. In diesem Beispiel Bar Char. Will man sich eine bestimmte COL aus der Matrix ausgegeben lassen, markiert man die gewünschte COL. Soll die ganze Matrix ausgegeben werden muss man alles markieren, dies hat aber dann den Nachteil, dass die Ausgabewerte gleichzeitig auf einer Zeitachse ausgegeben werden. Die Simulationsausgabe wird dadurch sehr unübersichtlich. Die nachstehende grafische Abbildung (Abbildung 30) zeigt das OKSIMO FCL Simulation Controller mit dem Fenster Select the matrix fields for the output (COL = 1). ABBILDUNG 30: OKSIMO FCL SIMULATION CONTROLLER

Simulation Controller: Der Simulation Controller kontrolliert die auszuführende Simulation. In dem Fenster Simulation Controller wird die Anzahl der Zyklen eingegeben. Für das Beispiel wurden 12 Zyklen (Cycles = 12) angenommen. Mit dem Befehl Start Simulation wird die Simulation gestartet. Die nachstehende grafische Abbildung (Abbildung 31) zeigt das Simulation Controller Fenster. ABBILDUNG 31: SIMULATION CONTROLLER FCL Visualization Engine Chart Output: Mit dem FCL Visualization Engine Chart Output Fenster werden gemäß den vorselektierten Output Parameter in grafischer Abbildung die Werte ausgegeben. Die grafische Simulationsausgabe zeigt deutlich die priorisierte Taskmenge Q_PRIO (COL=1). Der Task mit der kleinsten Periode hat die höchste Priorität. Somit hat Task 1 die höchste Priorität. Zum Zeitpunkt 0 sind alle 4 Tasks aufgetreten.

Nach dem ersten Simulationszyklus beinhaltet Q_PRIO nur noch 3 Tasks weil Task 1 (c = 1) fertig wurde. Task 2 hat jetzt die höchste Priorität. Im zweiten Simulationszyklus beinhaltet Q_PRIO 3 Tasks weil Task 2 (c = 1) fertig wurde. Jedoch ist Task 1 wieder aufgetreten. Im dritten Simulationszyklus beinhaltet Q_PRIO wieder 3 Tasks weil Task 2 (c=1) fertig wurde. Task 3 hat jetzt die höchste Priorität. Im vierten Simulationszyklus beinhaltet Q_PRIO 4 Tasks (c = 1); die Reihenfolge ergibt sich nach der höchsten Priorität, erst kommt Task1, dann Task2, dann Task3 und dann Task4. Dieser Simulationszyklus läuft dann weiter. Im 8. Zyklus ist Task 4 gescheitert (wird jedoch nicht aus Q gelöscht!). Die nachstehende grafische Abbildung (Abbildung 32) zeigt die Ausgabe von Beispiel 2. ABBILDUNG 32: GRAFISCHE AUSGABE DER SIMULATION: Q_PRIO

BEISPIEL 3: Q_OVERLOW_ERROR Es ist möglich, dass der RTS_Simulator überfordert wird. Um das Überlaufen der Matrix Q_OVERLOW_ERROR zu simulieren muss man folgende Werte eingeben. Durch genau diese Auswahl der Parameterwerte wird das System gezwungen überzulaufen. Das geschieht aufgrund der Eingabewerte Kombination. Die nachstehende grafische Abbildung (Abbildung 33) zeigt das Modell Q_common_nuller_aussortieren vom Beispiel 3. ABBILDUNG 33: Q_COMMON_NULLER_AUSSORTIEREN Simulation Input Parameter:

Zum Start einer Simulation muss man die Eingabewerte eingeben. Nachstehend sind die Eingaben aufgelistet. Um Q_OVERFLOW_ERROR zu simulieren, sind folgende Werte einzugeben: Clock = 0 Periode_T1 = 1 Periode_T2 = 1 Periode_T3 = 1 Periode_T4 = 1 In die Technische Tabelle (TT) kann man manuell die Daten eingeben oder z.b. aus der Datei csv Daten einlesen. Die Technische Tabelle ist gut sichtbar, sie beinhaltet alle wichtigen Informationen über Events und Tasks. Die nachstehende grafische Abbildung (Abbildung 34) zeigt das Simulation Input Parameter Fenster. ABBILDUNG 34: SIMULATION INPUT PARAMETER

Simulation Chart Output Parameter: Mit dem Simulation Chart Output Parameter Fenster werden die Werte für die Ausgabe ausgewählt. Für das Beispiel wurde die Q_OVERFLOW_ERROR ausgewählt. Auf der linken Seite stehen alle möglichen Ausgabe Parameter, es soll aber nur Q_OVERFLOW_ERROR ausgegeben werden, das geschieht durch Doppelklick auf Q_OVERFLOW_ERROR. Dann erscheint sofort die gewünschte Ausgabe Q_OVERFLOW_ERROR. Die Form der visuellen Ausgabe wird mit dem Befehl Select the type of the Chart ausgewählt. In diesem Beispiel Bar Char. Die nachstehende grafische Abbildung (Abbildung 35) zeigt das OKSIMO FCL Simulation Controller mit dem Fenster Simulation Chart Output Parameter. ABBILDUNG 35: SIMULATION CHART OUTPUT PARAMETER: Q_OVERFLOW_ERROR

Simulation Controller: Der Simulation Controller kontrolliert die auszuführende Simulation. Im Fenster Simulation Controller wird die Anzahl der Zyklen eingegeben. Für das Beispiel wurden 5 Zyklen (Cycles = 5) angenommen. Mit dem Befehl Start Simulation wird die Simulation gestartet. Die nachstehende grafische Abbildung (Abbildung 36) zeigt das Simulation Controller Fenster. ABBILDUNG 36: SIMULATION CONTROLLER FCL Visualization Engine Chart Output: Mit dem FCL Visualization Engine Chart Output Fenster werden gemäß den vorselektierten Outputparameter in grafischer Abbildung die Werte ausgegeben. Die Matrix zeigt ab 10 Tasks einen Overflow an, in dem Beispiel werden fünf Simulationszyklen angezeigt. Im nullten, ersten und zweiten Simulationszyklus, haben alle Tasks in die Matrix gepasst, doch man kann ganz gut an den Simulationszyklen erkennen, dass ab dem dritten Zyklus mehr als zehn Tasks in der Matrix angezeigt werden. Das System reagiert sofort auf das Überlaufen der Matrix und gibt als Fehlermeldung die 1 aus. Die nachstehende grafische Abbildung (Abbildung 37) zeigt die Ausgabe von Beispiel 3.

ABBILDUNG 37: SIMULATION RESULT OF Q_OVERFLOW_ERROR NACH 5 ZYKLEN