12.01.2014 Aufrufe

2-up - ETH Zürich

2-up - ETH Zürich

2-up - ETH Zürich

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.

Lieber Thread-Scheduler!<br />

Wie kann man Atomarität von Anweisungsfolgen erreichen?<br />

…<br />

x = 0;<br />

y = 0;<br />

…<br />

„Lieber Thread-Scheduler, bitte<br />

unterbrich mich jetzt nicht!“<br />

…<br />

write(x,0)<br />

write(y,0)<br />

…<br />

„Danke, lieber Thread-Scheduler, du darfst<br />

mich jetzt gerne wieder unterbrechen!“<br />

813<br />

Unterbrechungssperren auf<br />

Java-Ebene mittels Prioritäten?<br />

…<br />

int p = getPriority();<br />

setPriority(Thread.MAX_PRIORITY);<br />

x = 0; y = 0; // kritischer Abschnitt<br />

setPriority(p);<br />

Ist das eine<br />

funktionierende<br />

und gute Lösung<br />

für Unterbrechungssperren?<br />

• Beachte: Auch bei einer „Unterbrechungssperre“ können<br />

durchaus andere Dinge parallel ablaufen<br />

• Der Systemprozess, wo der Thread-Scheduler eingebettet ist (z.B. die<br />

Java-VM), kann vom Betriebssystem zeitweise suspendiert werden<br />

• Ein Mehrkernprozessor könnte andere Threads „echt“ parallel ausführen<br />

• Die „Umwelt“ ändert sich auch während einer Unterbrechungssperre<br />

• Es kommt also darauf an, in welcher „Hinsicht“<br />

Atomarität gewährleistet werden soll / kann!<br />

814<br />

336

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!