Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Kommunikation von Prozessen Signale und Pipes Alexander Sczyrba

Slides:



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

C Tutorium – Semaphoren –
Eine kleine Einführung
2 Systemdienste Wiederholungsempfehlung: Rechnerorganisation Beachte: Systemaufrufe sind sprachunabhängig. Ihre Beschreibung bezieht sich daher auf das.
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
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,
1A: POSIX POSIX (Portable Operating System) ist ein Standard für UNIX-Systeme. Er dient dazu, Programme portabel unter UNIX und Derivaten zu tauschen und.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
OpenMP Präsentation im Rahmen des Seminars
DbjFileManager Paul Fruntzek Michael Stanek. Überblick Unterste Ebene im Schichtenmodell Schnittstelle zum BS (Low-Level) Aufgabenbereich: Persistente.
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK TotalView Debugger Vorgestellt von Marco Dyballa mail:
Die Skriptsprache Perl (6) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (5) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Einführung MySQL mit PHP
Error Handling unter Visual FoxPro. © 1999 TMN-Systemberatung GmbH ON ERROR n ON ERROR DO ERRHAND WITH error(), sys(16), message(), lineno(1) – Globales.
Higher Order Perl Martin Busik Vortrag über das Buch von Marc Jason Dominus.
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
Socket-Programmierung
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
FORTRAN 77.
Rekursion Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren.
ScienceAndTechnologyWissenschaftUndTechnikScienceAndTechnologyWissenschaftUndTechnik.
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Bs Gemeinsame Datensegmente am Beispiel Solaris [Beachte: Unix/Linux setzen keine Hardware-Segmentierung voraus und sprechen daher statt von.
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 SS 2005
Μ Version 1.0Seite 1µVision Start Debugger Set Breakpoint µVision Debugger.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 2 Dr. W. Narzt u. Dr. A. Stritzinger.
Wissenschaftler haben vor kurzem eine außerordentliche
1 Projekt1: Prozesse unter Unix Aufgabenstellung 2: Interprozessnachrichtentausch.
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
Der formelle Imperativ – the Imperative
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Robuste Programme durch Ausnahmebehandlung
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Lösung Hausaufgabe 4-1 #!perl -w $infile = "daten4-1.txt"; $count1 = $count2 = 0; open (IN,$infile) || die "Oeffnen: $infile $!"; while ( ){ $count2 +=
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
1 Lösung Hausaufgabe 5-1 Seite 1 #!perl -w # Datei Oeffnen und Variablen initialisieren $infile = "daten5-3.txt"; $im=$iw=$sm=$sw=0; open (IN,$infile)
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
PERL Eike Busse2 Gliederung 1.Einleitung 2.Geschichte 3.Eigenschaften/Merkmale von Perl 4.HTTP Server und Perl 5.Sicherheit 6.Perl programmieren.
C Tutorium – Shared Memory – Knut Stolze. 2 Shared Memory Ein Speicherbereich, auf den mehrere Prozesse Zugriff haben – Also kein privater Speicher –
Beendigung von Prozessen Normale Beendigung –durch Ende von main –durch Aufruf von exit() Anormale Beendigung –Aufruf von abort() –interne oder externe.
G Stunde DEUTSCH 1.  Unit: Family & homeFamilie & Zuhause  Objectives:  Phrases about date, weather and time-telling  Family and family relations.
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 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 Prozesse Alexander Sczyrba Jan Krüger.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung I/O Multiplexing Alexander Sczyrba
Netzwerk - Programmierung
© Tobias Bäuerle, Virtuelle Präsenz WS10/11, Uni Ulm Übung Second Life Techniken.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Concurrent Clients Alexander Sczyrba
SAS Backstage Biljana Gigić1, Andreas Deckert2
Netzwerk - Programmierung
Netzwerk - Programmierung
Entwicklungen, die „wir“ erreichen wollen
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
Data Hazards 0x30 sub $6 $0 $1 0x34 add $7 $6 $
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
Echtzeit-Betriebssysteme
You need to use your mouse to see this presentation
Einführung in die Programmierung
 Präsentation transkript:

Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Kommunikation von Prozessen Signale und Pipes Alexander Sczyrba Jan Krüger

Center for Biotechnology Bielefeld Bioinformatics Service Kommunikation von Prozessen Parent und Child Prozesse koennen kommunizieren über ● Signale ● Pipes ● Shared Memory

Center for Biotechnology Bielefeld Bioinformatics Service Signale ● Technik um Nachrichten an Prozesse zu schicken ● z.B. erzeugt division by zero das Signal SIGFPE ● Prozesse haben 3 Möglichkeiten Signale zu verarbeiten : 1.Ignorieren 2.Default-Aktion ausführen (SIGFPE → Terminierung) 3.Bereitstellung einer Funktio, die für das entsprechende Signal aufgerufen wird (Signalhandler)

Center for Biotechnology Bielefeld Bioinformatics Service POSIX Signale (Ausschnitt) T: terminate, C: continue, ! : can't be caught, R: resume, S : stop, C :core dump

Center for Biotechnology Bielefeld Bioinformatics Service kill() Perl-Skript kann anderem Prozess mit Hilfe von kill() ein Signal senden : $count = kill ● Sendet Signal $signal an einen oder mehrere Prozesse ● Signal kann numerisch oder symbolisch festgelegt werden Liste eines oder mehrere Prozesse ● Rückgabe: Anzahl der Prozesse an die das Signal erfolgreich versandt wurde

Center for Biotechnology Bielefeld Bioinformatics Service Abfangen von Signalen ● Zufügen eines Signalhandlers zu globalen Hash %SIG ● Name des Signal als Hash-Key (z.B. $SIG{INT}) ● Wert ist eine Referenz auf eine Subroutine ● Beachte : keine aufwendigen Funktionen in Signalhandlern

Center for Biotechnology Bielefeld Bioinformatics Service Aufgabe(n) 1.Schreibe ein Skript, das endlos alle 5 Sekunden „I'm sleeping.“ ausgibt. 2.Wie kann das Skript terminiert werden ? 3.Erweitere das Skript so das das INT Signal abgefangen wird. Das Program soll nach dem 3. INT Signal terminieren.

Center for Biotechnology Bielefeld Bioinformatics Service Pipes ● ursprüngliche Form von Unix Interprocess Communication (IPC) [1973] ● nützlich für viele Operationen ● Nachteil: haben keinen Namen, können daher nur durch verwandte Prozesse genutzt werden ● wurde später [1983] durch Einführung von FIFOs (named pipes) korrigiert ● Pipes und FIFOs werden durch die normalen read und write Funktionen angesprochen

Center for Biotechnology Bielefeld Bioinformatics Service Lesen aus einer Pipe my %who; # accumulate logins open (WHOFH,"who |") or die "Can’t open who: $!"; while ( ) { next unless /(\S+)/; $who{$1}++; } foreach (sort { $who{$b} $who{$a} } keys %who) { printf "%10s %d\n",$_,$who{$_}; } close WHOFH or die "Close error: $!";

Center for Biotechnology Bielefeld Bioinformatics Service Schreiben in eine Pipe open(WC,"| wc -lw") or die "cannot open wordcount: $!"; print WC "This is the first line\n"; print WC "This is another line\n"; print WC "This is the last line\n"; print WC "Oops. I lied\n"; close WC;

Center for Biotechnology Bielefeld Bioinformatics Service pipe() $result = pipe (READHANDLE, WRITEHANDLE); ● Öffnet ein Paar von Filehandles, die durch eine Pipe verbunden sind pipe WH RHRH process kernel process

Center for Biotechnology Bielefeld Bioinformatics Service pipe() ● Wird normallerweise in Verbindung mit fork() benutzt ● Parent läßt eine Filehandle offen und schließt das andere ● Child verfährt umgekehrt pipe WH RHRH process kernel WH RHRH parentchild fork()

Center for Biotechnology Bielefeld Bioinformatics Service pipe() ● Wird normallerweise in Verbindung mit fork() benutzt ● Parent läßt eine Filehandle offen und schließt das andere ● Child verfährt umgekehrt pipe WH RHRH process kernel WH RHRH parentchild fork()

Center for Biotechnology Bielefeld Bioinformatics Service Aufgabe Schreibe ein Skript, das 1.eine Pipe öffnet 2.ein Child forked 3.eine Nachricht vom Parent an das Child schickt … 4.… und diese im Child ausgibt pipe WH RHRH process kernel WH RHRH parentchild fork()

Center for Biotechnology Bielefeld Bioinformatics Service Bidirektionale Pipes ● Pipes, die wir bis jetzt kenngelernt haben sind half-duplex oder unidirectional ● ermöglicht Kommunikation in eine Richtung ● wenn Daten in beide Richtungen fließen sollen, dann müssen zwei Pipes erzeugt werden, eine für jede Richtung

Center for Biotechnology Bielefeld Bioinformatics Service Aufgabe Schreibe ein Skript, das ein Child forked und in dem Parent und Child in beide Richtungen kommunizieren können. 1.erzeuge zwei pipes 2.fork 3.Parent schließt Reader von Pipe1 4.Parent schließt Writer von Pipe2 5.Child schließt Writer von Pipe1 6.Child schließt Reader von Pipe2

Center for Biotechnology Bielefeld Bioinformatics Service Aufgabe pipe WH RHRH process kernel WH RHRH parent child fork() pipe