Systemsoftware (SYS)

Größe: px
Ab Seite anzeigen:

Download "Systemsoftware (SYS)"

Transkript

1 10.Vorlesung Systemsoftware (SYS) Christian Baun Hochschule Mannheim Fakultät für Informatik Institut für Robotik

2 Heute Interprozesskommunikation Kritische Abschnitte Wettlaufsituationen (Race Conditions) Kommunikation vs. Kooperation Synchronisation von Prozessen Aktives Warten, blockieren, deblockieren, Barrieren, Sperren Kommunikation von Prozessen Shared Memory, Message Queues, Pipes, Sockets Kooperation von Prozessen Semaphor, Mutex 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 2

3 Prozessinteraktionsarten Prozesse, die zusammen an einer gemeinsamen Aufgabe arbeiten, müssen nicht nur Operationen auf Daten ausführen, sonden auch: sich gegenseitig aufrufen aufeinander warten sich abstimmen kurz gesagt: Sie müssen miteinander interagieren. Prozesse haben eine Eingabe und eine Ausgabe und müssen in den meisten Fällen ständig mit anderen Prozessen kommunizieren. Eine Pipe beispielsweise sorgt dafür, dass die Ausgabe einen Prozesses in die Eingabe eines anderen Prozesses weitergeleitet wird. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 3

4 Interprozesskommunikation Bei der Interprozesskommunikation sind drei Punkte interessant: 1. Wie kann ein Prozess Informationen an einen anderen weiterreichen? 2. Wie kann sichergestellt werden, dass zwei oder mehr Prozesse, die auf die gleiche Ressource zugreifen wollen, sich nicht in die Quere kommen? 3. Wie können Prozesse mit Abhängigkeiten sauber durchlaufen? Frage: Wie verhält es sich hier mit Threads? Im Bezug auf Threads gelten praktisch die gleichen Herrausforderungen der Interprozesskommunikation (IPC). Nur die Kommunikation zwischen den Threads eines Prozesses ist unproblematisch, da sie im gleichen Adressraum agieren. Ansonsten gelten die Probleme und Lösungen der Interprozesskommunikation für Threads genau so wie für Prozesse. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 4

5 Kritische Abschnitte Auf allen Systemen, auf denen mehrere Prozesse laufen, müssen die Prozesse Daten austauschen und Ressourcen gemeinsam nutzen. laufen mehrere parallel ausgeführte Prozesse, unterscheidet man: Unkritische Abschnitte: Die Prozesse greifen nicht oder nur lesend auf gemeinsame Daten zu. Kritische Abschnitte: Die Prozesse greifen nicht nur lesend auf gemeinsame Daten zu. Damit Prozesse auf gemeinsam genutzten Speicher zugreifen können, ist wechselseiteiger Ausschluss (Mutual Exclusion) notwendig. Kritische Abschnitte dürfen nicht von mehreren Prozessen gleichzeitig durchlaufen werden. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 5

6 Kritische Abschnitte Beispiel: Drucker-Spooler (1) 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 6

7 Kritische Abschnitte Beispiel: Drucker-Spooler (2) Prozess X Prozess Y next free slot = in; (7) Speichere Eintrag in next free slot; (7) in = next free slot + 1; (8) Prozesswechsel Prozesswechsel next free slot = in; (7) Speichere Eintrag in next free slot; (7) in = next free slot + 1; (8) Das Spooler-Verzeichnis ist zwar konsistent, aber der Eintrag von Prozess Y wurde von Prozess X überschrieben und ist verloren gegangen. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 7

8 Race Conditions Eine Race Condition (Wettlaufsituation) bezeichnet eine Konstellation, bei der das Ergebnis eines Prozesses von der Reihenfolge oder dem zeitlichen Ablauf anderer Ereignisse abhängt. Eine Race Conditions ist eine unbeabsichtigten Wettlaufsituation zweier Prozesse, die auf die gleiche Speicherstelle schreibend zugreifen wollen. Häufiger Grund für schwer auffindbare Programmfehler. Hauptproblem: Das Auftreten und die Symptome sind von unterschiedlichen Ereignissen und ihrem Verhalten abhängen. Bei jedem Testdurchlauf können die Symptome komplett verschieden sein oder verschwinden. Race Conditions können u.a durch Semaphore vermieden werden. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 8

9 Beispiel einer Race Condition (1) Angenommen, der Wert einer Speicherstelle ist 5. Zwei voneinander unabhängige Prozesse wollen auf die Speicherstelle zugreifen und jeweils den gespeicherten Wert um 2 erhöhen. Eine Ausführungsreihenfolge mit korrektem Ergebnis wäre z.b: 1. Prozess X liest Wert in internen Speicher = X=5 2. Prozess X erhöht intern den Wert um 2 = X=7 3. Prozess X schreibt neuen Wert in den Speicher = Speicher=7 4. Prozess Y liest Wert in internen Speicher = Y=7 5. Prozess Y erhöht intern den Wert um 2 = Y=9 6. Prozess Y schreibt neuen Wert in den Speicher = Speicher=9 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 9

