10. Vorlesung Betriebssysteme

Größe: px
Ab Seite anzeigen:

Download "10. Vorlesung Betriebssysteme"

Transkript

1 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/ Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik

2 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 2/63 Heute Gemeinsamer Speicher (Shared Memory) Nachrichtenwarteschlangen (Message Queues) Pipes Sockets Semaphor Mutex Kommunikation (= expliziter Datentransport) Prozess 1 Prozess 2 Kooperation (= Zugriff auf gemeinsame Daten) Prozess 1 Prozess 2 Daten 1 Daten 2 Kopieren Daten 1 gemeinsamer Teil Daten 2 (gerichtete Beziehung) (symmetrische Beziehung)

3 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 3/63 Gemeinsamer Speicher Shared Memory Prozesskommunikation über einen gemeinsamen Speicher (Shared Memory) bezeichnet man auch als speicherbasierte Kommunikation Gemeinsame Speicher-Segmente sind Speicherbereiche, auf die mehrere Prozesse direkt zugreifen können Diese Speicherbereiche liegen im Adressraum mehrerer Prozesse shmget() registriert einen Speicherbereich als gemeinsames Speicher-Segment Die Prozesse müssen die Zugriffe selbst koordinieren und sicherstellen, dass ihre Speicherzugriffe sich gegenseitig ausschließen Der lesende Prozess darf nichts aus dem gemeinsamen Speicher lesen, bevor der schreibende Prozess fertig geschrieben hat Ist die Koordinierung der Zugriffe nicht sorgfältig, kommt es zu Inkonsistenzen

4 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 4/63 Gemeinsamer Speicher unter Linux/UNIX Unter Linux/UNIX speichert eine Shared Memory Tabelle die Informationen über die existierenden gemeinsamen Speicher-Segmente Zu diesen Informationen gehören: Anfangsadresse im Speicher, Größe, Besitzer (Benutzername und Gruppe) und Zugriffsrechte Ein gemeinsames Speicher-Segment wird immer über seine Indexnummer in der Shared Memory-Tabelle angesprochen

5 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 5/63 Mit gemeinsamem Speicher arbeiten Linux/UNIX-Betriebssysteme stellen vier Systemaufrufe für die Arbeit mit gemeinsamem Speicher bereit: shmget(): Gemeinsame Speicher-Segmente erzeugen oder auf bestehende gemeinsame Speicher-Segmente zugreifen shmat(): Gemeinsame Speicher-Segmente an Prozesse binden shmdt(): Gemeinsame Speicher-Segmente von Prozessen lösen/freigeben shmctl(): Status (u.a. Zugriffsrechte) von gemeinsamen Speicher-Segmenten abfragen, ändern und gemeinsame Speicher-Segmente löschen Informationen über bestehende gemeinsame Speicher-Segmente liefert das Kommando ipcs

6 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 6/63 Nachrichtenwarteschlangen - Message Queues Nachrichtenwarteschlangen (Message Queues) sind verketteten Listen mit Nachrichten Nachrichtenwarteschlangen arbeiten immer nach dem Prinzip FIFO Prozesse können Daten in der Nachrichtenwarteschlangen ablegen, die von anderen Prozessen abgeholt werden können Jede Nachrichtenwarteschlange hat eine eindeutige Kennung zur Identifikation Nachrichtenwarteschlangen sind vergleichbar mit Mailboxen für Prozesse Ein Vorteil von Nachrichtenwarteschlangen: Die Daten in einer Nachrichtenwarteschlange verbleiben auch nach der Beendigung des Erzeuger-Prozesses in der Nachrichtenwarteschlange

7 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 7/63 Mit Nachrichtenwarteschlangen arbeiten Linux/UNIX-Betriebssysteme stellen vier Systemaufrufe für die Arbeit mit Nachrichtenwarteschlangen bereit: msgget(): Nachrichtenwarteschlange erzeugen oder auf bestehende Nachrichtenwarteschlange zugreifen msgsnd(): Nachrichten in Nachrichtenwarteschlange schreiben (schicken) msgrcv(): Nachrichten aus Nachrichtenwarteschlange lesen (empfangen) msgctl(): Status (u.a. Zugriffsrechte) einer Nachrichtenwarteschlange abfragen, ändern und Message Queues löschen Informationen über bestehende Nachrichtenwarteschlangen liefert das Kommando ipcs

8 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 8/63 Mit Nachrichtenwarteschlangen entwickeln (in C) Eine Nachrichtenwarteschlange erzeugen // Nachrichtenwarteschlange erzeugen // Mit IPC_CREAT wird eine neue Nachrichtenwarteschlange erzeugt // Mit IPC_EXCL werden existierende Warteschlangen mit gleichem Schlüssel überschrieben // Mit 0600 werden die Zugriffsrechte auf die Nachrichtenwarteschlange festgelegt message_queue_id = msgget ( testqueue, IPC_CREAT IPC_EXCL 0600); if ( message_queue_id <0) { printf (" Die Nachrichtenwarteschlange konnte nicht erstellt werden.\n") exit ( EXIT_FAILURE ); } else printf (" Die Nachrichtenwarteschlange testqueue wurde angelegt.\n"); Nachrichtenwarteschlange löschen // Nachrichtenwarteschlange löschen msgctl ( message_queue_id, IPC_RMID, NULL );

9 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 9/63 Mit Nachrichtenwarteschlangen entwickeln (in C) Nachrichten in Nachrichtenwarteschlange schreiben // Template für den Puffer für msgsnd und msgrcv Systemaufrufe struct msgbuf { long mtype ; // Nachrichtentyp char mtext [80]; // Sendepuffer } msg ; msg. mtype = 1; strcpy (msg.mtext, " Testnachricht "); // Nachricht in den Sendepuffer schreiben // Nachricht schreiben if ( msgsnd ( message_queue_id, &msg, strlen (msg. mtext ), 0) == -1) { printf ("In die Nachrichtenwarteschlange konnte nicht geschrieben werden.\n") exit ( EXIT_FAILURE ); } Der Nachrichtentyp wird durch den Benutzer definiert und hat den Wert einer positiven ganzen Zahl

10 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Mit Nachrichtenwarteschlangen entwickeln (in C) Nachrichten aus der Nachrichtenwarteschlange lesen // Template für den Puffer für msgsnd und msgrcv Systemaufrufe struct msgbuf { long mtype ; // Nachrichtentyp char mtext [80]; // Empfangspuffer } msg ; // Die erste Nachricht in der Nachrichtenwarteschlangen empfangen mtype = 0 if (size = msgrcv ( message_queue_id, &msg, 80, mtype, 0)) == -1) { printf (" Aus der Nachrichtenwarteschlange konnte nicht gelesen werden.\n") exit ( EXIT_FAILURE ); // Die erste erste Nachricht vom Nachrichtentyp 1 empfangen mtype = 1 if (size = msgrcv ( message_queue_id, &msg, 80, mtype, 0)) == -1) { printf (" Aus der Nachrichtenwarteschlange konnte nicht gelesen werden.\n") exit ( EXIT_FAILURE ); } Ist mtype = 0, wird die erste Meldung aus der Queue gelesen Ist mtype positiv, wird die erste Meldung dieses Typs gelesen Ist mtype negativ, wird die erste Meldung gelesen, deren Typ kleiner oder gleich dem absoluten Wert von mtype ist

