Diskussion:Atomare Operation

message: Im Englischen heißt das atomic. Wahrscheinlich auch ein Kunstwort, aber wenigstens im griechischen Stil, nämlich à la ἀτομικός = Atom-artig.
Atomar ist aber eine kombiniert griechisch-lateinische Kunstbildung von ἀτομ- und -arius, die zudem bei den Kraftwerken und Bomben eingesetzt wird.
Wer hat bloß diese Fehlbildung in die deutsche Informatik eingebracht ?
Warum können wir nicht in der Informatik wie die Engländer von atomisch und Atomizität sprechen ?
-- Nomen4Omen 21:03, 16. Nov. 2011 (CET)
replies: text: Weil die WP nicht zur Begriffsfindung dienen soll? --arilou (Diskussion) 14:19, 28. Aug. 2019 (CEST)
thread_title:  Atomare Katastrophe 

message: Im Abschnitt "atomare Op's in Prog-Sprachen" wurde der folgende Code eingebracht ... ich finde, er zeigt die wesentlichen Punkte nicht, weil hier ein htp-Server mit Ausgaben produziert wird - das ist als "Demo" vielleicht ok, aber nicht zur Konzeptvorstellung - und Go ist nun einmal keine allgemein gelehrte und bekannte Progsprache. Ich stelle den Code einmal hierher, wenn jemand damit was machen will ...
package main
import (
    "sync/atomic"
    "fmt"
    "net/http"
)
func main() {
    http.HandleFunc("/", root)
    fmt.Println("waiting for requests...")
    http.ListenAndServe(":8080", nil)
}
var counter = 0
func root(writer http.ResponseWriter, request *http.Request) {
    fmt.Printf("%s\n\n", request)
    // Add 1 to "counter" as an atomic operation
    count := atomic.AddInt32(&counter, 1)
    fmt.Fprintf(writer, "<html><body>")
    fmt.Fprintln(writer, request.URL.Path)
    fmt.Fprintf(writer, "%d visits\n", count)
    fmt.Fprintf(writer, "</body></html>")
}
Ohne die Benutzung der atomaren Operation atomic.AddInt32 wäre vor der Ausgabe durch fmt.Fprintf ein erneutes Schreiben in counter durch einen weiteren Prozess möglich. Mit der atomaren Operation ist sichergestellt, dass korrekt inkrementiert und ausgegeben wird.
--Haraldmmueller (Diskussion) 18:32, 10. Feb. 2018 (CET)
thread_title:  Go-Code 

message: Natürlich besteht eine Ähnlichkeit zwischen den beiden. Aber doch auch beachtenswerte Unterschiede.
# Atomare Befehle (Instruktionen) sind hardware-mäßig nicht unterbrechbar; atomare Operationen sehr wohl.
# Zur Implementierung von atomaren Operationen benötigt man atomare Befehle.
# Atomare Operationen sind quasi software-mäßig nicht unterbrechbar. Die Software sorgt (mit Checkpoints dafür), dass eine atomare Operation entweder ganz oder gar nicht ausgeführt wird.
Man kann die Begriffe in einem (1) Artikel bearbeiten, wenn man "Konsistenzebenen" einführt. Die atomaren Befehle unterstützen die unterste Konsistenzebene, atomare Datenbank-Operationen (-Transaktionen) sind ziemlich genau ein Ebene höher. Eine weitere Ebene höher sind evtl Jahresabschlüsse von Firmen anzusiedeln. –Nomen4Omen (Diskussion) 20:58, 12. Feb. 2022 (CET)
replies: text: Man könnte auch als -hm- Beispiel angeben, dass eine atomare Operation auf "niedriger Ebene" auch aus einem einigen (Assembler-)Befehl bestehen kann ~ dass also der "Verbund an Operationen" auch die Trivialvariante "besteht aus 1 Operation" sein kann. --arilou (Diskussion) 09:24, 14. Feb. 2022 (CET)
replies: text: Wenn ein Rechner Nebenläufigkeit (Parallelität) unterstützt – und das tun praktisch alle modernen Klein- und Großrechner – dann kann eine Unterbrechung zwischen zwei beliebigen Instruktionen geschehen, denn der Prozessor bedient dann eine Aktivität, die eine höhere Priorität hat. Um einen "Verbund an Operationen" atomar zu machen, muss ein nicht unerheblicher programmtechnischer Aufwand getrieben werden. Bei Einzeloperationen kommt dafür praktisch kein Bedarf vor. Allerdings müssen manche bei der Programmierung von Semaphoren eingesetzten und besonderen Instruktionen (Compare-and-swap- bzw. Load-Link/Store-Conditional) (als Einzelinstruktionen) atomar sein. –Nomen4Omen (Diskussion) 16:11, 15. Feb. 2022 (CET)
thread_title:  Zusammenführung von atomarer Operation und Befehl