10 Beispiel einer Race Condition (2) Wenn beide Prozesse gleichzeitig auf die Speicherstelle zugreifen wollen, kommt es zu einer Race Condition und einem fehlerhaften Ergebnis. 1. Prozess X liest Wert in internen Speicher = X=5 2. Prozess Y liest Wert in internen Speicher = Y=5 3. Prozess X erhöht intern den Wert um 2 = X=7 4. Prozess Y erhöht intern den Wert um 2 = Y=7 5. Prozess X schreibt neuen Wert in den Speicher = Speicher=7 6. Prozess Y schreibt neuen Wert in den Speicher = Speicher=7 Um eine Race Condition zu verhindern, muss bei einem Zugriff auf den Wert der Speicherstelle diese bis zum Abschluss des Zugriffs gesperrt werden. In diesem Fall muss Prozess Y warten, bis Prozess X den neuen Wert in die Speicherstelle geschrieben hat. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 10

11 Kommunikation vs. Kooperation Die Prozessinteraktion besitzt zwei Aspekte: Funktionaler Aspekt: Kommunikation und Kooperation. Zeitlicher Aspekt: Synchronisation. 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) 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 11

12 Interaktionsformen Kommunikation und Kooperation basieren alle auf der Synchronisation. Die Synchronisation ist die elementarste Form der Intaraktion, denn Kommunikation und Kooperation benötigen alle eine zeitliche Abstimmung zwischen den Intaraktionspartnern. Aus diesem Grund müssen wir zu erst die Synchronisation behandeln. Kommunikation Kooperation Synchronisation 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 12

13 Synchronisation Synchronisation Signalisierung (aktives Warten) Signalisierung (blockieren, deblockieren) Wechselseitige Synchronisierung Gruppensignalisierung Barrieren Kritische Abschnitte Sperren 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 13

14 Signalisierung Die Signalisierung ist eine spezielle Art der Synchronisation. Bei der Signalisierung wird eine Reihenfolgebeziehung hergestellt. Ein Beispiel: Abschnitt X von Prozess 1 soll vor Abschnitt Y von Prozess 2 ausgeführt werden. Mit den Operationen signal und wait kann signalisiert werden, wenn Prozess 1 den Abschnitt X abgearbeitet hat. Prozess 2 muss zur Laufzeit eventuell auf das Signal von Prozess 1 warten. Prozess 1 Prozess 2 X signal(s) wait(s) Y 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 14

15 Grundform der Signalisierung (aktives Warten) In der einfachsten Form sehen die Operationen zur Signalisierung so aus: signal(s) wait(s) set s is s set? no reset s Diese Vorgehensweise ist aktives Warten an der Signalisierungsvariablen s und das bedeutet, dass Rechenzeit der CPU verschwendet wird, da diese immer wieder von dem Prozess belegt wird. Diese Technik wird auch als Spinlock oder Warteschleife bezeichnet. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 15

16 Signalisierung (blockieren, deblockieren) Besser ist es, den wartenden Prozess zu blockieren, bis Prozess 1 Abschnitt X abgearbeitet hat. Diese Vorgehensweise würde die CPU deutlich entlasten. Nachteil: Beim Signalisieren mit Wartezustand kann immer nur ein Prozess warten. signal(s) wait(s) set s is s set? no yes process waiting? block process yes no deblock process reset s 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 16

