In der Informatik ist Parallelität die gleichzeitige Ausführung mehrerer Befehlssequenzen. In einem Betriebssystem geschieht dies, wenn mehrere Prozess-Threads parallel laufen. Diese Threads können entweder über Shared Memory oder Message Passing miteinander kommunizieren.
Verteilung ist eine Form der Nebenläufigkeit, bei der die gesamte Kommunikation zwischen gleichzeitigen Threads ausschließlich über die Nachrichtenweitergabe erfolgt. Die Verteilung ist nützlich, weil sie eine mildere Skalierung des Ressourcenverbrauchs verwendet, wodurch diese Ressourcen gespart werden. Während die Parallelität von gemeinsam genutztem Speicher häufig einen einzelnen Prozessor pro Thread erfordert, ermöglicht die Verteilung die Koexistenz mehrerer Threads und die Kommunikation untereinander.
Parallelität ist auch eine Programmierdesign-Philosophie. Bei der parallelen Programmierung versuchen Programmierer, ein komplexes Problem in mehrere gleichzeitig ausgeführte Prozesse zu zerlegen, die einzeln angegangen werden können. Obwohl die parallele Programmierung eine bessere Programmstruktur bietet als die sequentielle Programmierung, ist sie nicht immer praktischer. In einem nebenläufigen System können gleichzeitig ausgeführte Berechnungen divergieren und unbestimmte Antworten liefern. Ihr System kann in einem Deadlock enden, wenn nicht wohldefinierte Maxima für den Ressourcenverbrauch jedes der ausführenden Threads zugewiesen werden. Um eine robuste Parallelität in einem Betriebssystem zu entwickeln, muss ein Programmierer daher sowohl ein Problem in einzelne, parallele Aufgaben reduzieren als auch die Ausführung, Speicherzuweisung und den Datenaustausch dieser Aufgaben koordinieren.