25.11.2014 Aufrufe

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

38<br />

dann terminieren wird.<br />

.<br />

Aus diesem Theorem folgt, dass wenn die Prozedur FiniteRun abbricht, der Wert von<br />

k nur immer wieder erhöht werden muss, sodass die Prozedur terminiert. Der Faktor,<br />

um den k erhöht wird, hat einen großen Einfluss auf die Performance der Prozedur.<br />

Wenn wir zu wenig erhöhen, dann muss die Prozedur unnötig oft ausgeführt werden,<br />

erhöhen wir zu viel, dann werden die darausfolgenden SAT-Probleme unnötig<br />

aufwendig.<br />

4.2. Optimierungen<br />

Für diesen Basisalgorithmus gibt es sehr viele Möglichkeiten, die Performance zu<br />

steigern. Als erstes sind hier die Formeln der Beweispartitionierung zu nennen, die<br />

typischer Weise hochredundant sind, und zwar in der Form, dass viele Subformeln<br />

syntaktisch verschieden aber semantisch identisch sind. Um diese Redundanzen zu<br />

eliminieren gibt es eine ganze Reihe von Algorithmen.<br />

k<br />

Weitere Effektivitätssteigerungen lassen sich erzielen, wenn man SUFF 0<br />

durch<br />

k<br />

SUFF j<br />

für j > 0 ersetzt (es werden nur die Zeitpunkte größer oder gleich j getestet).<br />

In den meisten Fällen scheint j = k die effektivste Wahl zu sein. Das ist auch nicht<br />

weiter verwunderlich, weil in diesem Fall der SAT-Algorithmus die Finalbedingung<br />

nur in einem Zustand wiederlegen muss, und nicht in allen. Dummerweise verlieren<br />

wir für j > 0 die Garantie, dass der Prozess terminiert. In der Praxis sind Divergenzen<br />

bei einigen Hardwaremodellen aufgetreten, die sich aber mit dem Setzen von j = k –1<br />

korrigieren ließen.<br />

Als letzte Optimierungsmöglichkeit soll hier die Invarianz der Formel<br />

SUFF k<br />

j<br />

(M ')<br />

von einer Iteration zur nächsten genannt werden. Sie erzeugt die<br />

meisten CNF - Formeln, die vom SAT-Algorithmus wiederlegt werden müssen. Es ist<br />

klar, dass es sehr uneffizient ist, diese bei jeder Iteration neu zu bestimmen. Besser<br />

wäre es, alle Klauseln von SUFF k<br />

j<br />

(M ')<br />

und die von ihr abgeleiteten von einem SAT-<br />

Aufruf für den nächsten zu speichern. Obwohl dies ein enormes<br />

Optimierungspotential darstellt, wurde es hier nicht implementiert, da dazu der SAT-<br />

Algorithmus modifiziert werden müsste.<br />

5. Praktische Erfahrungen<br />

Die Leistungsfähigkeit des Interpolations-basierten Modellprüfers wurde mit zwei<br />

verschiedenen Problemstellungen aus kommerziellen Mikroprozessordesigns getestet.<br />

Die erste Problemstellung ist eine Sammlung von Bedingungen, mit denen zwei<br />

Einheiten des PicoJava II Prozessors zusammen Verifiziert werden sollen. Von diesen<br />

Bedingungen wurden 20 repräsentative ausgewählt, die alle erfüllt sind, und als<br />

Benchmark verwendet. Alle diese Probleme sind Sicherheitseigenschaften der Form<br />

Gp, wobei p eine Formel ist, die sich meist nur auf den aktuellen Zeitpunkt bezieht,<br />

manchmal auch auf den nächsten Zeitpunkt. Die Anzahl der Zustandsvariablen

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!