Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger.

Slides:



Advertisements
Ähnliche Präsentationen
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Advertisements

Linux – Drucken mit CUPS DV-Fachseminar 2004 Linux – Drucken mit CUPS Andrea Lorenz Rechen- und Kommunikationszentrum RWTH Aachen.
C Tutorium – Semaphoren –
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Semaphore void Passieren (semaphore &s) { if (s > 0) { s--;
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
SAP R/3 - Speichermanagement
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
Funktion defined Die Funktion defined testet, ob eine Variable einen anderen Wert als undef enthält. Ist der Wert undef, so wird falsch zurückgegeben,
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Vorl. 6: Single- und Multitasking Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Die Skriptsprache Perl (5) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Programmierung 1 - Repetitorium
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
SOFTWARE.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Betriebssysteme & BIOS
Proseminar Programmiersprachen Python
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
CGI (Common Gateway Interface)
PHP Basic.
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Unterprogramme in JAVA
Was mich ursprünglich von Perl überzeugt hat. Gegeben ist eine Textdatei, deren Größe unbekannt ist. Sie ist jedoch so klein, daß sie komplett in den Speicher.
Algorithmen und Datenstrukturen Übungsmodul 8
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
1 Projekt1: Prozesse unter Unix Aufgabenstellung 2: Interprozessnachrichtentausch.
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Betriebssysteme: Windows-OS
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
2.3 Implementierung von Prozessen
WINDOWS 2003 Server. Standart Varianten für 32 Bit: Web Edition: Unterstützt Single(1)- oder Dual(2)-Prozessor-Systeme und bis zu 2 GB RAM 32-Bit Standard.
Übung Betriebssysteme, Uni Innsbruck 1 Projekt1: Prozesse unter Unix Teil II Prozesse / Systemaufrufe Fehlerbehandlung.
1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin
Windows, Mac oder doch Linux?
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
Ablauf von Daten- verarbeitungsprozessen Gliederung: ● Zeitliche Steuerung von Abläufen – Druckauftragsverarbeitung – scheinbare Gleichzeitigkeit von Prozessen.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Threads Alexander Sczyrba Jan Krüger.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Vorbesprechung, Administrativa, Einführung Alexander Sczyrba
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Kommunikation von Prozessen Signale und Pipes Alexander Sczyrba
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Programmieren mit sockets Alexander Sczyrba
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Netzwerke Alexander Sczyrba Jan Krüger.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung I/O Multiplexing Alexander Sczyrba
Netzwerk - Programmierung
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Concurrent Clients Alexander Sczyrba
Netzwerke - Protokolle
Netzwerk - Programmierung
Prof. Dr. Dieter Steinmann – Hochschule Trier
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
Magische Wand Ein Spiel zum Thema: Betriebssysteme.
Netzwerk - Programmierung
Linux.
Implementieren von Klassen
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger

Center for Biotechnology Bielefeld Bioinformatics Service Übersicht ● Prozesse ● fork() ● Parents und Children ● system() und exec()

Center for Biotechnology Bielefeld Bioinformatics Service Prozesse moderne Betriebssysteme (UNIX-artige (Linux, OSX, Solaris,[Free— Net—Open]BSD, Windows ab NT/2000) sind multitasking-fähig: ● mehrere Programme können simultan ablaufen ● jedes in separatem Prozess ● das OS bestimmt den Wechsel zwischen den einzelnen Prozessen

Center for Biotechnology Bielefeld Bioinformatics Service Multitasking in Perl Perl unterstützt zwei Arten von Multitasking: 1.Fork() basiert auf traditionellem UNIX Multiprozess-Modell erlaubt dem aktuellen Prozess, sich selbst zu klonen Ergebnis: zwei in fast jeder Hinsicht identische Prozesse 2.Multithreading modernes Konzept eines Threads Aufgaben werden in einem einzigen Prozess gehalten einzelnes Programm kann aus nebeneinander ausgeführten Threads bestehen, von denen jeder unabhängig von den anderen läuft

Center for Biotechnology Bielefeld Bioinformatics Service fork() ● jedem Prozess im System wird eine eindeutige pos. Zahl zugeordnet: Prozess-ID oder PID ● Funktion fork() ist in allen UNIX Versionen von Perl verfügbar ● erzeugt ein exaktes Duplikat des aktuellen Prozesses, nach dem fork existieren parent und child ● child-Prozess übernimmt: ● aktuelle Werte aller Variablen ● Dateihandles (inkl. Daten in I/O-Puffern) ● weitere Datenstrukturen ● Voraussetzung: Parent und Child wissen, wer von ihnen wer ist

Center for Biotechnology Bielefeld Bioinformatics Service Aufgabe ● Ermittle, wie viele Prozesse unter Deiner userid laufen. Verwende dazu den Befehl ps mit den entsprechenden Opionen (siehe man ps). ● Welche Informationen liefert ps? ● Der Befehl p[s]tree* gibt Informationen über Prozesse, ihre Kinder und Eltern in Baumstruktur aus. ● Welcher Prozess ist der Parent aller Prozesse? * Solaris/BSD – ptree, Linux/OSX – pstree → unter OSX nicht Teil des Systems

Center for Biotechnology Bielefeld Bioinformatics Service fork() $pid = fork ● verzweigt in einen neuen Prozess ● Rückgabewert ● im Parent-Prozess: PID des Child-Prozesses ● im Child-Prozess: 0 ● im Falles eines Fehlers: undef ● Vgl. perldoc -f fork

Center for Biotechnology Bielefeld Bioinformatics Service Hilfreiche Funktionen ● $pid = getppid() ● gibt PID des Parent-Prozesses zurück ● $$ ● enthält die PID des aktuellen Prozesses ● $pid = wait() ● wartet auf die Terminierung eines Child Prozesses und gibt die PID des terminierten Prozesses zurück

Center for Biotechnology Bielefeld Bioinformatics Service Beispiel fork() print "PID=$$\n"; my $child = fork(); die "cannot fork: $!" unless defined $child; if ($child == 0) { # child| my $ppid = getppid(); print "Child-Process: PID=$$, Parent=$ppid\n"; exit(0); }else { # Parent my $ppid = getppid(); print "Parent-Process: PID=$$, Child=$child, Parent=$ppid\n"; wait(); }

Center for Biotechnology Bielefeld Bioinformatics Service Zombies ● terminiert der Parent vor dem Child, wird dieser zum ’Waisenkind’ und vom Init-Prozess ’adoptiert’ ● ein Prozess, der terminiert ist, dessen Parent aber nicht darauf gewartet hat, wird Zombie genannt

Center for Biotechnology Bielefeld Bioinformatics Service Aufgabe ● ändere das fork()-Beispiel so, dass ● 1. das Child vom init-Prozess übernommen wird ● 2. das Child zu einem Zombie wird ● Benutze top, ps, p[s]tree um das Verhalten der Skripte zu analysieren

Center for Biotechnology Bielefeld Bioinformatics Service system() und exec() ● system() ● führt ein anderes Programm als Unterprozess aus ● wartet auf dessen Beendigung ● exec() ● ersetzt den aktuellen Prozess durch angegeben Befehl ● bei Erfolg kehrt der Aufruf nie zurück ● neuer Prozess hat die gleiche PID wie alter Prozess ● verwendet dieselben STDIN-, STDOUT-, STDERR- Dateihandles

Center for Biotechnology Bielefeld Bioinformatics Service Aufgabe Schreibe ein Programm, das alle 5 Sekunden die aktuelle Uhrzeit ausgibt.Verwende dazu: ● exec() ● date