11 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Pipes (1/4) Eine Pipe ist wie ein Kanal bzw. eine Röhre, die einen gepufferten, unioder bidirektionalen Datenstrom zwischen zwei Prozessen ermöglicht Eine Pipe kann immer nur zwischen zwei Prozessen tätig sein Pipes funktionieren immer nach dem Prinzip FIFO (First In First Out) Pipes haben eine begrenzte Kapazität Ist eine Pipe voll, wird der in die Pipe schreibende Prozess blockiert Ist eine Pipe leer, wird der aus der Pipe lesende Prozess blockiert Pipes werden mit dem Systemaufruf pipe() angelegt Dabei wird ein Inode auf der Festplatte und zwei Zugriffskennungen, die sogenannten Handles erzeugt Ein Inode ist ein Dateisystemeintrag, der Metadaten einer Datei enthält Auf die Zugriffskennungen wird vom Prozess mit read() und write()-systemaufrufen zugegriffen, um Daten aus der Pipe zu lesen bzw. um Daten in die Pipe zu schreiben Prozess X "abc..." Pipe "abc..." Prozess Y Schreib-Prozess enthält den Bytestrom Lese-Prozess

12 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Pipes (2/4) Bei der Erzeugung von Kindprozessen mit fork() erben die Kindprozesse auch den Zugriff auf die Zugriffskennungen Man unterscheidet anonyme Pipes und benannte Pipes Anonyme Pipes ermöglichen Prozesskommunikation nur zwischen eng verwandten Prozessen Anonyme Pipes kann man nur in eine Richtung verwenden (= unidirektional) Nur Prozesse, die via fork() eng verwandt sind, können über anonyme Pipes kommunizieren Mit der Beendigung des letzten Prozesses, der Zugriff auf eine anonyme Pipe hat, wird diese vom Betriebssystem beendet

13 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Pipes (3/4) Damit auch nicht eng miteinander verwandte Prozesse miteinander kommunizieren können, gibt es benannte Pipes (Named Pipes) Auf diese Pipes kann mit Hilfe ihres Namens zugegriffen werden Benannte Pipes nennt man häufig einfach FIFO Benannte Pipes ermöglichen Vollduplexbetrieb zwischen Prozessen (= bidirektional) Daten können gleichzeitig in beide Richtungen ausgetauscht werden Jeder Prozess, der den Namen kennt, kann über diesen die Verbindung zur Pipe herstellen und darüber mit anderen Prozessen kommunizieren Benannte Pipes werden mit dem Systemaufruf mknod() erzeugt

14 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Pipes (4/4) Pipes sind ein mächtiges Werkzeug um Befehle sequentiell abzuarbeiten Wechselseitiger Ausschluss ist durch das Betriebssystem garantiert Dieses überwacht, dass immer nur ein Prozess zu einem Zeitpunkt auf eine Pipe zugreifen kann Eine Pipe sorgt dafür, dass die Ausgabe eines Prozesses in die Eingabe eines anderen gelangt und wird auf der Shell mit erzeugt. z.b. cat /pfad/zu/datei.txt grep Suchmuster

15 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Mit Pipes entwickeln (in C) Eine Pipe anlegen // Pipe testpipe anlegen if (pipe ( testpipe ) < 0) { // Falls die Pipe nicht angelegt werden konnte, wird das Programm beendet printf (" Das Anlegen der Pipe testpipe ist fehlgeschlagen.\n") exit ( EXIT_FAILURE ); } else printf (" Die Pipe testpipe wurde angelegt.\n"); Pipe zum Schreiben vorbereiten (Danach kann sie Daten aufnehmen) close ( testpipe [0]); // Lesekanal der Pipe testpipe blockieren open ( testpipe [1]); // Schreibkanal der Pipe testpipe öffnen Pipe zum Lesen vorbereiten (Danach kann sie ausgelesen werden) close ( testpipe [1]); // Schreibkanall der Pipe testpipe blockieren open ( testpipe [0]); // Lesekanal der Pipe testpipe öffnen Aus einer Pipe lesen und in eine Pipe schreiben read ( testpipe [0], & puffervariable, sizeof ( puffervariable )) write ( testpipe [1], & puffervariable, sizeof ( puffervariable ))

16 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Sockets Sockets sind Endpunkte einer bidirektionalen Software-Schnittstelle zur Kommunikation zwischen Prozessen in verteilten Systemen Vollduplexfähige Alternative zu Pipes und gemeinsamem Speicher Ein Socket kann von mehreren Rechner-Systemen verwendet werden Sockets sind die plattformunabhängige, standardisierte Schnittstelle zwischen der Implementierung der Netzwerkprotokolle im Betriebssystem und den Benutzerprozessen Ein Benutzerprozess kann einen Socket vom Betriebssystem anfordern, und über diesen anschließend Daten verschicken und empfangen Das Betriebssystem verwaltet alle benutzten Sockets und die zugehörigen Verbindungsinformationen

17 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Prinzip von Sockets Zur Kommunikation über Sockets werden Ports verwendet Die Vergabe der Portnummern erfolgt beim Verbindungsaufbau Portnummern werden meistens vom Betriebssystem beliebig vergeben Ausnahmen sind Ports bekannter Anwendungen, die immer gleich sind, wie z.b. HTTP (80), SMTP (25), Telnet (23), SSH (22), FTP (21), POP3 (110),... Einsatz von Sockets ist blockierend (synchron) und nicht-blockierend (asynchron) möglich

18 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Verschiedene Arten von Sockets Verbindungslose Sockets (bzw. Datagram Sockets) Verwenden das Transportprotokoll UDP Vorteile: UDP ermöglicht eine höhere Geschwindigkeit Grund: Geringer Mehraufwand (Overhead) für das Protokoll Nachteile: Daten werden in Pakete aufgeteilt und einzeln versandt Pakete können einander überholen oder verloren gehen Verbindungsorientierte Sockets (bzw. Stream Sockets) Verwenden das Transportprotokoll TCP Vorteile: Hohe Verlässlichkeit Daten können nicht verloren gehen Daten kommen immer in der korrekten Reihenfolge an Nachteile: TCP bietet eine geringere Geschwindigkeit als UDP Grund: Höherer Mehraufwand (Overhead) für das Protokoll

19 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Sockets nutzen Praktisch alle gängigen Betriebssystemen unterstützen Sockets Vorteil: Bessere Portabilität der Anwendungen Folgende Operationen sind für die Kommunikation via Sockets nötig: Erstellen eines Sockets socket() Anbinden eines Sockets an das Netzwerk bind(), listen(), accept() und connect() Senden/Empfangen von Nachrichten über den Socket send(), sendto(), recv() und recvfrom() Schließen eines Sockets shutdown() oder close() Übersicht der Sockets unter Linux/UNIX: netstat -n

20 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Verbindungslose Kommunikation mit Sockets UDP Client Socket erstellen (socket) Daten senden (sendto) und empfangen (recvfrom) Socket schließen (close) Server Socket erstellen (socket) Socket an einen Port binden (bind) Portnummer registrieren Daten senden (sendto) und empfangen (recvfrom) Socket schließen (close)

21 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Verbindungsorientierte Kommunikation mit Sockets TCP Client Socket erstellen (socket) Client mit Server-Socket verbinden (connect) Daten senden (send) und empfangen (recv) Socket schließen (close) Server Socket erstellen (socket) Socket an einen Port binden (bind) Socket empfangsbereit machen (listen) Richtete eine Warteschlange für Verbindungen mit Clients ein Server akzeptiert Verbindungsanforderung (accept) Daten senden (send) und empfangen (recv) Socket schließen (close)

22 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Einen Socket erzeugen: socket (1/2) int socket(int domain, int type, int protocol); Ein Aufruf von socket() liefert einen kleinen Integerwert zurück, ähnlich einem Dateideskriptor Der Wert wird als Socket-Deskriptor oder socket file descriptor bezeichnet domain: Beschreibt die Protokollfamilie. Einige Möglichkeiten sind: PF_UNIX: Lokale Prozesskommunikation unter Linux/UNIX PF_INET: IPv4 Internet-Protokolle PF_INET6: IPv6 Internet-Protokolle type: Legt den Typ des Sockets (und damit auch teilweise das Protokoll) fest: SOCK_STREAM: Stream Socket (TCP) SOCK_DGRAM: Datagram Socket (UDP) SOCK_RAW: RAW-Socket (IP)