17 blockieren, deblockieren unter JAVA class Signal { private boolean set = false; // Signalvariable public synchronized void signal() { set = true; notify(); // deblockiert den wartenden Prozess } } public synchronized void wait() { if (!set) wait(); // wartet auf das Signal set = false; } Mit wait() wird ein Prozess in seiner Ausführung blockiert. Mit notify() wird ein wartender Prozess deblockiert. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 17

18 Wechselseitige Synchronisierung Werden wait() und signal() (bzw. unter JAVA: notify()) symmetrisch ausgeführt, führt das dazu, dass die Abschnitte X1 und Y1 vor den Abschnitten X2 und Y2 ausgeführt werden. Prozess 1 Prozess 2 X1 signal(s) wait(s) X2 Y1 signal(s) wait(s) Y2 In einem solchen Fall spricht man davon, dass die Prozesse 1 und 2 synchronisieren. Es kommt zu einem Rendezvous bzw. Handshake. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 18

19 Wechselseitige Synchronisierung sync() Die Operation sync() fasst die Operationen wait() und signal() (unter JAVA: notify()) zusammen. Prozess 1 Prozess 2 X1 Y1 sync(s) sync(s) X2 Y2 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 19

20 Implementierung einer Synchronisierung unter JAVA class Synchronisierung { private boolean set = false; } public synchronized void sync() { if (set == false) { // ich bin der erste Prozess set = true; // die Bereitschaft signalisieren wait(); // auf den anderen Prozess warten } else { // ich bin der zweite Prozess set = false; // Signalvariable zurücksetzen notify(); // deblockiert den wartenden Prozess } } 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 20

21 Gruppensignalisierung An einer Signalisierung können mehr als zwei Prozesse beteiligt sein. In einem solchen Fall spricht man von Gruppensignalisierung. Zwei Beispiele für Gruppensignalisierung sind: UND-Signalisierung: Ein Prozess darf in seiner Abarbeitung erst weiterlaufen, wenn mehrere Prozesse ein Signal gesetzt haben. In diesem Fall liegt eine UND-Verknüpfung auf Signalisierungsseite vor. ODER-Signalisierung: Mehrere Prozesse warten auf ein Signal. Erfolgt das Signal, wird einer der wartenden Prozesse deblockiert. In diesem Fall liegt eine ODER-Verknüpfung auf der Seite der wartenden Prozesse vor. Alle möglichen Kombinationen der beiden Arten von Gruppensignalisierungen sind denkbar. Bei Gruppensignalisierung sind in der Signalimplementierung entsprechende Kapazitäten bzgl. der Signalvariablen notwendig. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 21

22 UND-Signalisierung Prozess 1 signal(s1) Prozess 4 Prozess 2 wait(s1) wait(s2) wait(s3) signal(s2) Prozess 3 signal(s3) 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 22

23 ODER-Signalisierung Prozess 2 Prozess 1 wait(s) Prozess 3 signal(s) wait(s) Prozess 4 wait(s) 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 23

24 Gruppensynchronisierung mit Barriere Mit einer Barriere synchronisieren die beteiligten Prozesse an einer Stelle. Die Prozesse dürfen erst dann in seiner Abarbeitung weiterlaufen, wenn alle Prozesse die Synchronisationsstelle erreicht haben. Prozess 1 Prozess 2 Prozess 3 Prozess 4 X1 sync(s) X1 sync(s) X1 X1 sync(s) X2 X2 X2 sync(s) X2 In einem solchen Fall spricht man von einer Synchronisationsbarriere, Barrierensynchronisation oder Gruppenrendezvous. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 24

25 Implementierung einer Barriere unter JAVA (1) class BarrierenSynchronisation { private int summe = p; private int zaehler = 0; // Anzahl Prozesse // Anzahl wartende Prozesse } public synchronized void sync() { zaehler = zaehler + 1; if (zaehler < summe) { // es fehlen noch Prozesse wait(); // auf die fehlenden Prozesse warten } else { // es sind alle Prozesse eingetroffen notifyall(); // alle wartenden Prozesse deblockieren zaehler = 0; } } 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 25

26 Implementierung einer Barriere unter JAVA (2) Das Schlüsselwort synchronized sorgt unter JAVA für den gegenseitigen Ausschluss aller damit gekennzeichneten Methoden eines Objekts. Die JAVA-Methode wait() blockiert die Ausführung des Prozesses, bis dieser deblockiert wird. Die JAVA-Methode notify() deblockiert einen wartenden Prozess. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 26

27 Sperren Mit Sperren werden kritische Abschnitte gesichert. Prozess 1 Prozess 2 X lock(s) unlock(s) lock(s) Y unlock(s) Durch Sperren können wir dafür sorgen, dass es bei der Abarbeitung zweier krischer Abschnitte wie X von Prozess 1 und Y von Prozess 2 keine Überlappung gibt. Die Ausführungen der Prozesse 1 und 2 schließen sich gegenseitig aus. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 27

28 Sperren und Freigeben Die Signalvariable s wird bei lock() anders als bei signal() in einer Schleife abgefragt, da zwischen dem Deblockieren des wartenden Prozesses und dem Setzen der Sperre ein anderer Prozess die Sperre setzen könnte. unlock(s) lock(s) reset s is s set? yes no prozess waiting? block process yes no deblock prozess set s 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 28

29 Unterschied zwischen Signalisierung und Sperren Bei der Signalisierung wird eine Reihenfolgebeziehung zwischen Prozessen festgelegt. Beispiel: Abschnitt A von Prozess P 1 soll vor Abschnitt B von P 2 ausgeführt werden. Bei einer Sperre werden kritische Abschnitte gesichert. Die Reihenfolge, in der die Prozesse bei einer Sperre ihre kritische Abschnitte abarbeiten, ist nicht festgelegt! Es soll bei einer Sperre nur sichergestellt sein, dass es keine Überlappung in der Ausführung der kritischen Abschnitte gibt. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 29

30 Implementierung einer Sperre unter JAVA class Sperre { private boolean gesperrt = false; public synchronized void sperre() { while(gesperrt) wait(); // auf die fehlenden Prozesse warten gesperrt = true; // den Prozess sprerren } } public synchronized void entsperren() { gesperrt = false; // die Sperre für den Prozess aufheben notify(); // alle wartenden Prozesse benachrichtigen } 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 30

31 Probleme, die durch Sperren entstehen Verhungern (Starving) Wenn ein Prozess eine Sperre nicht wieder aufhebt, müssen die anderen Prozesse unendlich lange auf die Freigabe warten. In einem solchen Fall spricht man vom Verhungern (englisch: to starve) der Prozesse. Deadlock Wenn zwei Prozesse gegenseitig auf die von ihnen gesperrten Ressourcen warten, sperren sich die Prozesse gegenseitig. Es kommt zu einer Verklemmung (Deadlock). Da alle am Deadlock beteiligten Prozesse warten, kann keiner ein Ereignis auslösen, so dass ein anderer geweckt wird. Beim Deadlock warten alle beteiligten Prozesse ewig. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 31

32 Ein schematisches Deadlock-Beispiel 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 32

33 Ein Deadlock-Beispiel aus der realen Welt 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 33

34 Bedingungen für Deadlocks Damit ein Deadlock überhaupt entstehen kann, müssen die folgenden vier Bedingungen alle erfüllt sein: 1. Wechselseitiger Ausschluss: Jede Ressource wird von genau einem Prozess belegt oder ist verfügbar. 2. Anforderung weiterer Betriebsmittel: Ein Prozess, der bereits Ressourcen besitzt, kann weitere anfordern. 3. Ununterbrechbarkeit: Die Ressourcen, die ein Prozess besitzt, können nicht von außen entzogen, sondern nur durch ihn selbst freigegeben werden. 4. Zyklische Wartebedingung: Es gibt eine zyklische Kette von Prozessen. Jeder Prozess fordert eine Ressource an, die der nächste Prozess in der Kette besitzt. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 34

35 Kommunikation Kommunikation Shared Memory Message Queues Pipes Sockets 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 35

36 Shared Memory (1) Prozesskommunikation über einen gemeinsamen Speicher (Shared Memory) bezeichnet man auch als speicherbasierte Kommunikation. Shared Memory Segmente sind Speicherbereiche, auf die mehrere Prozesse direkt zugreifen können. Diese Speicherbereiche liegen im Adressraum mehrere Prozesse. Um einen Speicherbereich zu einem Shared Memory Segment zu machen, muss eine bestimmte Funktion shmget() des Betriebssystems aufgerufen werden und der Speicherbereich wird als Shared Memory Segment registriert. Die Prozesse, die auf ein Shared Memory Segment zugreifen, müssen die Schreib- und Lesezugriffe selbst koordinieren und sicherstellen, dass ihre Speicherzugriffe sich gegenseitig ausschließen. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 36

37 Shared Memory (2) Der lesende Prozess (Empfänger) darf nichts aus dem gemeinsamen Speicher lesen, bevor der schreibende Prozess (Sender) etwas fertig in den gemeinsamen Speicher geschrieben hat. Geschieht die Koordinierung der Zugriff nicht mit Sorgfalt, kommt es zu Inkonsistenzen. Prozess X (Sender) exklusiv nutzbarer Speicher Shared Memory gemeinsam nutzbarer Speicher Prozess Y (Empfänger) exklusiv nutzbarer Speicher 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 37

38 Shared Memory unter Linux/UNIX Bei Linux/UNIX-Betriebssystemen speichert eine Shared Memory Tabelle die Informationen über die aktuell existierenden Shared Memory Segmente. Zu diesen Informationen gehören: Anfangsadresse im Speicher Größe Besitzer (Username und Gruppe) Zugriffsrechte Ein Shared Memory Segment wird immer über seine Indexnummer in der Shared Memory Tabelle angesprochen und entspricht einem Anschnitt im Speicher. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 38

39 Prinzip von Shared Memory unter Linux/UNIX Shared Memory Tabelle 0 Segment 0 Kopie durch shmat() Adressraum von Prozess X (virtueller Adressraum) Seite Segment 1 Segment 2 virtuelle Adresse virtuelle Adresse Seite 1 Seite Segment 3 Segment 4 Memory Management Unit (MMU) Seite 3 Seite 4 5 Segment 5 Seite 5 Index enthält Informationen zum jeweiligen Segment reale Adresse im Hauptspeicher 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 39

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

41 Message Queues Message Queues sind Nachrichten, die in Form einer verketteten Liste verwaltet werden. Prozesse können Daten in der Message Queue ablegen, die von anderen Prozessen abgeholt werden können. Jede Message Queue hat eine eindeutige Kennung zur Identifikation. Message Queues sind vergleichbar mit Mailboxen für Prozesse. Vorteil von Message Queues: Die Daten in einer Message Queue verbleiben auch nach der Beendigung des Erzeuger-Prozesses in der Message Queue. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 41

42 Mit Message Queues arbeiten Linux/UNIX-Betriebssysteme stellen vier Systemaufrufe für die Arbeit mit Message Queues bereit: msgget(): Message Queues erzeugen oder auf bestehende Message Queues zugreifen. msgsnd(): Nachrichten in Message Queues schreiben (schicken). msgrcv(): Nachrichten aus Message Queues lesen (empfangen). msgctl(): Status (u.a. Zugriffsrechte) von Message Queues abfragen, ändern und Message Queues löschen. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 42

43 Pipes (1) Eine Pipe ist wie ein Kannal bzw. eine Röhre, die einen gepufferten, unioder bidirektionalen Datenstrom zwischen zwei Prozessen ermöglicht. Man unterscheidet Anonyme Pipes und Benannte Pipes. Eine Pipe kann immer nur zwischen zwei Prozessen tätig sein. Eine Anonyme Pipe kann nur in eine Richtung verwendet werden. Pipes funktionieren immer nach dem FIFO (First In First Out) Prinzip. Pipes werden von einem Prozess mit dem Systemaufruf pipe() angelegt. Dabei wird ein Inode auf der Festplatte und zwei Zugriffskennungen, die sogenannten Handles erzeugt. Prozess X "abc..." Pipe "abc..." Prozess Y Schreib-Prozess enthält den Bytestrom Lese-Prozess 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 43

44 Pipes (2) 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. Bei der Erzeugung von Kindprozessen mit fork() erben die Kindprozesse auch den Zugriff auf die Zugriffskennungen. Nachteil: Nur Prozesse, die mittels fork() eng verwandt sind, können über Pipes miteinander kommunizieren. Mit der Beendigung des letzten Prozesses, der Zugriff auf eine aktive Pipe hat, wird die Pipe vom Betriebssystem beendet. Pipes, die nur Prozesskommnikation zwischen eng verwandten Prozessen ermöglichen, werden auch als Anonyme Pipes bezeichnet. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 44

45 Pipes (3) 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 können auch zur Kommunikation von Prozessen auf unterschiedlichen Rechnern innerhalb eines Netzwerkes eingesetzt werden. Benannte Pipes ermöglichen den Vollduplexbetrieb zwischen Prozessen. Daten können gleichzeitig in beide Richtungen ausgetauscht werden. Jeder Prozess, der den Namen einer benannten Pipe kennt, kann über den Namen die Verbindung zur Pipe herstellen und darüber mit anderen Prozessen kommunizieren. Benannte Pipes können unter Linux/UNIX-Betriebssystemen mit dem Systemaufruf mknod() erzeugt werden. Benannte Pipes werden häufig einfach als FIFO bezeichnet. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 45

46 Pipes (4) 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. Unter UNIX sind Pipes ein mächtiges Werkzeug um Befehle sequentiell abzuarbeiten. Eine Pipe sorgt dafür, dass die Ausgabe eines Prozesses in die Eingabe eines anderen gelangt und wird auf der Shell mit dem senkrechten Balken erzeugt. z.b. cat /pfad/zu/datei.txt grep Suchmuster 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 46

47 Sockets Sockets sind Endpunkte einer bi-direktionalen Software-Schnittstelle zu Kommunikation zwischen Prozessen in verteilten Systemen. Sockets sind die vollduplexfähige Alternative zu Pipes und speicherbasierter Kommunikation (Shared-Memory). Ein Socket kann von mehreren Rechner-Systemen verwendet werden. Sockets bilden eine standardisierte Schnittstelle zwischen der Netzwerkprotokollimplementierung des Betriebssystems 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. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 47

48 Prinzip von Sockets Zur Kommunikation über Sockets werden Ports verwendet. Die Vergabe der Portnummern erfolgt beim Verbindungsaufbau. Die Portnummern werden großteils vom Betriebssystem beliebig vergeben. Ausnahmen sind Ports bekannter Anwendungen, die immer gleich sind. Bekannte Beispiele sind: HTTP (80), SMTP (25), Telnet (23), SSH (22), FTP (21), POP3 (110),... Der Einsatz von Sockets ist blockierend (synchron) und nicht-blockierend (asynchron) möglich. Prozess X send recv Socket Socket send recv Prozess Y Rechner 1 Rechner 2 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 48

49 Verschiedene Arten von Sockets Verbindungsorienterte Sockets (bzw. Stream Sockets) Kommunizieren über einen kontinuierlichen Zeichen-Datenstrom. Verwenden meistens 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. Verbindungslose Sockets (bzw. Datagram Sockets) Basieren auf dem Senden von einzelnen Nachrichten (Pakete). Verwenden meistens UDP. Vorteile: UDP ermöglicht eine höhere Geschwindigkeit. Nachteile: Daten werden in Pakete aufgeteilt und einzeln versandt. Pakete können einander überholen oder verloren gehen. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 49

50 Vergleich der Kommunikations-Systeme Nachrichtebasierte Kommunikation ist komfortabler als speicherbasierte Kommunikation über Shared Memory. Die Vorteile von nachrichtebasierter Kommunikation sind: Das Betriebssystem entlastet bei nachrichtebasierter Kommunikation die Benutzerprozesse von allen Verwaltungsaufgaben, insbesondere von Synchronisationsproblemen. Nachrichtebasierte Kommunikation kann auch in verteilten Systemen eingesetzt werden, in denen kein gemeinsam zugreifbarer Hardwarespeicher vorhanden ist. 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. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 50

51 Kooperation Kooperation Semaphor Mutex 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 51

52 Semaphore (1) Zur Sicherung (Sperrung) kritischer Abschnitte können außer den bekannten Sperren auch Semaphore eingetzt werden. Semaphore wurden 1965 durch E.W.Dijkstra eingeführt. Ursprünglich ist ein Semaphor eine einfache Zählersperre S mit den Operationen P(S) und V(S). Die Zugriffsoperationen sind atomar, also 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. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 52

53 Semaphore (2) Die Arbeitsweise von Semaphoren wird ersichtlich, wenn man sich folgendes Szenario vor Augen hält. 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, also sind 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. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 53

54 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 befnden. 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. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 54

55 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; 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 55

56 Drei Zugriffsoperationen sind möglich (2) P-Operation (passieren): Diese Operation prüft zu allererst, 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; 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 56

57 Drei Zugriffsoperationen sind möglich (3) V-Operation (freigeben): 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 entblockiert if ( < SEM-Warteraum ist nicht leer > ) < entblockiere einen wartenden Prozess > 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 57

58 Aufbauschema des Semaphpors COUNT > 0 P-Operation COUNT == 0 Warteraum COUNT - 1 kein Prozess wartet V-Operation COUNT + 1 ein Prozess wartet entblockiere Prozess Quelle: Carsten Vogt, Betriebssysteme, Spektrum Verlag 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 58

59 Erzeuger/Verbraucher-Beispiel (1) Ein Erzeuger soll Daten an einen Verbraucher schicken. Ein endlicher Zwischenspeicher (Puffer) soll die Wartezeiten des Verbrauchers minimieren. Daten können vom Erzeuger in den Puffer gelegt werden und vom Verbraucher aus diesem wieder entfernt werden. Gegenseitiger Ausschluss ist notwendig, um Inkonsistenzen zu vermeiden. Der Erzeuger muss blockieren, wenn der Puffer voll ist. Der Verbraucher muss blockieren, wenn der Puffer leer ist, also keine Daten vorliegen. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 59

60 Erzeuger/Verbraucher-Beispiel (2) Zur Synchronisation der Zugriffe werden drei Semaphore verwendet: voll: zählt die belegten Plätze im Puffer leer: zählt die freien Plätze im Puffer mutex: zuständig für den gegenseitigen Ausschluss 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 60

61 Erzeuger/Verbraucher-Beispiel (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 den Zugriff auf kritische Bereiche void erzeuger (void) { int daten; } while (TRUE) { // Endlosschleife erzeugedatenpaket(daten); // erzeuge Datenpaket P(leer); // Zähler für leere Plätze erniedrigen P(mutex); // in den 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 } 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 61

62 Erzeuger/Verbraucher-Beispiel (4) void verbraucher (void) { int daten; } while (TRUE) { // Endlosschleife P(voll); // Zähler für volle Plätze erniedrigen P(mutex); // in den 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 } 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 62

63 Erzeuger/Verbraucher-Beispiel (5) Die Semaphore voll und leer werden gegenläufig zueinander eingesetzt. Das Semaphor leer zählt die Anzahl der freien Plätze im Puffer und wird vom Erzeuger in einer P-Operation erniedrigt und vom Verbraucher in einer V-Operation erhöht. Das Semaphor voll zählt die Anzahl der Datenpakete (belegten Plätze) im Puffer und wird vom Erzeuger in einer V-Operation erhöht und vom Verbraucher in einer P-Operation erniedrigt. Ist der Puffer vollständig belegt, also das Semaphor leer gleich 0, wird der Erzeuger blockiert. Sind keine Datenpakete im Puffer, also das Semaphor voll gleich 0, wird der Verbaucher blockiert. Das Semaphor mutex ist für den wechselseitigen Ausschluss zuständig. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 63

64 Binäre Semaphore Als binäre Semaphore bezeichnet man Semaphore, die mit dem Wert 1 initialisiert werden und sicherstellen sollen, 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. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 64

65 Semaphoren-Beispiel: Ping-Pong Fügen Sie in den beiden Endlosprozessen Ping und Pong Semaphorenoperationen P und V so ein, dass die Prozesse endlos PingPong, PingPong, PingPong ausgeben. Geben Sie bitte auch die Initialisierung der Semaphoren an. // Initialisierung der Semaphoren 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; 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 65

66 Semaphoren-Beispiel: Drei Läufer (1) Drei Läufer sollen hintereinander eine bestimmte Strecke laufen. Der zweite Läufer darf erst starten, wenn der erste Läufer im Ziel angekommen ist. Der dritte Läufer darf erst starten, wenn der zweite Läufer im Ziel angekommen ist. Vorgeschlagen wird nebenstehende Lösung. // Initialisierung der Semaphoren s_init (Sema, 0); task Erster is < laufen > V(Sema); task Zweiter is P(Sema); < laufen > V(Sema); task Dritter is P(Sema); < laufen > Ist diese Lösung korrekt? 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 66

67 Semaphoren-Beispiel: Drei Läufer (2) 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? 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 67

68 Semaphoren-Beispiel: Drei Läufer (3) Lösungsmöglichkeit: Ein zweites 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 Semaphoren 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 > 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 68

69 Semaphore unter Linux/UNIX (1) Das Konzept der Semaphoren unter Linux/UNIX-Betriebssystemen weicht ein wenig vom Konzept der Semaphoren nach Dijkstra ab. Unter Linux/UNIX-Betriebssystemen 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. Unter Linux/UNIX-Betriebssystemen führt das Betriebssystem im Kernel eine Semaphorentabelle, die Verweise auf Arrays mit Semaphoren enthält. Jedes Array beschreibt eine Gruppe von Semaphoren, die über den Index der Semaphorentabelle identifiziert wird. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 69

70 Semaphore unter Linux/UNIX (2) 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 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 70

71 Semaphore unter Linux/UNIX (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 einen Semaphor löschen. semop(): P- und V-Operationen auf Semaphoren durchführen. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 71

72 IPC-Objekte löschen Die einfachste Möglichkeit, Semaphore, Shared Memory Segmente und Message Queues 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 SemaphorenID ipcrm msg MessageQueueID 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 72

73 Mutexe (1) Wenn die Möglichkeit eines Semaphors zu zählen nicht benötigt wird, 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. Folglich wird nur ein Bit benötigt, um die Information darzustellen. In der Realität wird häuig eine Ganzzahl 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. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 73

74 Mutexe (2) Mutexe sind im Vergleich zu Semaphoren effizienter und einfacher zu realisieren. 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. 10.Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 74

75 Nächste Vorlesung: Vorlesung Systemsoftware (SYS) Hochschule Mannheim Folie 75

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

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

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

9. Vorlesung Betriebssysteme

9. Vorlesung Betriebssysteme Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/39 9. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik wolkenrechnen@gmail.com Dr. Christian

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

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

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

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

9. Foliensatz Betriebssysteme

9. Foliensatz Betriebssysteme Prof. Dr. Christian Baun 9. Foliensatz Betriebssysteme Frankfurt University of Applied Sciences SS2016 1/32 9. Foliensatz Betriebssysteme Prof. Dr. Christian Baun Frankfurt University of Applied Sciences

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

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 6. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Vorstellung

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

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

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

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

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

Synchronisation in Java. Invisible Web

Synchronisation in Java. Invisible Web Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections

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

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

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

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

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

E-Mail Adressen der BA Leipzig

E-Mail Adressen der BA Leipzig E-Mail Adressen der BA Jeder Student der BA bekommt mit Beginn des Studiums eine E-Mail Adresse zugeteilt. Diese wird zur internen Kommunikation im Kurs, von der Akademie und deren Dozenten zur Verteilung

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

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

10. Vorlesung Betriebssysteme

10. Vorlesung Betriebssysteme Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/63 10. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik wolkenrechnen@gmail.com Dr.

Mehr

Lösungsskizzen zur Abschlussklausur Betriebssysteme

Lösungsskizzen zur Abschlussklausur Betriebssysteme Lösungsskizzen zur Abschlussklausur Betriebssysteme 24. Januar 2013 Name: Vorname: Matrikelnummer: Studiengang: Hinweise: Tragen Sie zuerst auf allen Blättern (einschlieÿlich des Deckblattes) Ihren Namen,

Mehr

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem 20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem Autor Susanne Albers, Universität Freiburg Swen Schmelzer, Universität Freiburg In diesem Jahr möchte

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

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

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

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

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =

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

Verbessertes Konzept: Monitore

Verbessertes Konzept: Monitore Verbessertes Konzept: Monitore Ein Nachteil von Semaphoren ist die Notwendigkeit zur expliziten Anforderung P und Freigabe V des kritischen Bereiches durch den Programmierer Vergißt der Entwickler z.b.

Mehr

Tipps und Tricks zu Netop Vision und Vision Pro

Tipps und Tricks zu Netop Vision und Vision Pro Tipps und Tricks zu Netop Vision und Vision Pro Anwendungen auf Schülercomputer freigeben und starten Netop Vision ermöglicht Ihnen, Anwendungen und Dateien auf allen Schülercomputern gleichzeitig zu starten.

Mehr

Vgl. Oestereich Kap 2.7 Seiten 134-147

Vgl. Oestereich Kap 2.7 Seiten 134-147 Vgl. Oestereich Kap 2.7 Seiten 134-147 1 Sequenzdiagramme beschreiben die Kommunikation/Interaktion zwischen den Objekten (bzw. verschiedenen Rollen) eines Szenarios. Es wird beschrieben, welche Objekte

Mehr

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Outlook Weiterleitungen & Abwesenheitsmeldungen Seite 1 von 6 Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Erstellt: Quelle: 3.12.09/MM \\rsiag-s3aad\install\vnc\email Weiterleitung

Mehr

Anmeldeverfahren. Inhalt. 1. Einleitung und Hinweise

Anmeldeverfahren. Inhalt. 1. Einleitung und Hinweise Anmeldeverfahren Inhalt In dieser Anleitung finden Sie eine detaillierte Beschreibung der verschiedenen Anmeldeverfahren bzw. Zugangsberechtigungen anhand der verschiedenen Szenarien, die für Sie in der

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Registrierung am Elterninformationssysytem: ClaXss Infoline

Registrierung am Elterninformationssysytem: ClaXss Infoline elektronisches ElternInformationsSystem (EIS) Klicken Sie auf das Logo oder geben Sie in Ihrem Browser folgende Adresse ein: https://kommunalersprien.schule-eltern.info/infoline/claxss Diese Anleitung

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Alle gehören dazu. Vorwort

Alle gehören dazu. Vorwort Alle gehören dazu Alle sollen zusammen Sport machen können. In diesem Text steht: Wie wir dafür sorgen wollen. Wir sind: Der Deutsche Olympische Sport-Bund und die Deutsche Sport-Jugend. Zu uns gehören

Mehr

Dämon-Prozesse ( deamon )

Dämon-Prozesse ( deamon ) Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout

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

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

Outlook-Daten komplett sichern

Outlook-Daten komplett sichern Outlook-Daten komplett sichern Komplettsicherung beinhaltet alle Daten wie auch Kontakte und Kalender eines Benutzers. Zu diesem Zweck öffnen wir OUTLOOK und wählen Datei -> Optionen und weiter geht es

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

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein Einrichtung von orgamax-mobil Um die App orgamax Heute auf Ihrem Smartphone nutzen zu können, ist eine einmalige Einrichtung auf Ihrem orgamax Rechner (bei Einzelplatz) oder Ihrem orgamax Server (Mehrplatz)

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

Mehr

Internet Security 2009W Protokoll Firewall

Internet Security 2009W Protokoll Firewall Internet Security 2009W Protokoll Firewall Manuel Mausz, Matr. Nr. 0728348 manuel-tu@mausz.at Aldin Rizvanovic, Matr. Nr. 0756024 e0756024@student.tuwien.ac.at Wien, am 25. November 2009 1 Inhaltsverzeichnis

Mehr

GeoPilot (Android) die App

GeoPilot (Android) die App GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen

Mehr

Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll. Aufgabe 1 Transferfragen (Lösungsvorschlag)

Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll. Aufgabe 1 Transferfragen (Lösungsvorschlag) Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll Lösungsvorschläge der Klausur zu Einführung in die Informatik II Aufgabe 1 Transferfragen (Lösungsvorschlag)

Mehr

TeamSpeak3 Einrichten

TeamSpeak3 Einrichten TeamSpeak3 Einrichten Version 1.0.3 24. April 2012 StreamPlus UG Es ist untersagt dieses Dokument ohne eine schriftliche Genehmigung der StreamPlus UG vollständig oder auszugsweise zu reproduzieren, vervielfältigen

Mehr

Wirtschaftsinformatik I

Wirtschaftsinformatik I Wirtschaftsinformatik I - Tutorium 6/ 7 (April 2010) Zusatzinformationen - Lösungsvorschläge Wirtschaftsinformatik I Tutorium Jochen Daum (4.Semester BWL) Universität Mannheim Rechtshinweis: Diese Präsentation

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

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

FlowFact Alle Versionen

FlowFact Alle Versionen Training FlowFact Alle Versionen Stand: 29.09.2005 Rechnung schreiben Einführung Wie Sie inzwischen wissen, können die unterschiedlichsten Daten über verknüpfte Fenster miteinander verbunden werden. Für

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

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

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb CashPro basiert auf Accesstechnologie 2003 und ist auch unter den aktuellen Accessversionen 2007 bis 2013 einsetzbar und Mehrbenutzerfähig.

Mehr

Moni KielNET-Mailbox

Moni KielNET-Mailbox Bedienungsanleitung Moni -Mailbox Die geht für Sie ran! Wann Sie wollen, wo immer Sie sind! im Festnetz Herzlichen Glückwunsch zu Moni Ihrer persönlichen -Mailbox! Wir haben Ihre persönliche -Mailbox eingerichtet.

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

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

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Das können wir Ihnen versprechen: An der neuen Taskleiste in Windows 7 werden Sie sehr viel Freude haben. Denn diese sorgt

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Zugriff auf Daten der Wago 750-841 über eine Webseite

Zugriff auf Daten der Wago 750-841 über eine Webseite Zugriff auf Daten der Wago 750-841 über eine Webseite Inhaltsverzeichnis Einleitung... 3 Auslesen von Variablen... 4 Programm auf der SPS... 4 XML-Datei auf der SPS... 4 PHP-Script zum Auslesen der XML-Datei...

Mehr

Leitfaden zur Installation von Bitbyters.WinShutdown

Leitfaden zur Installation von Bitbyters.WinShutdown Leitfaden zur Installation von Bitbyters.WinShutdown für Windows 32 Bit 98/NT/2000/XP/2003/2008 Der BitByters.WinShutDown ist ein Tool mit dem Sie Programme beim Herunterfahren Ihres Systems ausführen

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Verwendung des IDS Backup Systems unter Windows 2000

Verwendung des IDS Backup Systems unter Windows 2000 Verwendung des IDS Backup Systems unter Windows 2000 1. Download der Software Netbackup2000 Unter der Adresse http://www.ids-mannheim.de/zdv/lokal/dienste/backup finden Sie die Software Netbackup2000.

Mehr

Local Control Network Technische Dokumentation

Local Control Network Technische Dokumentation Steuerung von Hifi-Anlagen mit der LCN-GVS Häufig wird der Wunsch geäußert, eine Hi-Fi-Anlage in die Steuerung der LCN-GVS einzubinden. Auch das ist realisierbar. Für die hier gezeigte Lösung müssen wenige

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Handbuch Groupware - Mailserver

Handbuch Groupware - Mailserver Handbuch Inhaltsverzeichnis 1. Einführung...3 2. Ordnerliste...3 2.1 E-Mail...3 2.2 Kalender...3 2.3 Kontakte...3 2.4 Dokumente...3 2.5 Aufgaben...3 2.6 Notizen...3 2.7 Gelöschte Objekte...3 3. Menüleiste...4

Mehr

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E S TAND N OVEMBE R 2012 HANDBUCH T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E Herausgeber Referat Informationstechnologie in der Landeskirche und im Oberkirchenrat Evangelischer Oberkirchenrat

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

3 ORDNER UND DATEIEN. 3.1 Ordner

3 ORDNER UND DATEIEN. 3.1 Ordner Ordner und Dateien PC-EINSTEIGER 3 ORDNER UND DATEIEN Themen in diesem Kapitel: Erstellung von Ordnern bzw Dateien Umbenennen von Datei- und Ordnernamen Speicherung von Daten 3.1 Ordner Ordner sind wie

Mehr

Benutzeranleitung (nicht für versierte Benutzer) SSH Secure Shell

Benutzeranleitung (nicht für versierte Benutzer) SSH Secure Shell Benutzeranleitung (nicht für versierte Benutzer) SSH Secure Shell Warum Secure Shell? Die Benutzung von einigen FTP-Clients oder z.b. Telnet im ungesicherten Netzwerk ist verhältnismäßig riskant, da Daten

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

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren Ziel der Anleitung Sie möchten ein modernes Firewallprogramm für Ihren Computer installieren, um gegen

Mehr

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern 1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

RAID Software. 1. Beginn

RAID Software. 1. Beginn 1. Beginn RAID Software Die RAID Software ist ein auf Windows basierendes Programm mit einer grafischen Benutzerschnittstelle und bietet Ihnen ein leicht zu bedienendes Werkzeug zum Konfigurieren und Verwalten

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

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 182.711 Prüfung Betriebssysteme 8. November 2013 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Das Persönliche Budget in verständlicher Sprache

Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget mehr Selbstbestimmung, mehr Selbstständigkeit, mehr Selbstbewusstsein! Dieser Text soll den behinderten Menschen in Westfalen-Lippe,

Mehr

Inkrementelles Backup

Inkrementelles Backup Inkrementelles Backup Im Gegensatz zu einer kompletten Sicherung aller Daten werden bei einer inkrementellen Sicherung immer nur die Dateien gesichert, die seit der letzten inkrementellen Sicherung neu

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