Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung I/O Multiplexing Alexander Sczyrba

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
C Tutorium – Semaphoren –
Attribute Protocol.
Daten fließen lassen XML in Microsoft Office 2003 Lorenz Goebel Frank Fischer
1 Spezielle Packages des Java SDK (1.4) java.nio.
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
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.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Datenströme DVG Datenströme.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Steuerung externer Komponenten über ein USB-Interface.
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,
Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Web Application Engineering & Content Management.
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
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 Prozesse Alexander Sczyrba Jan Krüger.
Netzwerk - Programmierung
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Concurrent Clients Alexander Sczyrba
MasterBAV© Die neue Generation BAV
Netzwerk - Programmierung
WOOD VETIA.
Industrie 4.0 für Auszubildende
Projekt 01: LCR-Meter Jonas Krieger und Armin Zörkler SS 2017
Web-Interface for Multi-FPGA Board Pamette
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
Der Personalrat … … Personalratsvorsitzende/r und Stellvertretung
Seziersaal 1 Organmorphologie I je 6 Stud./Tisch
Netzwerkprogrammierung – Network Programming
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
Übungsblatt 2 – Aufgabe 1 Federschwingung mit konstanter Gleitreibung
Übungsblatt 6 – Aufgabe 1 Elektrisches Feld einer dickwandigen Hohlkugel Betrachten Sie eine dickwandige, nicht-leitende Hohlkugel mit dem Innenradius.
Übungsblatt 5 – Aufgabe 1 Feld eines elektrischen Dipols
Übungsblatt 5 – Aufgabe 1 Feld eines elektrischen Dipols
Übungsblatt 2 – Aufgabe 1 Federschwingung mit konstanter Gleitreibung
Übungsblatt 7 – Aufgabe 1 Spiralförmige Bahn eines Elektrons
Symmetrie,monotonie und limes
Zeichenfläche und Maßstab P(Iy,Iyz) und P‘(Iz,-Iyz) eintragen
Stochastik Wahrscheinlichkeit Bedingte Wahrscheinlichkeit
Heute: Eigene Zufallsexperimente erstellen
Heute: Das schwache Gesetz der großen Zahl
Berechnung des Fixvektors stabile Verteilung
Normalenform einer Ebene
Vorlesungsinhalte Grundlagen der PC vom
Friedensplakatwettbewerb 2010
SCHULE OHNE UE Nikotin, Präsentationsseite 3 „Zigarettenwerbung Jugendliche“ SÜCHTE UE Nikotin, Präsentationsseite 4 „Lucky-Strike-Werbung“
Funktionen der Pfadi Balsthal
Kapitalerhöhung AG.
Lesson 5 Key Language.
Praktikanten Kolloquium am Ergebnisse
Ich glaube an einen Gott der uns auffordert ihn zu suchen und zu bitten Denn jeder Bittende empfängt, und der Suchende findet, und dem Anklopfenden wird.
2a Text- und Satzanfang – Text korrigieren
Neue Kirchenverfassung der röm.-kath. Landeskirche
Gemische Schaltungen Hausaufgaben Michael Funke – DL4EAX
Der Doktor utomat.
Lese-Hörbuch – Lesen mit Klick
Fenster zur Welt: Japan im 2. Weltkrieg
„Wer Sicherheit der Freiheit vorzieht, ist zu Recht ein Sklave.“
 Präsentation transkript:

Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung I/O Multiplexing Alexander Sczyrba Jan Krüger

Center for Biotechnology Bielefeld Bioinformatics Service Übersicht ● Unbuffered I/O ● Multiplexing mit select

Center for Biotechnology Bielefeld Bioinformatics Service Einleitung ● Problem: Wann schreiben? Wann lesen? ● Lösung der letzten Stunde: Entkopplung durch zwei Prozesse ● weitere Möglichkeit: Multiplexing ● zwei Verfahren: ● select: schreibe/lese nur dann, wenn möglich ● nonblocking I/O: Operationen blockieren nie

Center for Biotechnology Bielefeld Bioinformatics Service Input/Output ● unbuffered vs. buffered I/O ● print,,... : Lese-/Schreibpuffer ● ungepufferte low-level-Funktionen: sysread, syswrite ● nachfolgende Verfahren verwenden unbuffered I/O

Center for Biotechnology Bielefeld Bioinformatics Service sysread/syswrite ● lesen: ● my $buflen = 1024; my $buffer; my $size = sysread($socket, $buffer, $buflen); ● Liefert ”0“ bei end of file, undef bei Fehler ● schreiben: ● my $buffer = "hello world"; my $size = syswrite($socket, $buffer); ● schreibt eventuell nur Teil des Puffers ● IO::Handle: gleichnamige Methoden ● nicht mit buffered I/O mischen

Center for Biotechnology Bielefeld Bioinformatics Service Aufgaben ● Schreibe die simplen Varianten von Client und Server aus dem Übungsarchiv der letzten Stunde so um, daß sie via unbuffered I/O über die sockets kommunizieren. ● Worauf ist beim Server zu achten? Verwende die alternative Variante von syswrite: ● SIZE = syswrite(FILEHANDLE, SCALAR, LENGTH) ● Setze für LENGTH einen Wert von 6 Bytes ein.

Center for Biotechnology Bielefeld Bioinformatics Service Multiplexing mit select ● Idee: überwache file-/sockethandles ● teste, ob handle ausgelesen oder beschrieben werden kann ● OO-Interface: IO::Select ● my $select = IO::Select->new(); $select->add($socket); $select->add(\*FILE); ● $select->remove($socket); my $num = $select->count(); my $val = $select->exists(\*FILE2); = $select->handles();

Center for Biotechnology Bielefeld Bioinformatics Service IO::Select verwenden ● Zustand der handles abfragen: ● = $select->can_read(); = $select->can_write(); = $select->has_exception(); ● Rückgabewert: Array von handles ● blockieren, bis mind. ein handle schreib-/lesbar ist ● optionales Argument: timeout in Sekunden

Center for Biotechnology Bielefeld Bioinformatics Service can_read() ● handle kann gelesen werden, wenn... ● mindestens 1 Byte Daten vorhanden sind ● sysread() wird nicht blockieren ● oder EOF vorliegt ● sysread() wird ”0“ zurückliefern ● oder Fehler vorliegt ● sysread() wird undef zurückliefern

Center for Biotechnology Bielefeld Bioinformatics Service can_write() ● handle kann beschrieben werden, wenn... ● mindestens 1 Byte geschrieben werden kann ● syswrite() wird bei einem Byte nicht blockieren ● kann blockieren, falls mehr Daten geschrieben werden ● oder Fehler vorliegt ● sysread() wird undef zurückliefern

Center for Biotechnology Bielefeld Bioinformatics Service Aufgaben ● Schreibe einen nicht-forkenden Client, der Eingaben von der Tastatur an einen Server weitergibt und dessen Antworten auf dem Bildschirm ausgibt. Verwende IO::Select. ● Teste das Programm wieder mit dem Echo- und dem Whois-Server.