23 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Einen Socket erzeugen: socket (2/2) protocol: Hier wird das genaue Protokoll festgelegt: IPPROTO_TCP: TCP-Protokoll (SOCK_STREAM) IPPROTO_UDP: UDP-Protokoll (SOCK_DGRAM) IPPROTO_RAW: RAW-IP-Protokoll (SOCK_RAW) IPPROTO_ICMP: ICMP-Protokoll (SOCK_RAW) Die Angabe des Protokolls mit protocol ist meistens nicht nötig In den meisten Fällen kann der Wert Null angegeben werden Einen Socket mit socket() erzeugen: sd = socket ( PF_INET, SOCK_STREAM, 0); if (sd < 0) { perror (" Der Socket konnte nicht erzeugt werden "); return 1; }

24 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Adresse und Portnummer binden: bind int bind(int sd, struct sockaddr *address, int addrlen); Die Operation bind() bindet den neu erstellen Socket (sd) an die Adresse (address) des Servers sd ist der Socket-Deskriptor aus dem vorhergehenden Aufruf von socket() address ist eine Datenstruktur, die sowohl die IP-Adresse des Server, als auch eine Portnummer enthält addrlen ist die Länge der Datenstruktur, die die Adresse und Portnummer enthält

25 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Server empfangsbereit machen: listen int listen(int sd, int backlog); Die Operation listen() definiert, wie viele Verbindungen (Anfragen) am Socket (socket) anstehen (gepuffert werden) können Ist die listen()-warteschlange voll, werden weitere Verbindungswünsche von Clients abgewiesen sd ist der Socket-Deskriptor aus dem vorhergehenden Aufruf von socket() backlog steht für die Anzahl der möglichen Verbindungsanforderungen, die maximal in die Warteschlange gestellt werden können Normalerweise ist der Wert fünf Ein Server für Datagrame (UDP) braucht listen() nicht aufzurufen, da er keine Verbindungen zu Clients einrichtet

26 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Verbindung über einen Socket akzeptieren: accept int accept(int sd, struct sockaddr *address, int *addrlen); Mit accept() holt der Server die erste Verbindungsanforderung aus der Warteschlange accept() nimmt die erste Anforderung in der Warteschlange, dupliziert den als Parameter übergebenen Socket-Deskriptor und gibt das Duplikats als Rückgabewert zurück Über den neuen Socket-Deskriptor wird die Verbindung zum Client hergestellt Der Rückgabewert ist die Socket-ID des Clients (der neue Socket) Stehen keine Verbindungsanforderungen mehr an (die Warteschlange ist leer), ist der Prozess blockiert, bis eine Verbindungsanforderung eintrifft address enthält die Adresse des Clients Nachdem ein Client mit accept() angenommen wurde, ist die Verbindung vollständig aufgebaut

27 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Verbindung durch den Client herstellen int connect(int sd, struct sockaddr *servaddr, socklen_t addrlen); Durch den connect()-aufruf stellt der Client eine Verbindung mit einem Server-Socket her Client muss die Adresse (Hostname und Port) des Servers kennen sd ist der Socket-Deskriptor servaddr ist die Adresse des Servers addrlen ist die Länge der Datenstruktur, die die Adresse enthält

28 Datenaustausch: send und recv int send(int sd, char *buffer, int nbytes, int flags); int recv(int sd, char *buffer, int nbytes, int flags); Mit send() und recv() werden über eine bestehende Verbindung Daten ausgetauscht send() sendet eine Nachricht (buffer) über den Socket (sd) recv() empfängt eine Nachricht vom Socket sd und legt diese in den Puffer (buffer) sd ist der Socket-Deskriptor buffer enthält die zu sendenden bzw. empfangenen Daten nbytes gibt die Anzahl der Bytes im Puffer an Der Wert von flags ist in der Regel Null Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63

29 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Verbindungsorientierter Datenaustausch: sendto und recvfrom int sendto(int sd, char *buffer, int nbytes, int flags, struct sockaddr *to, int addrlen); int recvfrom(int sd, char *buffer, int nbytes, int flags, struct sockaddr *from, int addrlen); Weiß ein Prozess, an welche Adresse (Host und Port), also an welchen Socket er Daten senden soll, verwendet er dafür sendto() sendto() übermittelt mit den Daten immer die lokale Adresse sd ist der Socket-Deskriptor buffer enthält die zu sendenden bzw. empfangenen Daten nbytes gibt die Anzahl der Bytes im Puffer an to enthält die Adresse des Empfängers from enthält die Adresse des Senders addrlen ist die Länge der Datenstruktur, die die Adresse enthält

30 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Verbindungsloser Datenaustausch: read und write int read(int sd, char *buffer, int nbytes); int write(int sd, char *buffer, int nbytes); Unter UNIX könnten im Normalfall auch read() und write() zum Empfangen und Senden über einen Socket verwendet werden Der Normalfall ist, wenn der Parameter flags bei send() und recv() den Wert Null hat. Die folgenden beiden Aufrufe haben das gleiche Ergebnis: send(socket,"hello World",11,0); write(socket,"hello World",11);

31 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Socket schließen: close int shutdown(int sd, int how); Eine bidirektionale Socket-Verbindung kann mit der Operation shutdown() geschlossen werden Der Parameter how legt fest, ob künftig keine Daten mehr empfangen werden sollen (how=0), keine mehr gesendet werden (how=1), oder beides (how=2) int close(int sd); Wird die Systemfunktion close() anstatt shutdown() benutzt, entspricht dies einem shutdown(sd,2)

32 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Sockets via UDP Beispiel (Server) #!/ usr /bin /env python # -*- coding : iso *- # Server : Empfängt eine Nachricht via UDP import socket # Stellvertretend für alle Schnittstellen des Hosts HOST = PORT = # Erzeugt den Socket und liefert den Socket Deskriptor zurück sd = socket. socket ( socket.af_inet, socket. SOCK_DGRAM ) try : # Weist einem noch unbekannten Socket eine Adresse zu sd. bind (HOST, PORT ) while True : # Empfange Daten data = sd. recvfrom (1024) print Empfangen :, repr ( data ) finally : # Schließt einen Socket sd. close ()

33 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Sockets via UDP Beispiel (Client) #!/ usr /bin /env python # -*- coding : iso *- # Client : Schickt eine Nachricht via UDP import socket HOST = localhost PORT = MESSAGE = Hallo Welt # Erzeugt den Socket und liefert den Socket Deskriptor zurück sd = socket. socket ( socket.af_inet, socket. SOCK_DGRAM ) # Sendet die Nachricht an sd. sendto (MESSAGE, (HOST, PORT )) # Schließt einen Socket sd. close ()

34 # Schließt den Socket conn. close () Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Sockets via TCP Beispiel (Server) #!/ usr /bin /env python # -*- coding : iso *- # Echo Server via TCP import socket # ist stellvertretend für alle Schnittstellen HOST = PORT = # Erzeugt den Socket und liefert den Socket Deskriptor zurück sd = socket. socket ( socket.af_inet, socket. SOCK_STREAM ) # Dem Socket eine Adresse zuweisen sd. bind (HOST, PORT ) # Socket empfangsbereit machen sd. listen (1) # Socket akzeptiert Verbindungen conn, addr = sd. accept () print Connected by, addr while 1: # Empfange Daten data = conn. recv (1024) if not data : break # Sende empfangene Daten zurück conn. send ( data )

35 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Sockets via TCP Beispiel (Client) #!/ usr /bin /env python # -*- coding : iso *- # Echo Client via UDP import socket HOST = localhost PORT = # Erzeugt den Socket und liefert den Socket Deskriptor zurück sd = socket. socket ( socket.af_inet, socket. SOCK_STREAM ) # Mit Server - Socket verbinden sd. connect (HOST, PORT ) # Sende Daten sd. send ( Hello, world ) # Empfange Daten data = sd. recv (1024) # Schließt den Socket sd. close () print Empfangen :, repr ( data )

