Da der Simulator einige Komandozeilenparameter erwartet, wird er für längere Testläufe aus automatisch generierten Batch-Dateien heraus aufgerufen und erzeugt nacheinander viele Ausgabedateien. Die Batch-Dateien werden mit test*.pl generiert.
Das Perl-Script scripts.pl erzeugt die Parameterdateien für den Simulator. Diese geben für jeden Thread an, welche Deadline, Laufzeit, Priorität und welchen Anteil er bekommen soll. Je nach Scheduling-Verfahren werden nicht alle diese Daten benutzt. Das Programm codegen generiert aus diesen Parameterdateien zufallsgesteuerte Befehlsmischungen. Der Aufruf erfolgt durch
In dem Verzeichnis erwartet das Programm die Parameterdatei als threads.script und generiert für jede Zeile eine Programmdatei mit zufälligen Befehlen. Die Programmdateien heißen thread*.bin und enden immer mit dem Befehl 233, der im Simulator als Suspend-Befehl dient. Es werden soviele Befehle generiert, daß die vorgegebene Laufzeit unter Berücksichtigung der Latenzen erreicht wird.
Die Daten aus den Ausgabe-Dateien des Simulators werden mit makelist.pl *.txt in eine Liste zusammengeführt, damit man nicht mit vielen einzelnen Dateien hantieren muß. Dieses Script gibt es doppelt. Eines extrahiert die veränderlichen Werte der ersten Versuchsreihe aus Abschnitt 3.3, das andere die Werte aus Abschnitt 3.4. Entsprechend gibt es auch das Auswertungs-Script extract.pl doppelt.
Das Perl-Script extract.pl generiert aus einem Teil der Daten in einer Liste eine mit Semikolon getrennte Liste, in der jeweils ein Ergebniswert abhängig von zwei Eingabewerten zusammengefaßt ist. Diese Daten können zum Beispiel in Excel übertragen werden, wo sie eine dreidimensionale Grafik ergeben.
Der Aufruf sieht folgendermaßen aus:
Tabelle B.4 erläutert die Parameter. So gibt zum Beispiel extract.pl 1.liste b:w s=4 i=10 t=2 f=0 n die Gesamtzahl aller Nops abhängig von der Fetch-Bandbreite und der Fenstergröße aus, bei vier Threads, 10% Speicherbefehlen, einer Untergrenze von drei Bytes (das Fenster muß mehr als zwei Bytes enthalten) und einer nur vom Füllstand der Fenster abhängigen Fetch-Strategie.
|
Für die zweite Versuchsreihe existiert das Programm noch einmal, braucht dann aber nur vier Parameter für die Freiheitsgrade s, i, j, und m.
Prinzipiell kann man aus einer Menge von Ausgabedateien des Simulators mit den beiden makelist.pl-Scripten beide Formen von Listen erzeugen, muß dann aber das richtige extract.pl für jede Liste benutzen.
Das Perl-Script klassify.pl wird mit
aufgerufen und generiert aus einem Trace des Simulators für den gesamten Mikrocontroller ein Pseudoprogramm für den Simulator des Prioritäten-Managers. Die Zeilen des Trace müssen in dieser Reihenfolge und durch Leerzeichen getrennt die zehn Werte enthalten, die in Tabelle B.5 aufgeführt sind.
|
Das Perl-Script intify.pl generiert aus der gleichen Eingabe eine Liste von 32bit-Zahlen, die die Speicherworte für die Testumgebung in Hardware darstellen (siehe Abschnitt 4.6.1). Diese Zahlenreihe wird dann noch mit dem Programm binaer in eine Binärdatei umgewandelt, die in den Speicher des Testboards geladen werden kann.
Der Speicher ist dabei aufgeteilt in vier Code-Bereiche zu je 51200 Bytes und einen Ausgabebereich, der den Rest des Speichers einnimmt. Die Codebereiche werden von binaer der Reihe nach mit Befehlsworten ausgefüllt, so daß das ursprüngliche Programm aus dem Trace mehrmals im Speicher stehen kann.
Das Programm memfile erzeugt direkt Binärdateien für das Board, die aber aus immer gleichen Befehlen bestehen, damit man die Hardware testen kann.
Das Programm binaus gibt den Ausgabeteil einer Binärdatei, die als Parameter angegeben wird, formatiert aus. Das Programm muß angepaßt werden, wenn die Testumgebung andere Ergebnisse in den Speicher zurückschreibt.