Die Parallelität in UNIX bezieht sich auf die Fähigkeit des Betriebssystems, mehrere Aufgaben zu verwalten (Prozesse oder Threads)
, die gleichzeitig ausgeführt werden obwohl sie die gleiche CPU teilen könnten. Dies wird durch eine Kombination von Mechanismen erreicht:
1. Prozesse:
- Jeder Prozess hat seinen eigenen Adressraum, Daten und Ressourcen.
- Sie sind unabhängige Einheiten und kommunizieren durch Mechanismen wie Rohre, Steckdosen und gemeinsames Gedächtnis.
- Der UNIX -Kernel wechselt schnell zwischen den Prozessen und ergibt die Illusion der parallelen Ausführung.
2. Themen:
- Threads sind leichte Prozesse, die denselben Adressraum und Ressourcen teilen.
- Sie bieten eine effizientere Möglichkeit, Parallelität als Prozesse zu implementieren, da sie weniger Overhead haben.
- Threads können mit Bibliotheken wie POSIX -Threads (pThreads) erstellt und verwaltet werden.
Schlüsselkonzepte:
- Zeitschneide: Die CPU verteilt jedem Prozess oder Faden eine kleine Zeitscheibe und wechselt schnell zwischen ihnen.
- Multiplexing: Der Kernel verwaltet mehrere Aufgaben, indem er ihre Ausführung verschachtelt und den Eindruck der parallelen Ausführung erweckt.
- Synchronisation: Mechanismen wie Mutexes, Semaphoren und Zustandsvariablen werden verwendet, um den Zugriff auf gemeinsame Ressourcen zwischen gleichzeitigen Aufgaben zu koordinieren.
- Kommunikation zwischenprozess (IPC): Methoden wie Rohre, Sockel und gemeinsamer Speicher ermöglichen es den Prozessen, Daten auszutauschen und deren Vorgänge zu synchronisieren.
Vorteile der Parallelität in UNIX:
- Verbesserte Reaktionsfähigkeit: Benutzer können mit dem System interagieren, während andere Aufgaben ausgeführt werden.
- Erhöhter Durchsatz: Mehrere Aufgaben können gleichzeitig ausgeführt werden, wodurch die Gesamtsystemleistung verbessert wird.
- Ressourcenfreigabe: Mehrere Aufgaben können dieselben Ressourcen teilen, die Speicheraufwand reduzieren und die Effizienz verbessern.
Beispiele für Parallelität in UNIX:
- Hintergrundprozesse: Aufgaben wie Druck- oder Herunterladen von Dateien können im Hintergrund ausgeführt werden, während der Benutzer mit anderen Anwendungen interagiert.
- Webserver: Mehrere Client -Anfragen können gleichzeitig durch einen einzelnen Webserverprozess behandelt werden.
- Datenbanksysteme: Gleichzeitige Transaktionen stellen sicher, dass die Datenintegrität gewartet wird, während mehrere Benutzer auf die Datenbank zugreifen.
Hinweis: Während Gleichzeitigkeit in Unix die Illusion der parallelen Ausführung ergibt, erfordert echte Parallelität mehrere CPUs.