36 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Blockierende und nicht-blockierende Sockets Wird ein Socket erstellt, ist er standardmäßig im blockierenden Modus Alle Methodenaufrufe warten, bis die von ihnen angestoßene Operation durchgeführt wurde z.b. blockiert ein Aufruf von recv() so lange den Prozess, bis Daten eingegangen sind und aus dem internen Puffer des Sockets gelesen werden können Die Methode setblocking() ändert den Modus eines Sockets sd.setblocking(0) = Versetzt in den nicht-blockierenden Modus sd.setblocking(1) = Versetzt in den blockierenden Modus Es ist möglich, während des Betriebs den Modus umzuschalten z.b. könnte man die Methode connect() blockierend und anschließend read() nicht-blockierend verwenden Quelle: Peter Kaiser, Johannes Ernesti. Python Das umfassende Handbuch. Galileo (2008)

37 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Nicht-blockierende Sockets Auswirkungen Versetzt man einen Socket in den nicht-blockierenden Modus, hat das Auswirkungen auf die Socket-Operationen recv() und recvfrom() Die Methoden geben nur dann Daten zurück, wenn sich diese bereits im internen Puffer des Sockets befinden Sind keine Daten im Puffer, werfen die Methoden eine Exception und geben den Kontrollfluss wieder ab send() und sendto() Die Methoden versenden die angegebenen Daten nur, wenn sie direkt in den Ausgangspuffer des Sockets geschrieben werden können Ist der Puffer schon voll, werfen die Methoden eine Exception und geben den Kontrollfluss wieder ab connect() Die Methode sendet eine Verbindungsanfrage an den Zielsocket und wartet nicht, bis diese Verbindung zustande kommt Wird connect() aufgerufen, während die Verbindungsanfrage noch läuft, wird eine Exception geworfen

38 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Vergleich der Kommunikations-Systeme Vorteile nachrichtenbasierter Kommunikation sind: Nachrichtenbasierte Kommunikation ist komfortabel Das Betriebssystem entlastet bei nachrichtenbasierter Kommunikation die Benutzerprozesse von allen Verwaltungsaufgaben, insbesondere von Synchronisationsproblemen Nachrichtenbasierte Kommunikation kann auch in verteilten Systemen eingesetzt werden, in denen kein gemeinsam zugreifbarer Hardwarespeicher vorhanden ist Portabilität der Anwendungen ist besser als bei speicherbasierter Kommunikation Speicher kann über Netzwerkverbindungen eingebunden werden und so wird speicherbasierte Kommunikation möglich Aus Sicht der Software ist dadurch im gesamten Rechnernetz ein einheitlicher Speicher vorhanden Das Problem der Synchronisation der Zugriffe besteht aber auch hier

39 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Möglichkeiten der Interprozesskommunikation Gemeinsamer Nachrichten- Pipes Sockets Speicher warteschlangen Art der Kommunikation Speicherbasiert Objektbasiert Datenstrombasiert Nachrichtenbasiert Bidirektional ja nein bei benannten Pipes ja Plattformunabhäng nein nein nein ja Prozesse müssen nein nein bei anonymen Pipes nein verwandt sein Kommunikation über nein nein nein ja Rechnergrenzen Bleiben ohne gebundenen ja ja nein nein Prozess erhalten Automatische nein ja ja ja Synchronisierung Speicher kann über Netzwerkverbindungen eingebunden werden und so wird speicherbasierte Kommunikation möglich Das Problem der Synchronisation der Zugriffe besteht aber auch hier

40 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Kooperation Kooperation Semaphor Mutex Kommunikation (= expliziter Datentransport) Prozess 1 Prozess 2 Kooperation (= Zugriff auf gemeinsame Daten) Prozess 1 Prozess 2 Daten 1 Daten 2 Kopieren Daten 1 gemeinsamer Teil Daten 2 (gerichtete Beziehung) (symmetrische Beziehung)

41 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Semaphore Zur Sicherung (Sperrung) kritischer Abschnitte können außer den bekannten Sperren auch Semaphore eingesetzt werden Semaphore wurden 1965 durch den niederländischen Informatiker Edsger Wybe Dijkstra eingeführt Ein Semaphor ist eine Zählersperre S mit den Operationen P(S) und V(S) V kommt vom holländischen verhogen = erhöhen P kommt vom holländischen proberen = versuchen (zu verringern) Die Zugriffsoperationen sind atomar = nicht unterbrechbar (unteilbar) Semaphore (Zählsperren) können auch mehreren Prozessen das Betreten des kritischen Abschnitts erlauben Im Gegensatz zu Semaphore können Sperren immer nur einem Prozess das Betreten des kritischen Abschnitts erlauben Die korrekte Grammatik ist das Semaphor, Plural die Semaphore

42 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Semaphor: Arbeitsweise Folgendes Szenario macht die Arbeitsweise deutlich: In einem Geschäft steht neben dem Ein-/Ausgang ein Stapel mit Einkaufskörben Jeder Kunde, der in das Geschäft will, muss sich einen Einkaufskorb vom Stapel nehmen Jeder Kunde, der mit dem Einkauf fertig ist und an der Kasse bezahlt hat, muss seinen Einkaufskorb wieder auf den Stapel am Eingang zurückstellen Ist der Stapel leer, sind also alle Einkaufskörbe vergeben, kann so lange kein neuer Kunde den Laden betreten, bis ein Einkaufskorb für ihn frei ist und auf dem Stapel liegt

43 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Ein Semaphor besteht aus zwei Datenstrukturen COUNT: Eine ganzzahlige, nichtnegative Zählvariable Die Variable gibt an, wie viele Prozesse das Semaphor aktuell ohne Blockierung passieren dürfen Der Wert entspricht, gemäß dem einführenden Beispiel, der Anzahl der Körbe, die sich aktuell auf dem Stapel neben dem Ein-/Ausgang des Ladens befinden Ein Warteraum für die Prozesse, die darauf warten, das Semaphor passieren zu dürfen Die Prozesse sind im Zustand blockiert und warten darauf, vom Betriebssystem in den Zustand bereit überführt zu werden, wenn das Semaphor den Weg freigibt Das Semaphor gibt den Weg frei, wenn wieder Körbe frei sind Die Länge der Warteschlange entspricht der Anzahl der Kunden, die vor dem Laden warten, weil keine Körbe mehr frei sind

44 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Drei Zugriffsoperationen sind möglich (1) Initialisierung: Zuerst wird ein Semaphor erzeugt oder ein bestehendes Semaphor geöffnet Bei einem neuen Semaphor wird zu Beginn die Zählvariable mit einem nichtnegativen Anfangswert initialisiert Dieser Wert ist die Anzahl der Körbe, die bei Ladenöffnung am Ein-/Ausgang des Ladens bereitgestellt werden // Operation INIT auf Semaphor SEM anwenden SEM. INIT ( unsigned int init_ wert ) { } // Variale COUNT des Semaphors SEM mit einem // nichtnegativen Anfangswert initialisieren SEM. COUNT = init_wert ;

