<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Fetch-and-add</id>
	<title>Fetch-and-add - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Fetch-and-add"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Fetch-and-add&amp;action=history"/>
	<updated>2026-06-02T04:02:32Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Fetch-and-add&amp;diff=1660474&amp;oldid=prev</id>
		<title>imported&gt;Ulanwp: Fehlenden Sprachparameter eingefügt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Fetch-and-add&amp;diff=1660474&amp;oldid=prev"/>
		<updated>2026-03-06T14:08:35Z</updated>

		<summary type="html">&lt;p&gt;Fehlenden Sprachparameter eingefügt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Fetch-and-add&amp;#039;&amp;#039;&amp;#039; ist ein Fachbegriff der [[Informatik]], welcher ein Verfahren zur [[Atomar#Informatik|atomaren]] Veränderung eines Speicherbereichs beschreibt.&lt;br /&gt;
&lt;br /&gt;
== Arbeitsweise ==&lt;br /&gt;
Das Verfahren wird mithilfe eines Funktionsaufrufs, der vom [[Betriebssystem]] verarbeitet wird, implementiert.&lt;br /&gt;
Der Inhalt einer Speicherzelle wird ausgelesen und im selben Speicherzyklus durch einen neuen Wert überschrieben, der um 1 größer ist.&lt;br /&gt;
Der Vorteil ist, dass andere [[Prozess (Informatik)|Prozesse]] den Wert der Variable während dieses Vorgangs nicht verändern können. Inkonsistenzen und Datenverluste sind&lt;br /&gt;
somit ausgeschlossen.&lt;br /&gt;
Für die Verwendung von Fetch-and-add muss eine entsprechende Hardware-Unterstützung vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
== Implementierung ==&lt;br /&gt;
Beispielhaft soll eine mögliche Umsetzung der Technik in der Programmiersprache C angegeben werden. Je nach verwendeter Programmiersprache kann&lt;br /&gt;
sich der Aufruf unterscheiden.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;&amp;lt;atomic&amp;gt;&amp;gt; &amp;#039;&amp;#039;&amp;#039;int&amp;#039;&amp;#039;&amp;#039; FetchAndAdd(&amp;#039;&amp;#039;address&amp;#039;&amp;#039; alterWert) {&lt;br /&gt;
     &amp;#039;&amp;#039;int&amp;#039;&amp;#039; wert = *alterWert;&lt;br /&gt;
     *alterWert = wert + 1;&lt;br /&gt;
     &amp;#039;&amp;#039;&amp;#039;return&amp;#039;&amp;#039;&amp;#039; wert;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Für diese Implementierung wird ein Zeiger auf die Speicherzelle, die verändert werden soll, verwendet (hier alterWert).&lt;br /&gt;
&lt;br /&gt;
== Abgrenzung zu anderen Verfahren ==&lt;br /&gt;
Neben Fetch-and-Add gibt es noch weitere Möglichkeiten, exklusiven Zugriff auf Speicherbereiche zu gewähren. So reicht es bei Einprozessorsystemen, die&lt;br /&gt;
Ausführung von Interrupts zu verhindern, während der Speicherinhalt durch einen Prozess verändert wird.&lt;br /&gt;
Auf Systemen mit mehreren Prozessoren ([[Mehrkernprozessor|Multicore-Architekturen]]) reicht dieses Vorgehen jedoch nicht aus.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Alternative zu Fetch-and-add ist [[Compare-and-swap]].&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{cite journal |first=Maurice |last=Herlihy |title=Wait-free synchronization |journal=ACM Trans. Program. Lang. Syst. |volume=13 |issue=1 |pages=124–149 |doi=10.1145/114005.102808 |date=1991-01 |url=https://cs.brown.edu/~mph/Herlihy91/p124-herlihy.pdf |access-date=2009-08-05 |language=en}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Betriebssystemtheorie]]&lt;br /&gt;
[[Kategorie:Parallelverarbeitung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Ulanwp</name></author>
	</entry>
</feed>