Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Prozesse Prozesse Vervielfältigen von Prozessen: fork »

Multiprocessing contra Multithreading

UNIX hat ein durchaus schlankes und effizientes Prozesskonzept, das auf dem Aufruf von fork() basiert. Das Teilen der Prozesse mit allen Ressourcen ermöglicht es leicht, Aufgaben auf mehrere Prozesse zu verteilen. Davon machen die meisten Dämonen auch reichlich Gebrauch. Durch die Aufteilung in zwei Prozesse können sich parallele Jobs nicht so leicht gegenseitig durcheinander bringen. Dieses Konzept ist ideal für parallel laufende Serverprozesse.

Im Gegensatz zu einem Prozess arbeitet ein Thread nicht mit einem eigenen Speicherbereich, sondern teilt sich mit dem Vaterprozess alle Ressourcen. Normalerweise besteht ein Thread aus einer Funktion, die parallel zum Rest des Programms gestartet wird. Threads haben ihr Haupteinsatzgebiet im Bereich der grafischen Oberflächen. Hier ist es erforderlich, dass die grafische Darstellung betreut wird, insbesondere das Verarbeiten der Nachrichten, die über Bildneuaufbau, Mauspositionen und ähnliches berichten. Dies muss auch dann präsent sein, wenn das Programm gerade seiner eigentlichen Aufgabenstellung nachgeht und dabei vielleicht langwierige Berechnungen durchführt. Dazu ist ein Thread ideal, da er schnell ohne großen Aufwand programmiert werden kann. Da die Aufgaben der Threads fast keine Berührungspunkte miteinander haben, muss man sie auch nicht gegeneinander absichern.

Beide Konzepte haben also völlig unterschiedliche Umgebungen, in denen sie arbeiten. Die in Diskussionen manchmal anzutreffende Aussage, dass Threads so unglaublich viel performanter seien, ist also Augenwischerei. Wer einen Server durch Threads parallelisiert, wird zumindest unter UNIX soviel Verwaltungsarbeit durch die Synchronisation der Threads als Überhang bekommen, dass sich der Aufwand oft nicht lohnt. In der Konsequenz bedeutet Threading, dass jede globale Variable, jeder Dateizeiger oder sonstige Ressource, die gemeinsam genutzt wird, vor dem gegenseitigen Verändern zu schützen ist. Lediglich auf Systemen mit einem anderen Prozesskonzept, die statt dem fork() nur einen kompletten Neustart des Programmes kennen, wird man eventuell auf das Threading ausweichen, weil es dort sehr umständlich ist, die Daten des Vaters an den Sohn zu übermitteln.

Das Konzept mit fork() ist derart schnell und flexibel, dass der Thread erst in den letzten Jahren bei einigen UNIX Systemen Einzug gehalten hat. Inzwischen existiert ein POSIX-Standard für die Programmierschnittstelle der Threads. Diese wird ab Seite thread behandelt.



« Prozesse | Prozesse | Vervielfältigen von Prozessen: fork »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de