45 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Drei Zugriffsoperationen sind möglich (2) P-Operation (verringern): Diese Operation prüft, ob der Wert der Zählvariable gleich 0 ist, also ob keine Körbe mehr frei sind Ist der Wert 0, also sind keine Körbe mehr vor der Tür, wird der Prozess blockiert Der Kunde muss jetzt vor dem Laden in der Schlange warten Ist der Wert größer 0, wird er um 1 erniedrigt, also ein Korb entnommen SEM.P() { // Prüfen, ob die Zählvariable gleich 0 ist if ( SEM. COUNT == 0) < blockiere > } // Wenn die Zählvariable größer 0 ist, wird die // Zählvariable unmittelbar um 1 erniedrigt SEM. COUNT = SEM. COUNT - 1;

46 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Drei Zugriffsoperationen sind möglich (3) V-Operation (erhöhen): Diese Operation erhöht als erstes den Wert der Zählvariable um 1. Es wird ein Korb auf den Stapel zurückgelegt Befinden sich Prozesse im Warteraum, wird ein Prozess deblockiert Dem Beispiel nach kann sich ein Kunde jetzt einen Korb holen Der gerade deblockierte Prozess setzt dann seine P-Operation fort und erniedrigt als erstes die Zählvariable Der Kunde nimmt sich einen Korb SEM.V() { // Die Zählvariable wird um 1 erhöht SEM. COUNT = SEM. COUNT + 1; } // Sind Prozesse im Warteraum, wird einer deblockiert if ( < SEM - Warteraum ist nicht leer > ) < deblockiere einen wartenden Prozess >

47 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Aufbauschema des Semaphors

48 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Erzeuger/Verbraucher-Beispiel (1/3) Ein Erzeuger soll Daten an einen Verbraucher schicken Ein endlicher Zwischenspeicher (Puffer) soll die Wartezeiten des Verbrauchers minimieren Daten werden vom Erzeuger in den Puffer gelegt und vom Verbraucher aus diesem entfernt Gegenseitiger Ausschluss ist notwendig, um Inkonsistenzen zu vermeiden Ist der Puffer voll, muss der Erzeuger blockieren Ist der Puffer leer, muss der Verbraucher blockieren

49 Quelle: Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63

50 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Erzeuger/Verbraucher-Beispiel (2/3) Zur Synchronisation der Zugriffe werden drei Semaphore verwendet: leer voll mutex Semaphore voll und leer werden gegenläufig zueinander eingesetzt leer zählt die freien Plätze im Puffer, wird vom Erzeuger (P-Operation) erniedrigt und vom Verbraucher (V-Operation) erhöht voll zählt die Datenpakete (belegte Plätze) im Puffer, wird vom Erzeuger (V-Operation) erhöht und vom Verbraucher (P-Operation) erniedrigt leer = 0 = Puffer vollständig belegt = Erzeuger blockieren voll = 0 = Puffer leer = Verbraucher blockieren Semaphor mutex ist für den wechselseitigen Ausschluss zuständig

51 Erzeuger/Verbraucher-Beispiel (3/3) # define N 8 // Plätze im Puffer typedef int semaphore ; // Semaphore sind von Typ Integer semaphore voll = 0; // zählt die belegten Plätze im Puffer semaphore leer = N; // zählt die freien Plätze im Puffer semaphore mutex = 1; // steuert Zugriff auf kritische Bereiche void erzeuger ( void ) { int daten ; while ( TRUE ) { // Endlosschleife erzeugedatenpaket ( daten ); // erzeuge Datenpaket P( leer ); // Zähler " leere Plätze " erniedrigen P( mutex ); // in kritischen Bereich eintreten einfuegendatenpaket ( daten ); // Datenpaket in den Puffer schreiben V( mutex ); // kritischen Bereich verlassen V( voll ); // Zähler für volle Plätze erhöhen } } void verbraucher ( void ) { int daten ; while ( TRUE ) { // Endlosschleife P( voll ); // Zähler " volle Plätze " erniedrigen P( mutex ); // in kritischen Bereich eintreten entfernedatenpaket ( daten ); // Datenpaket aus dem Puffer holen V( mutex ); // kritischen Bereich verlassen V( leer ); // Zähler für leere Plätze erhöhen verbrauchedatenpaket ( daten ); // Datenpaket nutzen } } Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63

52 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Beispiel zu Semaphore: PingPong Die beiden Endlosprozesse Ping und Pong geben endlos PingPong, PingPong, PingPong aus // Initialisierung der Semaphore s_init ( Sema_Ping, 1); s_init ( Sema_Pong, 0); task Ping is task Pong is begin begin loop loop P( Sema_Ping ); P( Sema_Pong ); print ( " Ping "); print ("Pong, "); V( Sema_Pong ); V( Sema_ping ); end loop ; end loop ; end Ping ; end Pong ;

53 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Beispiel zu Semaphore: Drei Läufer (1/3) Drei Läufer sollen hintereinander eine bestimmte Strecke laufen Der zweite Läufer darf erst starten, wenn der erste Läufer im Ziel ist Der dritte Läufer darf erst starten, wenn der zweite Läufer im Ziel ist Vorgeschlagen wird nebenstehende Lösung Ist die Lösung korrekt? // Initialisierung der Semaphore s_init (Sema, 0); task Erster is < laufen > V( Sema ); task Zweiter is P( Sema ); < laufen > V( Sema ); task Dritter is P( Sema ); < laufen >

54 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Beispiel zu Semaphore: Drei Läufer (2/3) Die Lösung ist nicht korrekt! Es existieren zwei Reihenfolgebeziehungen: Läufer 1 vor Läufer 2 Läufer 2 vor Läufer 3 Beide Reihenfolgebeziehungen verwenden das gleiche Semaphor Es ist nicht ausgeschlossen, dass Läufer 3 mit seiner P-Operation vor Läufer 2 das Semaphor um den Wert 1 erniedrigt Wie könnte eine korrekte Lösung aussehen?

55 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Beispiel zu Semaphore: Drei Läufer (3/3) Lösungsmöglichkeit: Zweiten Semaphor einführen Das zweites Semaphor wird ebenfalls mit dem Wert 0 initialisiert Läufer 2 erhöht mit seiner V-Operation das zweite Semaphor und Läufer 3 erniedrigt dieses mit seiner P-Operation // Initialisierung der Semaphore s_init ( Sema1, 0); s_init ( Sema2, 0); task Erster is < laufen > V( Sema1 ); task Zweiter is P( Sema1 ); < laufen > V( Sema2 ); task Dritter is P( Sema2 ); < laufen >

56 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Binäre Semaphore Binäre Semaphore sind Semaphore, die mit dem Wert 1 initialisiert werden und garantieren, dass zwei oder mehr Prozesse nicht gleichzeitig in ihre kritischen Bereiche eintreten können Ein Beispiel für ein binäres Semaphor ist das Semaphor mutex aus dem Erzeuger/Verbraucher-Beispiel Um den wechselseitigen Ausschluss zu garantieren, muss jeder Prozess: Kurz bevor er in seine kritische Region eintritt, das binäre Semaphor mit einer P-Operation erniedrigen Nachdem er die kritische Region verlassen hat, das binäre Semaphor mit einer V-Operation erhöhen

57 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Starke und schwache Semaphore Für Semaphore und binäre Semaphore wird eine Warteschlange eingesetzt, die die wartenden Prozesse aufnimmt Die Reihenfolge, in der Prozesse aus dieser Warteschlange geholt werden, lässt sich unterschiedlich regeln Die fairste Vorgehensweise ist das Prinzip FIFO (First In First Out) Starke Semaphore arbeiten nach dem Prinzip FIFO Typische Form des Semaphor, die vom Betriebssystem bereitgestellt werden Vorteil: Es kann nicht zum Verhungern kommen Schwache Semaphore legen die Reihenfolge, in der die Prozesse aus der Warteschlange geholt werden, nicht fest Beim Echtzeitbetrieb werden schwache Semaphore eingesetzt, da das Deblockieren von Prozessen sich an deren Priorität und nicht am Zeitpunkt der Blockierung orientiert

58 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Semaphore unter Linux/UNIX (1/3) Das Konzept der Semaphore unter Linux/UNIX-Betriebssystemen weicht ein wenig vom Konzept der Semaphor nach Dijkstra ab Unter Linux/UNIX kann die Zählvariable eines Semaphors mit einer P-Operation bzw. einer V-Operation um mehr als 1 erhöht bzw. erniedrigt werden Es können mehrere Zugriffsoperationen auf verschiedenen Semaphoren atomar, also unteilbar, durchgeführt werden Mehrere P-Operationen können z.b. zusammengefasst und nur dann durchgeführt werden, wenn keine der P-Operationen blockiert Linux/UNIX-Betriebssysteme führen im Kernel eine Semaphortabelle, die Verweise auf Arrays mit Semaphore enthält Jedes Array beschreibt eine Gruppe von Semaphoren, die über den Index der Semaphortabelle identifiziert wird

59 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Semaphore unter Linux/UNIX (2/3) Gruppennummer Semaphorennummer innerhalb der Gruppe Semaphorentabelle S 00 S 01 S 02 S 03 S 04 S S 10 S 20 S 11 S 21 S 22 einzelnes Semaphor 3... S 30 S 31 S 32 S 33 S 34 n leer Semaphorengruppe Quelle: Carsten Vogt, Betriebssysgteme, Spektrum Verlag

60 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Semaphore unter Linux/UNIX (3/3) Einzelne Semaphore werden über den Tabellenindex und die Position in der Gruppe (beginnend bei 0) angesprochen Atomare Operationen auf mehreren Semaphoren können nur dann durchgeführt werden, wenn alle betreffenden Semaphore der gleichen Gruppe angehören Linux/UNIX-Betriebssysteme stellen drei Systemaufrufe für die Arbeit mit Semaphoren bereit: semget(): Neues Semaphor oder eine Gruppe von Semaphoren erzeugen oder ein bestehendes Semaphor öffnen semctl(): Wert eines existierenden Semaphors oder einer Semaphorengruppe abfragen, ändern oder ein Semaphor löschen semop(): P- und V-Operationen auf Semaphoren durchführen

61 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Mutexe (1/2) Wird die Möglichkeit eines Semaphors zu zählen nicht benötigt, kann man die vereinfachte Version eines Semaphors, Mutexe, vorziehen Mutexe (abgeleitet von Mutual Exclusion = wechselseitiger Ausschluss) dienen dem Schutz kritischer Abschnitte, auf denen zu jedem Zeitpunkt immer nur ein Prozess zugreifen darf Mutexe sind einfacher als Semaphore, da sie nur zwei Zustände annehmen können, nämlich belegt und nicht belegt Es ist nur ein Bit nötig, um die Information darzustellen In der Realität wird häufig eine ganze Zahl verwendet, bei der 0 nicht belegt und jeder andere Wert belegt bedeutet Mutexe haben die gleiche Funktionalität wie binäre Semaphore Die beiden Zustände belegt und nicht belegt sind vergleichbar mit den Werten 0 und 1 der Zählvariable von Semaphoren

62 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 Mutexe (2/2) Mutexe sind effizienter und einfacher zu realisieren als Semaphore Zwei Funktion werden mit Mutexen verwendet: mutex_lock = Entspricht der P-Operation mutex_unlock = Entspricht der V-Operation Will ein Prozess auf einen kritischen Abschnitt zugreifen, ruft er mutex_lock auf Ist der kritische Abschnitt gerade nicht gesperrt, ist der Aufruf erfolgreich und der Prozess kann in den kritischen Abschnitt eintreten Ist der kritische Abschnitt bereits gesperrt, wird der Prozess so lange blockiert, bis der Prozess im kritischen Abschnitt fertig ist und mutex_unlock aufruft Warten mehrere Prozesse auf den kritischen Abschnitt, entscheidet der Zufall

63 Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS /63 IPC-Objekte löschen Die einfachste Möglichkeit, Semaphore, gemeinsame Speichersegmente und Nachrichtenwarteschlangen auf der Kommandozeile zu löschen, ist das Kommando ipcrm ipcrm [-m shmid] [-q msqid] [-s semid] [-M shmkey] [-Q msgkey] [-S semkey] Oder alternativ einfach... ipcrm shm SharedMemoryID ipcrm sem SemaphorID ipcrm msg MessageQueueID

Betriebssysteme (BTS)

Betriebssysteme (BTS) 13.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 31.5.2007 Wiederholung vom letzten Mal Deadlocks und Verhungern

Mehr

10. Foliensatz Betriebssysteme

10. Foliensatz Betriebssysteme Prof. Dr. Christian Baun 10. Foliensatz Betriebssysteme Frankfurt University of Applied Sciences SS2016 1/62 10. Foliensatz Betriebssysteme Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung String Operationen i = 25 text1 = "Ich bin " text2 = " Jahre alt" print (text1 + str(i) + text2) print ("ich bin", i, "Jahre alt") print ("ich bin %s Jahre alt" % i) >>> Ich bin 25

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

Lösung von Übungsblatt 10. (Kommunikation von Prozessen)

Lösung von Übungsblatt 10. (Kommunikation von Prozessen) Lösung von Übungsblatt 10 Aufgabe 1 (Kommunikation von Prozessen) 1. Was ist bei Interprozesskommunikation über gemeinsame Speichersegmente (Shared Memory) zu beachten? Die Prozesse müssen die Zugriffe

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

Systemsoftware (SYS)

Systemsoftware (SYS) 10.Vorlesung Systemsoftware (SYS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Robotik 13.6.2008 Heute Interprozesskommunikation Kritische Abschnitte Wettlaufsituationen

Mehr

Domänenmodell: Fadenkommunikation und -synchronisation

Domänenmodell: Fadenkommunikation und -synchronisation Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4

Mehr

Anbindung des eibport an das Internet

Anbindung des eibport an das Internet Anbindung des eibport an das Internet Ein eibport wird mit einem lokalen Router mit dem Internet verbunden. Um den eibport über diesen Router zu erreichen, muss die externe IP-Adresse des Routers bekannt

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 - Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand: 01.2013

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand: 01.2013 Einbindung des MC-Hx Modul als MODBus TCP Slave MB DataTec GmbH Stand: 01.2013 Kontakt: MB DataTec GmbH Friedrich Ebert Str. 217a 58666 Kierspe Tel.: 02359 2973-22, Fax 23 Web : www.mb-datatec.de e-mail:

Mehr

S7-Hantierungsbausteine für R355, R6000 und R2700

S7-Hantierungsbausteine für R355, R6000 und R2700 S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über

Mehr

6. Foliensatz Betriebssysteme und Rechnernetze

6. Foliensatz Betriebssysteme und Rechnernetze Prof. Dr. Christian Baun 6. Foliensatz Betriebssysteme und Rechnernetze FRA-UAS SS2018 1/63 6. Foliensatz Betriebssysteme und Rechnernetze Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von

Mehr

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können. Rechnernetzwerke Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können. Im Gegensatz zu klassischen Methoden des Datenaustauschs (Diskette,

Mehr

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server.

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server. 1. Dynamic Host Configuration Protocol 1.1 Einleitung Im Folgenden wird die Konfiguration von DHCP beschrieben. Sie setzen den Bintec Router entweder als DHCP Server, DHCP Client oder als DHCP Relay Agent

Mehr

Dienstspezifikation nach RFC 2396 193

Dienstspezifikation nach RFC 2396 193 Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname

Mehr

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003 Page 1 of 8 SMTP Konfiguration von Exchange 2003 Kategorie : Exchange Server 2003 Veröffentlicht von webmaster am 25.02.2005 SMTP steht für Simple Mail Transport Protocol, welches ein Protokoll ist, womit

Mehr

Es kann maximal ein Prozess die Umladestelle benutzen.

Es kann maximal ein Prozess die Umladestelle benutzen. SoSe 0 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung (Musterlösung) 0-06-0 bis 0-06-06 Aufgabe : Erzeuger/Verbraucher-Pattern Ein Getränkemarkt hat

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY Vorteile der Verwendung eines ACTIVE-DIRECTORY Automatische GEORG Anmeldung über bereits erfolgte Anmeldung am Betriebssystem o Sie können sich jederzeit als

Mehr

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT Seite 1/7 GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT ZENTRAL LOKALE MANAGEMENT-PLATTFORM FÜR EINE W ELTWEIT SICHERE INDUSTRIELLE KOMMUNIKATION. Seite 2/7 Auf den folgenden Seiten

Mehr

2.3 Applikationen. Protokolle: TCP/IP. Telnet, FTP, Rlogin. Carsten Köhn

2.3 Applikationen. Protokolle: TCP/IP. Telnet, FTP, Rlogin. Carsten Köhn 2.3 Applikationen Telnet, FTP, Rlogin Carsten Köhn Protokolle: TCP/IP Application umfasst Dienste, die als Prozesse des Betriebssystems ausgeführt werden SMTP, FTP, HTTP, MIME Transport regelt die Kommunikation

Mehr

Tafelübung zu BS 4. Interprozesskommunikation

Tafelübung zu BS 4. Interprozesskommunikation Tafelübung zu BS 4. Interprozesskommunikation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/

Mehr

7.4 Kommunikation. großzügige Pufferung, sowohl Auftragsbeziehungen als auch Nachrichten- oder Byte-Ströme, sowohl lokal als auch übers Netz

7.4 Kommunikation. großzügige Pufferung, sowohl Auftragsbeziehungen als auch Nachrichten- oder Byte-Ströme, sowohl lokal als auch übers Netz 7.4 Kommunikation Kommunikation zwischen Benutzerprozessen (IPK) stellt andere Anforderungen als auftragsorientierte Kommunikation in mikrokernbasierten Betriebssystemen, vor allem großzügige Pufferung,

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

ecaros2 - Accountmanager

ecaros2 - Accountmanager ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf

Mehr

Konfiguration des Fernzugriffes auf Eyseo-IP-Netzwerkkameras mittels dynamischer IP-Adresse

Konfiguration des Fernzugriffes auf Eyseo-IP-Netzwerkkameras mittels dynamischer IP-Adresse Konfiguration des Fernzugriffes auf Eyseo-IP-Netzwerkkameras mittels dynamischer IP-Adresse 1. Netzwerkinfrastuktur 2. Warum DynDNS? 3. Erstellen eines DynDNS Hosteintrages 4. Beispeil-Konfiguration eines

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Man liest sich: POP3/IMAP

Man liest sich: POP3/IMAP Man liest sich: POP3/IMAP Gliederung 1. Einführung 1.1 Allgemeiner Nachrichtenfluss beim Versenden von E-Mails 1.2 Client und Server 1.2.1 Client 1.2.2 Server 2. POP3 2.1 Definition 2.2 Geschichte und

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen

Mehr

Zugriff auf die Modul-EEPROMs

Zugriff auf die Modul-EEPROMs MAX-P- und P-Bibliotheken EEPROM-Zugriff 1 Zugriff auf die Modul-EEPROMs Jedes X-Bus-Modul verfügt über ein EEPROM, in dem modulspezifische Daten gespeichert werden. Neben einigen Bereichen, die vom Betriebssystem

Mehr

How to install freesshd

How to install freesshd Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Das Handbuch zu Simond. Peter H. Grasch

Das Handbuch zu Simond. Peter H. Grasch Peter H. Grasch 2 Inhaltsverzeichnis 1 Einführung 6 2 Simond verwenden 7 2.1 Benutzereinrichtung.................................... 7 2.2 Netzwerkeinrichtung.................................... 9 2.3

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0.

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0. Konfigurationsanleitung Access Control Lists (ACL) Funkwerk Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0 Seite - 1 - 1. Konfiguration der Access Listen 1.1 Einleitung Im Folgenden

Mehr

Informatik Grundlagen, WS04, Seminar 13

Informatik Grundlagen, WS04, Seminar 13 Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt

Mehr

WinVetpro im Betriebsmodus Laptop

WinVetpro im Betriebsmodus Laptop WinVetpro im Betriebsmodus Laptop Um Unterwegs Daten auf einem mobilen Gerät mit WinVetpro zu erfassen, ohne den Betrieb in der Praxis während dieser Zeit zu unterbrechen und ohne eine ständige Online

Mehr

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

Mehr

I Serverkalender in Thunderbird einrichten

I Serverkalender in Thunderbird einrichten I Serverkalender in Thunderbird einrichten Damit Sie den Kalender auf dem SC-IT-Server nutzen können, schreiben Sie bitte zuerst eine Mail mit Ihrer Absicht an das SC-IT (hilfe@servicecenter-khs.de). Dann

Mehr

ec@ros2 SMS-Dienst SMS-Dienst procar informatik AG Stand: FS 04/2011 Eschenweg 7 64331 Weiterstadt 1

ec@ros2 SMS-Dienst SMS-Dienst procar informatik AG Stand: FS 04/2011 Eschenweg 7 64331 Weiterstadt 1 SMS-Dienst 64331 Weiterstadt 1 Inhaltsverzeichnis 1 - Aktivieren des Plugins... 3 2 - Berechtigungen... 3 3 - Einrichten des Plugins... 4 4 - Hinterlegen der SMS-Vorlagen...5 5 - SMS erstellen und versenden...6

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Einrichtung eines e-mail-konto mit Thunderbird

Einrichtung eines e-mail-konto mit Thunderbird Einrichtung eines e-mail-konto mit Thunderbird In diesem Tutorial zeigen wir Ihnen, wie Sie im Mozilla Thunderbird E-Mailclient ein POP3- Konto einrichten. Wir haben bei der Erstellung des Tutorials die

Mehr

Kontrollfragen: Internet

Kontrollfragen: Internet Kontrollfragen: Internet 1. Zählen Sie mindestens 5 Internet-Dienste auf. 2. Was ist eine virtuelle Verbindung? Vergleichen Sie eine virtuelle TCP/IP-Verbindung mit der Leitungsvermittlung (analoge Telefonverbindung).

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Enigmail Konfiguration

Enigmail Konfiguration Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es

Mehr

STRATO Mail Einrichtung Mozilla Thunderbird

STRATO Mail Einrichtung Mozilla Thunderbird STRATO Mail Einrichtung Mozilla Thunderbird Einrichtung Ihrer E-Mail Adresse bei STRATO Willkommen bei STRATO! Wir freuen uns, Sie als Kunden begrüßen zu dürfen. Mit der folgenden Anleitung möchten wir

Mehr

Einrichten einer DFÜ-Verbindung per USB

Einrichten einer DFÜ-Verbindung per USB Einrichten einer DFÜ-Verbindung per USB Hier das U suchen Sie können das Palm Treo 750v-Smartphone und den Computer so einrichten, dass Sie das Smartphone als mobiles Modem verwenden und über ein USB-Synchronisierungskabel

Mehr

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003 Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.

Mehr

Einrichtung des GfT Leitsystems für GPRS Verbindungen

Einrichtung des GfT Leitsystems für GPRS Verbindungen Einrichtung des GfT Leitsystems für GPRS Verbindungen Damit eine Verbindung zwischen FWM1 GPRS und dem GfT Leitsystem hergestellt werden kann, benötigt der Leitstellenrechner eine vom Internet erreichbare

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73 Synchronisierung Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73 Übertragungsprozeduren Die Übertragung einer Nachricht zwischen Sender und Empfänger erfordert die Übertragung des Nutzsignals

Mehr

Handbuch für Redakteure

Handbuch für Redakteure Handbuch für Redakteure Erste Schritte... 1 Artikel erstellen... 2 Artikelinhalt bearbeiten... 3 Artikel bearbeiten... 3 Grunddaten ändern... 5 Weitere Artikeleigenschaften... 5 Der WYSIWYG-Editor... 6

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

10.3.1.8 Übung - Konfigurieren einer Windows 7-Firewall

10.3.1.8 Übung - Konfigurieren einer Windows 7-Firewall 5.0 10.3.1.8 Übung - Konfigurieren einer Windows 7-Firewall Drucken Sie diese Übung aus und führen Sie sie durch. In dieser Übung werden Sie erfahren, wie man die Windows 7-Firewall konfiguriert und einige

Mehr

Drucken aus der Anwendung

Drucken aus der Anwendung Drucken aus der Anwendung Drucken aus der Anwendung Nicht jeder Großformatdruck benötigt die volle Funktionsvielfalt von PosterJet - häufig sind es Standarddrucke wie Flussdiagramme und Organigramme die

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) 1 FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) In dieser Kurseinheit geht es um verteilte Anwendungen, bei denen wir sowohl ein Client- als auch ein

Mehr

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells.

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. Übung 7 1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. 2.) Charakterisieren Sie kurz das User Datagram Protokoll (UDP) aus der Internetprotokollfamilie

Mehr

Inhaltverzeichnis 1 Einführung... 1 2 Zugang zu den Unifr Servern... 1. 3 Zugang zu den Druckern... 4 4 Nützliche Links... 6

Inhaltverzeichnis 1 Einführung... 1 2 Zugang zu den Unifr Servern... 1. 3 Zugang zu den Druckern... 4 4 Nützliche Links... 6 Inhaltverzeichnis 1 Einführung... 1 2 Zugang zu den Unifr Servern... 1 2.1 Version Mac OSX 10.1-10.4, 10.6-10.7... 1 2.2 Version Mac OSX 10.5 (Leopard)... 2 3 Zugang zu den Druckern... 4 4 Nützliche Links...

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Electronic Systems GmbH & Co. KG

Electronic Systems GmbH & Co. KG Anleitung zum Anlegen eines POP3 E-Mail Kontos Bevor die detaillierte Anleitung für die Erstellung eines POP3 E-Mail Kontos folgt, soll zuerst eingestellt werden, wie oft E-Mail abgerufen werden sollen.

Mehr

Leitfaden für den E-Mail-Dienst

Leitfaden für den E-Mail-Dienst Leitfaden für den E-Mail-Dienst In diesem Leitfaden finden Sie Hilfestellungen, wie Sie den durch ML Websites bereitgestellten E-Mail-Dienst in Anspruch nehmen können. So richten Sie Ihr E-Mail-Postfach

Mehr

SMS/ MMS Multimedia Center

SMS/ MMS Multimedia Center SMS/ MMS Multimedia Center der BEYOND THE NET GmbH BEYOND THE NET GmbH Seite 1 Unser Multimedia Center ist eine WEB basierende Anwendung, die es ermöglicht von einer Zentrale aus, viele Mitarbeiter zu

Mehr

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Mitgliederbereich (Version 1.0) Bitte loggen Sie sich in den Mitgliederbereich mit den Ihnen bekannten Zugangsdaten

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Protokollbeschreibung Modbus TCP für EMU TCP/IP Modul

Protokollbeschreibung Modbus TCP für EMU TCP/IP Modul Protokollbeschreibung Modbus TCP für EMU TCP/IP Modul Zweck: Dieses Protokollbeschreibung beschreibt den Aufbau des Modbus TCP Protokolls. Datei: EMU Professional Modbus TCP d Seite 1 von 15 Version 1.0

Mehr

Lösung Übungszettel 6

Lösung Übungszettel 6 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include

Mehr

teamsync Kurzanleitung

teamsync Kurzanleitung 1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier

Mehr

mit ssh auf Router connecten

mit ssh auf Router connecten Dateifreigabe über Router Will man seine Dateien Freigeben auch wenn man hinter einem Router sitzt muss man etwas tricksen, das ganze wurde unter Windows 7 Ultimate und der Router Firmware dd-wrt getestet.

Mehr

Synchronisations- Assistent

Synchronisations- Assistent TimePunch Synchronisations- Assistent Benutzerhandbuch Gerhard Stephan Softwareentwicklung -und Vertrieb 25.08.2011 Dokumenten Information: Dokumenten-Name Benutzerhandbuch, Synchronisations-Assistent

Mehr

E Mail Versand mit der Schild NRW Formularverwaltung

E Mail Versand mit der Schild NRW Formularverwaltung -Seite 1- E Mail Versand mit der Schild NRW Formularverwaltung Seit der Version 1.12.3.97 der Reportverwaltung ist die Möglichkeit integriert, E Mails direkt, d.h. ohne Umweg über einen externen Mailclient

Mehr

Cisco AnyConnect VPN Client - Anleitung für Windows7

Cisco AnyConnect VPN Client - Anleitung für Windows7 Cisco AnyConnect VPN Client - Anleitung für Windows7 1 Allgemeine Beschreibung 2 2 Voraussetzungen für VPN Verbindungen mit Cisco AnyConnect Software 2 2.1 Allgemeine Voraussetzungen... 2 2.2 Voraussetzungen

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

WINLINK 2000 SPAM-KONTROLLE UND NACHRICHTEN PRIORITÄTEN Aktualisiert 27. März 2012

WINLINK 2000 SPAM-KONTROLLE UND NACHRICHTEN PRIORITÄTEN Aktualisiert 27. März 2012 WINLINK 2000 SPAM-KONTROLLE UND NACHRICHTEN PRIORITÄTEN Aktualisiert 27. März 2012 AB SOFORT IST DIE WHITELIST FÜR JEDEN BENUTZER OBLIGATORISCH. Das weisse Liste System betrifft Adressen aus dem INTERNET.

Mehr

Handbuch für Nutzer von Zertifikaten der Zertifizierungsstellen (CAs) des Bayerischen Behördennetzes (BYBN) zur Sicherung von E-Mails Teil C3:

Handbuch für Nutzer von Zertifikaten der Zertifizierungsstellen (CAs) des Bayerischen Behördennetzes (BYBN) zur Sicherung von E-Mails Teil C3: Handbuch für Nutzer von Zertifikaten der Zertifizierungsstellen (CAs) des Bayerischen Behördennetzes (BYBN) zur Sicherung von E-Mails (Kerstin Ehrhardt) München 02.05.2007 1 1 Auswahl der Standard -Zertifikate...3

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Medea3 Print-Client (m3_print)

Medea3 Print-Client (m3_print) Medea3 Print-Client (m3_print) Installationsanleitung Installationsanleitung m3_print.exe...2 1. Installieren von Ghostskript und Ghostview...2 1. Ghostskript...2 2. Ghostview...3 2. Kopieren des Print-Client-Programms...6

Mehr

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000 Folgende Anleitung beschreibt, wie Sie ein bestehendes Postfach in Outlook Express, bzw. Microsoft Outlook bis Version 2000 einrichten können. 1. Öffnen Sie im Menü die Punkte Extras und anschließend Konten

Mehr

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets.

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Timer Sockets SMTP-Client 2 / 26 Timer Mit einem Timer können bestimmte Aktionen periodisch wiederkehrend durchgeführt

Mehr

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation, zugehörige Systemaufrufe und Kommandos 12. UNIX/Linux-Sockets Wintersemester 2016/17 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Wie erzeugt man ein Fotobuch im Internet bei Schlecker Seite Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software Punkt 12 bis 24: -Wir arbeiten mit der Software 8-16 -Erstellung

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach 34 70 17 28339 Bremen. Friedrich-Mißler-Straße 42 28211 Bremen

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach 34 70 17 28339 Bremen. Friedrich-Mißler-Straße 42 28211 Bremen Grontmij GmbH Postfach 34 70 17 28339 Bremen Friedrich-Mißler-Straße 42 28211 Bremen T +49 421 2032-6 F +49 421 2032-747 E info@grontmij.de W www.grontmij.de DELFI Benutzeranleitung Dateiversand für unsere

Mehr