Skip to content
Rookfighter edited this page Jul 2, 2014 · 7 revisions

Realzeitnachweis

Taskzeiten

Die Prozesszeiten, Deadlines und Phasen wurden auf der Seite Realzeitsystem im Abschnitt Anforderungen hergeleitet.

Die maximalen Ausführungszeiten der Tasks wurden in mehreren Tests gemessen. Die Prioritäten werden anhand der maximalen Ausführungszeit und der minimalen Prozesszeit vergeben. Damit erhalten die Tasks in dieser Reihenfolge absteigende Prioritäten: Mapper, Simulation, Interpreter, Input.

Zusammenfassend gelten für die Tasks folgende Werte:

Wert Mapper Simulation Interpreter Input
tEMax 0ms 124ms 117ms 940ms
tPMin 2331ms 333ms 2331ms 2331ms
tDMax 31ms 333ms 400ms 1900ms
tDMin 0ms 0ms 0ms 0ms
tPH 0ms 0ms 0ms 0ms
Priorität 99 98 97 96

Blockierzeiten

Die Ausführungszeiten der kritischen Bereiche wurden in mehreren Tests gemessen.

Folgende Werte haben sich ergeben:

Audioqueue Hypothesenqueue Simulation Audiopufferpool Stringpool
Mapper - 0.4ms 0.2ms - 0.3ms
Simulation - - 0.8ms - -
Interpreter 0.4ms 0.1ms - 0.3ms 0.3ms
Input 0.1ms - - 0.3ms -
Priority Ceiling 97 99 99 97 99

Die Tasks sind in der Tabelle entsprechend ihrer Priorität geordnet (höchste oben). Nun werden die Blockierzeiten der Tasks entsprechend den Regeln für Round Robin mit statischen Prioritäten und Priority Inheritance Protocoll berechnet.

Mapper

tBT = 0.8ms + 0.3ms = 1.1ms

tBR = 0.1ms + 0.8ms + 0.3ms = 1.2ms

tB = 1.1ms

Simulation

tBT = 0.3ms

tBR = 0.1ms + 0.3ms = 0.4ms

tB = 0.3ms

Interpreter

tBT = 0.3ms

tBR = 0.1ms + 0.3ms = 0.4ms

tB = 0.3ms

Input

tB = 0

Die Blockierzeiten sehen also wie folgt aus:

Wert Mapper Simulation Interpreter Input
tB 1.1ms 0.3ms 0.3ms 0.0ms

Realzeit Bedingungen

Für das Testen der Realzeitbedingungen wurde die Applikation realzeitNachweis verwendet. Diese liest eine Inidatei mit den Daten der Tasks ein und vollführt einen hinreichenden wie auch einen notwendigen Scheduling Test (für Round Robin mit statischen Prioritäten).

Hinreichende Bedingung

Der Auslastungsgrenzwert bei 4 Tasks beträgt 0.7568. Für die einzelnen Tasks fallen die Werte wie folgt aus:

Wert Mapper Simulation Interpreter Input
u 1.1951 1.1605 1.1604 1.1596
uMax 0.7568 0.7568 0.7568 0.7568
Damit erfüllt keine der Tasks die hinreichende Bedingung. Daher muss die notwendige Bedingung für alle Tasks angewendet werden.

Notwendige Bedingung

Durch das iterative Verfahren der notwendigen Bedingung ergeben sich die folgenden maximalen Reaktionszeiten der Tasks:

Wert Mapper Simulation Interpreter Input
tRMax 0.0ms 124.3ms 241.3ms 1801.0ms
tDMax 31ms 333ms 400ms 1900ms

Damit sind sämtlich maximale Reaktionszeiten kleiner als die maximalen Deadlines der Tasks und die notwendige Bedingung ist für alle Tasks im System erfüllt. Das System ist also ein Realzeitsystem.

Belastungstest

Das System wurde einem Belastungstest ausgesetzt. Dabei wurde durch externe Tasks eine hohe CPU-Last (doSomeWork) und eine hohe IO-Last (doSomeIO) verursacht. Trotz dieser Belastung wurden alle Deadlines zu jedem Zeitpunkt eingehalten. Die Worst-Case Fälle nach einigen Tests sind wie folgt ausgefallen.

Wert Mapper Simulation Interpreter Input
tRMax 0ms 113ms 178ms 1205ms