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.

Atomarität<br />

• Ist eine Java-Anweisung „atomar“?<br />

• Z.B.: Konto.Update(Betrag + Konto.Stand());<br />

• Oder zumindest: Buchung(k, …);<br />

Auch dann gäbe es aber<br />

zwei mögliche Abläufe:<br />

Konto würde bei „unglücklicher“<br />

Reihenfolge evtl.<br />

kurzzeitig überzogen!<br />

• Atomare Folge von Operationen<br />

• Während die Folge ausgeführt wird, werden keine anderen<br />

Operationen (quasi) gleichzeitig ausgeführt<br />

• Wenn die CPU mit der ersten Operation der atomaren<br />

Folge beginnt, arbeitet sie diese bis zur letzten ab,<br />

ohne zwischendrin etwas anderes („störendes“) zu tun<br />

• Unterbrechungen sind höchstens zwischen atomaren Folgen erlaubt<br />

807<br />

Relative Atomarität<br />

• Aber: „unkritische Dinge“ könnten eigentlich doch<br />

parallel zu einer atomaren Folge ausgeführt werden<br />

• Quasi „heimlich“?<br />

• Und was genau ist (in welchem Sinne?) unkritisch?<br />

• Teile eines ganz anderen Programms?<br />

• Auf den Kontostand nur lesend zugreifen?<br />

• Leere Schnittmenge bzgl. gemeinsamer / veränderter Variablen?<br />

„Atomar“ ist ein interpretationsbedürftiger relativer Begriff!<br />

808<br />

333

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!