Definition „Concurrency“ Was ist Nebenläufigkeit?
Anbieter zum Thema
Nebenläufigkeit bezeichnet die Fähigkeit eines Systems, Prozesse voneinander unabhängig zu bearbeiten bzw. auszuführen. Häufig wird der Begriff mit Parallelität gleichgesetzt. Dies ist zwar nicht gänzlich falsch, aber auch nicht vollständig richtig.

IT-Systeme müssen zahlreiche Vorgänge durchführen können. Hierunter fallen beispielsweise Berechnungen, Befehle oder auch Anweisungen. Wenn ein System dabei in der Lage ist, zwei (oder mehrere) solcher Prozesse voneinander getrennt zu erledigen, spricht man von Nebenläufigkeit. Grundsätzlich wird dabei zwischen einer „scheinbaren“ und einer „echten“ Ausführung unterschieden.
Scheinbare vs. echte Nebenläufigkeit
Scheinbar nebenläufig arbeitet ein System im „präemptiven Multitasking“. Diese Variante war lange Standard und ist es vielerorts noch immer. Nach einer bestimmten Zeit wird ein Prozess unterbrochen und „schlafen gelegt“. Das System sucht nun nach einem anderen rechenbereiten Vorgang und startet diesen. Dabei kann es sich auch um den eben erst unterbrochenen Prozess handeln.
Alle Vorgänge erhalten eine sogenannte „Zeitscheibe“. Darunter ist die Dauer zu verstehen, die sie laufen dürfen, bevor sie unterbrochen werden. Über die Dauer entscheidet in Betriebssystemen der sogenannte Scheduler. Die dadurch entstehende Warteschleife nennt sich auch Queue.
Benötigt ein Prozess während seiner Ausführung eine Funktion des Betriebssystems, wird der Vorgang sofort unterbrochen und als „nicht rechenbereit“ gekennzeichnet. Er wird erst wieder aufgenommen, wenn die Funktion bereitgestellt wurde.
Echt nebenläufig arbeiten Mehrkernprozessoren oder auch physisch getrennte CPUs. Auf diese Weise können die Vorgänge auch zeitgleich getrennt voneinander durchgeführt werden. Netzwerke mehrerer Computer arbeiten deshalb beispielsweise immer nebenläufig.
Nebenläufigkeit und Parallelität
Nebenläufigkeit als Begriff macht keine Angabe darüber, wann ein Prozess bearbeitet wird. Folgende Modelle sind denkbar, wenn es die zwei Vorgänge A und B gibt:
- sequenziell: erst A und dann B (oder umgekehrt)
- verzahnt: erst Teile von A und dann Teile von B usw.
- parallel: A und B gleichzeitig
Nur im letzten Fall spricht man von Parallelität, da die Prozesse jetzt tatsächlich gleichzeitig und unabhängig voneinander ablaufen. Beim Term der Parallelität handelt es sich also um kein direktes Synonym zum Ausdruck der Nebenläufigkeit. Vielmehr ist letztere der allgemeine Oberbegriff, der die Parallelität stets miteinschließt. Es spielt übrigens definitorisch ebenfalls keine Rolle, ob die bearbeiteten Prozesse der identischen Aufgabe oder voneinander getrennten Vorhaben dienen.
Probleme bei der Nebenläufigkeit
Nebenläufige Systeme wirken auf den ersten Blick vorteilhaft. Die Fähigkeit, Prozesse getrennt voneinander bearbeiten zu können, ist stets wünschenswert. Allerdings existieren auch zwei Probleme, mit denen dabei umgegangen werden muss. Die sogenannte Verklemmung und das Aushungern. Beides sind Schwierigkeiten, die vorwiegend bei einer parallelen Bearbeitung auftreten.
Bei der Verklemmung benötigen mehrere Prozesse zur selben Zeit das identische Betriebsmittel benötigen. Bildlich kann man sich eine Kreuzung vorstellen, auf der zur selben Zeit aus allen Richtungen Autos kommen. Beim Aushungern wartet der zweite Prozess darauf, dass der erste eine bestimmte Ressource freigibt, wozu es aber nicht kommt. Nebenläufige Prozesse werden deshalb mit Vorliebe gesteuert und in Form des präemptiven Multitaskings bearbeitet.
(ID:46528609)