Präsenzübung 10. Konzepte und Methoden der Systemsoftware. Sommersemester vom bis
|
|
- Emma Stephanie Kappel
- vor 7 Jahren
- Abrufe
Transkript
1 Sommersemester 2010 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 10 vom bis Aufgabe 1: Kommunikation via Kanalobjekt Betrachten Sie ein System aus je einem Client und einem Server. Client und Server sind über ein Kanalobjekt miteinander verbunden. Der Server kommuniziere asynchron über das Kanalobjekt. Das Kanalobjekt, das Client und Server verbindet, habe folge Eigenschaften: Die Datenrate liegt bei 1000 Byte/s. Die Verzögerung beträgt 100 ms. Die Kapazität des Kanalobjektes ist unbeschränkt. 1. Der Client set direkt nacheinander zwei Aufträge an den Server. Zeichnen Sie die beiden Weg- Zeit-Diagramme für einen synchronen und einen asynchronen Clienten. Nehmen Sie an, dass die Bearbeitung der Aufträge serverseitig sehr lange dauert und immer nur ein Auftrag gleichzeitig bearbeitet werden kann. Beachten Sie, dass die Kommunikation der beiden Teilnehmer mit dem Kanalobjekt Zeit benötigt. 2. Die beiden Aufträge aus Teilaufgabe 1 seien nun jeweils 1000 Byte groß. Die Antworten des Servers seien 100 Byte groß. Die Bearbeitung eines Auftrages durch den Server benötige 2 Sekunden. Die benötigte Zeit für Kommunikation der Client- und Serverprozesse mit dem Kanalobjekt sei vernachlässigbar. Berechnen Sie sowohl für den synchronen als auch für den asynchronen Clienten, wie lange es dauert, bis der Client die Antwort auf seinen zweiten Auftrag erhalten hat. 3. Da der Server asynchron kommuniziert, kann es passieren, dass währ der Abarbeitung eines Auftrages ein weiterer Auftrag eintrifft (bei synchronem Clienten von einem anderen Clienten, bei asynchronem Clienten möglicherweise von dem selben Clienten). Welche Möglichkeiten hat ein Server, mit solchen Anfragen umzugehen? Gehen sie davon aus, dass der Server weiterhin nur eine Aufgabe zur selben Zeit bearbeiten kann, und dass die aktuell laufe Aufgabe beet werden muss, bevor eine neue Aufgabe begonnen werden kann. Musterlösung zu Aufgabe 1: Vorschlag Vorrechnen: Einen Punkt für Teilaufgaben 1 und 2, einen für die 3 (da muss man dann aber schon eine nette Erklärung und Diskussion der Vor- und Nachteile bringen). 1. Achtung: In diesen Diagrammen ist nicht deutlich, dass die Nachrichten eine Länge > 0 haben. Dies ist allerdings für den Kontext der Aufgabe (Unterschied synchron, asynchron) auch nicht ganz so wichtig. KMS Sommersemester 2010 Präsenzübung 10 1
2 Client Client-Tor Server-Tor Server Asynchron: Client Client-Tor Server-Tor Server Synchron: 2. Das Übertragen eines Auftrages an den Server dauert 1.1 Sekunden, das Übertragen einer Antwort dauert 0.2 Sekunden. Bei diesen Zeiten kommen auch tatsächlich die prinzipiellen Weg- Zeit-Diagramme aus Aufgabenteil 1 zustande. Da wir die Kommunikationszeit zwischen Tor und Prozess vernachlässigen, erhalten wir folge Zeiten: = 5.3 Sekunden (asynchron) 2 ( ) = 6.6 Sekunden (synchron) 3. Es gibt unter anderem (man kann sich gerne mehr ausdenken) folge Möglichkeiten: Der Serverprozess bearbeitet seinen aktuellen Auftrag zu Ende, set das Ergebnis und holt dann den neuen Auftrag vom Kanalobjekt. KMS Sommersemester 2010 Präsenzübung 10 2
3 Der Nachteil ist, dass das Übergeben des Ergebnisses an das Kanalobjekt und das Holen des neuen Auftrages vom Kanal einige Zeit brauchen. Der Server ist währ dieser Zeit blockiert, die Zeit ist also für die Auftragsbearbeitung verloren. Der Vorteil liegt in der einfachen Implementierung (bei einfachen, eher schwach ausgelasteten Servern und ad-hoc Implementationen vielleicht nützlich). Der Server unterbricht kurz seinen aktuellen Auftrag, holt den neuen Auftrag und fügt ihn in eine (Server-interne) Queue ein. Der Nachteil ist hier der selbe wie bei der ersten Möglichkeit, nur wird die Zeit währ des Holens eines Auftrages währ der Abarbeitung eines anderen Auftrages aufgebracht. Dies erhöht die Antwortzeit für den anderen Auftrag, was unerwünscht sein kann. Der Vorteil ist hier, dass der interne Puffer des Kanalobjektes eventuell kleiner sein kann (im Idealfall muss dieser Puffer nur einen Auftrag enthalten können). Man könnte eine der ersten beiden Möglichkeiten nutzen, aber Nebenläufigkeit einführen. Ein separater Thread (oder Hilfsprozess) holt die Aufträge vom Kanal und fügt sie in eine Queue ein. Vorteil: Schnell, wenn der Thread wirklich parallel läuft oder das Holen der Daten von einem DMA-Gerät erledigt wird. Nachteil: Kein Zeitgewinn, wenn der Zugriff auf den Kanal nicht per DMA möglich ist und man nur einen Prozessor zur Verfügung hat. Hat man mehrere Prozessoren und kein DMA zur Verfügung, so braucht man auch mehrere davon, geht also nicht sonderlich sparsam mit den Ressourcen um. Der neue Auftrag ist in einem Puffer des Kanalobjektes gespeichert (asynchron!). Dieser Puffer liegt üblicherweise irgwo im Arbeitsspeicher der Teilnehmer. Man kann also einfach einen zweiten Puffer (der selben Größe) nehmen und diesen gegen den aktuellen Puffer des Kanalobjektes austauschen. Diese Operation besteht im Wesentlichen aus dem Tausch zweier Pointer (falls nötig synchronisiert), ist also sehr schnell durchführbar. Damit ist dann folges Vorgehen möglich: Der Server unterbricht kurz die Bearbeitung des aktuellen Auftrages, tauscht den Puffer für eingehe Nachrichten aus, und arbeitet weiter. Das selbe Verfahren kann für das Sen der Antwort genutzt werden. Natürlich kann dieses Verfahren für mehr als zwei Puffer erweitert werden. Der Nachteil ist zum Einen der erhöhte Speicherverbrauch, zum Anderen, dass in diesem Verfahren die Abstraktion Kanalobjekt durchbrochen wird. Man nimmt ein Kanalobjekt nicht mehr einfach als Blackbox an, sondern muss einiges über seine Interna voraussetzen: Die Puffer des Kanals müssen lokal vorhanden sein und müssen austauschbar sein. Ausserdem muss dem Server bekannt sein, auf welche Art die Puffer organisiert sind, und das Sen und Empfangen des Kanals darf keine Rechenzeit des Servers verlangen. Dies alles hat zur Folge, dass ein Tausch des Kanalobjektes oder Änderungen am Kanalobjekt nicht mehr so einfach durchzuführen sind. Der Vorteil ist offensichtlich die erhöhte Effizienz. Der Server kann potentiell fast ohne Pause arbeiten. Ausserdem muss (wie bei der vorherigen Möglichkeit) der Puffer des Kanalobjektes nicht allzugroß sein. Eine Anwung dieses Verfahrens findet sich in Grafikkarten (eine Umgebung, in der Effizienz das Maß aller Dinge ist). Es gibt meist zwei Puffer: Den frontbuffer und den backbuffer. Beide enthalten Farbinformationen für den Monitor ( Pixel (x,y) hat Farbe z ). Der frontbuffer ist derjenige, der gerade vom Monitor angezeigt wird, in den backbuffer wird das Bild für denn nächsten Frame geschrieben. Sobald der nächste Frame an der Reihe ist, werden front- und backbuffer getauscht. Diese Aufgabe wurde benutzt: Neu (angelehnt an diverse Aufgaben von früher) Aufgabe 2: RPC KMS Sommersemester 2010 Präsenzübung 10 3
4 Betrachten Sie eine Funktion mit folger Signatur: int f(int x, int y). Diese soll als entfernte Prozedur aufgerufen werden. 1. Schreiben Sie Client- und Serverstub für den entfernten Aufruf (in Pseudocode). Gehen Sie dabei davon aus, dass die Parameter by value übergeben werden und dass bereits ein Kanalobjekt K mit Operationen s und receive für die Kommunikation bereit steht. 2. Nehmen Sie nun an, dass die Parameterübergabe (für die lokale Funktion) by reference passiert, die Signatur (in C) ist also jetzt int f(int* p_x, int* p_y). Modifizieren Sie ihre Stubs so, dass die Parameterübergabe an den Server by-copy/restore 1 passiert, um Call-By-Reference zu simulieren. 3. Finden Sie den Fehler in der Implementation aus Teilaufgabe 2 und beheben Sie ihn. 4. Welche Fehler (in der Kommunikation) können bei dem Aufruf einer entfernten Prozedur auftreten? Wie können diese Fehler behandelt werden? Beschreiben Sie kurz die Modifikationen, die an Ihren Stubs zur Fehlerbehandlung eingeführt werden könnten. Musterlösung zu Aufgabe 2: 1. Der Client schickt einfach die Parameter x und y an den Server, dieser ruft f mit den Parametern auf und schickt das Ergebnis zurück. // Client stub: int f(int x, int y) s(k, x); s(k, y); int result = receive(k); return result; // Server stub: void stub() while (true) int y = receive(k); s(k, f(x, y)); while 2. Hier müssen neben dem Ergebnis noch die lokalen Kopien der Parameter (die aus dem Serverstub) an den Clienten zurückgeschickt werden, denn die Parameter könnten sich verändert haben. // Client stub: int f(int* p_x, int* p_y) s(k, *p_x); s(k, *p_y); int result = receive(k); *p_x = receive(k); 1 in Grundlagen der Programmiersprachen auch Call-by-value-and-result genannt: de/lehre/material/gps/folien/folie606.html KMS Sommersemester 2010 Präsenzübung 10 4
5 *p_y = receive(k); return result; // Server stub: void stub() while (true) int y = receive(k); int result = f(&x, &y); s(k, result); s(k, x); s(k, y); while 3. Bei einem Aufruf wie f(a, a) weicht das Verhalten der entfernt aufgerufenen Prozedur eventuell von dem Verhalten einer lokalen aufgerufenen Prozedur ab. Der Grund ist, dass bei der RPC- Variante die Variable a auf der Server-Seite zu zwei Variablen wird. Ein einfaches Beispiel für das Auftreten von Problemen in dieser Situation liefert folge Funktion f: int f(int a, int b) a += 1; b += 2; return a + b; Eine einfache Korrekturmöglichkeit ist es, die beiden Pointer p_x und p_y im Clientstub auf Gleichheit zu testen und bei Gleichheit nur einen der beiden Werte (die ja gleich sind) zu übertragen, zusammen mit der Information, dass die beiden Parameter die selbe Variable sind. Der Server übergibt dann nur eine lokale Variable an die Funktion und schickt nach dem Aufruf nur den Wert dieser Variablen zurück. Dies könnte in einer Implementation so aussehen: // Client stub: int f(int* p_x, int* p_y) int result; if (p_x == p_y) // Dem Server mitteilen, dass nur ein // Parameter existiert: s(k, true); // Nur einen Parameter sen: s(k, *p_x); result = receive(k); // Nur einen der beiden Werte ueberschreiben: *p_x = receive(k); else // Dem Server mitteilen, dass nur ein // Parameter existiert: KMS Sommersemester 2010 Präsenzübung 10 5
6 s(k, false); // Ab hier wie vorher bei Call-by-Copy/Restore s(k, *p_x); s(k, *p_y); result = receive(k); *p_x = receive(k); *p_y = receive(k); if return result; // Server stub: void stub() while (true) bool oneparameter = receive(k); if (oneparameter) // Nur ein Parameter wird vom Client geschickt: int result = f(&x, &x); s(k, result); // Nur einen Parameter zuruecksen: s(k, x); else // Alles wie vorher bei Call-by-Copy/Restore int y = receive(k); int result = f(&x, &y); s(k, result); s(k, x); s(k, y); if while Solche Implementierungen sind allerdings bei drei oder mehr Parametern schon fast nicht mehr mit der Hand zu erledigen, darum lässt man sich die Stubs von einem Codegenerator aus den Prozedursignaturen erzeugen. 4. Fehler können im Wesentlichen sein: Eine der Auftragsnachrichten geht verloren. Der Client wird irgwann durch einen Timeout merken, dass die Nachricht wahrscheinlich nicht angekommen ist, und schickt diese einfach noch einmal. Eine der Antwortnachrichten geht verloren. Auch diese Situation wird dem Clienten durch einen Timeout auffallen, er ruft die Funktion einfach noch einmal auf. Der Server wird dann - je nach gewünschter Semantik - die Funktion noch einmal ausführen, oder aber das Ergebnis des ersten Auftrages noch einmal schicken. KMS Sommersemester 2010 Präsenzübung 10 6
7 Diese beiden Möglichkeiten sind nicht durch den Clienten unterscheidbar, der sieht jeweils nur, dass der Timer abgelaufen ist. Die Reaktion des Clienten muss also in beiden Fällen die gleiche sein. In den obigen Implementationen können noch mehr Dinge schief gehen (z.b. könnte nur der Parameter x verloren gehen). Dies ist aber der naiven Implementation zuzuschreiben. Um die Timeouts in Code zu realisieren, kann man entweder auf Funktionalitäten der verweten Bibliothek für Kanalobjekte zurückgreifen, oder man lässt sich z.b. vom Betriebssystem per Interrupt nach einer gewissen Zeit Bescheid sagen. In beiden Fällen muss man wahrscheinlich eine Callback-Funktion (vielleicht verpackt in ein Objekt als Listener) an der passen Stelle registrieren. Diese Funktion ist dann für die Fehlerbehandlung zuständig. Diese Aufgabe wurde benutzt: Neu (angelehnt an HÜ 05 aus dem SoSe 2007, Aufgabe 4) KMS Sommersemester 2010 Präsenzübung 10 7
Aufgabe 1: Interprozesskommunikation In der Vorlesung wurden zentrale Aspekte von grundlegenden Kommunikationsmustern vorgestellt.
Sommersemester 211 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 11 vom 2.6.211 bis 24.6.211 Aufgabe 1: Interprozesskommunikation In der Vorlesung
MehrKlassen mit Instanzmethoden
Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07
MehrBetriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion
Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung
MehrStädtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode
Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode folgt im Anschluss. Beispielcode Es gibt eine Klasse Benutzerverwaltung, welche eine Liste mit Benutzern
Mehr(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?
SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 2 2014-04-28 bis 2014-05-02 Aufgabe 1: Unterbrechungen (a) Wie unterscheiden sich synchrone
Mehr4.4 Imperative Algorithmen Prozeduren
4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):
MehrInteraktionsdiagramme in UML
Interaktionsdiagramme in UML Interaktionsdiagramm ist ein Oberbegriff für eine Reihe von Diagrammen, die das Verhalten eines objektorientierten Systems durch Objektinteraktionen beschreiben Ein Sequenzdiagramm
MehrJavaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
MehrPraktikum Verteilte Anwendungen
Technische Informatik (Info II) -Sommersemester 2006 - Folie 1 / 27 0 Gliederung 1.) Kurze Wiederholung/ Einleitung 2.) RPC/ RMI 3.) Praktisches Beispiel 4.) Aufgabenblatt Folie 2 / 27 Wiederholung/ Einleitung
MehrD.1 Organisatorisches
D Überblick über die 3. Übung D Überblick über die 3. Übung D.1 Organisatorisches D.1 Organisatorisches RPC und ORB Präsentation der Übungsaufgaben 1 und 2 Aufrufsemantiken Hinweise Aufgabe 2 Live in der
MehrZusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks
Zusammenfassung für CS-Prüfung 3 Seite 1 CS-Zusammenfassung für Prüfung 3 vom 24. 6. 2002 Deadlock Im Beispiel gibt es 3 Deadlocks Unterschied zwischen Blockieren, Verklemmen und Verhungenrn= -> Band 1
MehrHandbuch ECDL 2003 Professional Modul 3: Kommunikation Aufgaben annehmen und zuweisen
Handbuch ECDL 2003 Professional Modul 3: Kommunikation Aufgaben annehmen und zuweisen Dateiname: ecdl_p3_03_02_documentation.doc Speicherdatum: 08.12.2004 ECDL 2003 Professional Modul 3 Kommunikation
MehrInformatik II Übung 05. Benjamin Hepp 3 April 2017
Informatik II Übung 05 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 April 2017 Java package Hierarchie import.. nur noetig um Klassen aus anderen Packeten zu importieren Es kann auch immer der vollstaendige
Mehr2016-03-04. Version 6.1 Personalization Guide
2016-03-04 Version 6.1 Personalization Guide Inhalt 1 Einführung in die Personalisierung... 1 2 Kunden Tracking... 5 2.1 Neues Kunden Tracking erstellen... 5 2.2 Kunden Tracking entfernen... 6 2.3 Kunden
MehrInduktion nach der Länge n von x
Allgemeiner: app (rev x) y = rev1 x y füralle Listenx, y. Beweis: n = 0 : Induktion nach der Länge n von x Dann gilt: x = []. Wirschließen: app (rev x) y = app (rev []) y = app (match [] with [] -> []...)
Mehr(Ausnahmebehandlung)
16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2
MehrLaborskript Verteilte Systeme
Laborskript Verteilte Systeme Nebenläufigkeit in Java Prof. Dr. Oliver Haase 1 Threads Java bietet zwei verschiedene Arten an, Threads zu erzeugen und zu starten: Entweder durch Erweitern der Klasse Thread,
MehrRemote Method Invocation
Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf
MehrErstellen eines Referates in Word
Seite 1 von 9 Erstellen eines Referates in Word Von Antje Borchers Oftmals bekommt man ein Thema zugeteilt über das man ein Referat halten soll. Aber, wie macht man das eigentlich? 1.) Informationen sammeln
MehrVerkettete Listen. Implementierung von einfach verketteten Listen. Implementierung von doppelt verketteten Listen
Verkettete Listen Verwendung von Listen in Java Das Prinzip des Iterators Implementierung von einfach verketteten Listen Implementierung von doppelt verketteten Listen Informatik II: Objektorientierte
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrEreignisse (Events) Asynchrones Versenden von Informationen Sender (Herausgeber) Empfänger (Abonnent) Dr. Beatrice Amrhein
Ereignisse (Events) Asynchrones Versenden von Informationen Sender (Herausgeber) Empfänger (Abonnent) Dr. Beatrice Amrhein Überblick Definition eines Ereignisses Sender und Empfänger Einfache Ereignisse
MehrAnwendung (2. Versuch:-) Entkopplung der Locks
Gut gemeint aber leider fehlerhaft... Jeder Producer benötigt zwei Locks gleichzeitig, um zu produzieren: 1. dasjenige für den Puffer; 2. dasjenige für einen Semaphor. Musser fürden Semaphor einwait()
MehrObjektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte
Mehr(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl
Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112
Mehr6. Funktionen, Parameterübergabe
6. Funktionen, Parameterübergabe GPS-6-1 Themen dieses Kapitels: Begriffe zu Funktionen und Aufrufen Parameterübergabearten call-by-value, call-by-reference, call-by-value-and-result in verschiedenen Sprachen
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
MehrÜbung 2: Motivation: Willentliche Bewegung im Dienste von Interesse und Neugier
Übung 2: Motivation: Willentliche Bewegung im Dienste von Interesse und Neugier Erläuterung zur motivationalen Bewegung: wie wir gerade in der 1. Übung schon sehen konnten: Wenn wir alle einen Raum betrachten,
MehrThreads Einführung. Zustände von Threads
Threads Einführung Parallelität : Zerlegung von Problemstellungen in Teilaufgaben, die parallelel ausgeführt werden können (einfachere Strukturen, eventuell schneller, Voraussetzung für Mehrprozessorarchitekturen)
MehrAufgabenblatt 6 Musterlösung
Prof. Dr. rer. nat. Roland Wismüller Aufgabenblatt 6 Musterlösung Vorlesung Betriebssysteme I Wintersemester 2018/19 Aufgabe 1: Implementierung von Threads (Bearbeitung zu Hause) Der größte Vorteil ist
Mehr... Client 1. Request. Reply. Client 2. Server. Client n. Günther Bengel Grundkurs Verteilte Systeme 3. Auflage Vieweg Verlag 2004 ISBN 3-528-25738-5
1 2... n Abbildung 2-1: s und C + S Synchrone Kommunikation Warte auf Zurückgestellte synchrone Kommunikation Arbeite weiter Überprüfe periodisch das Vorliegen des Asynchrone Kommunikation Registriere
Mehr1) Gegeben Sei der auf der rechten Seite beschriebene Prozess mit folgenden globalen Deklarationen. const int N := 4; chan c[n]; int wert := 0;
1) Gegeben Sei der auf der rechten Seite beschriebene Prozess mit folgenden globalen Deklarationen. const int N := 4; chan c[n]; int wert := 0; Weiterhin hat der Prozess folgende lokale Deklaration. void
MehrRed Barklay ist übergewichtig [21,26]. Sein Körpergewicht beträgt 90 kg und Ihre Körpergröße beträgt 1.75 m. Er ist 38 Jahre alt.
Seite 1 Idee, Zweck, Systembeschreibung: Für den Sportunterricht brauchen Personen einen Body-Mass-Index- Rechner (BMIRechner). Hierfür soll es möglich sein, auf einer Benutzeroberfläche (Hauptfenster)
MehrKeptSecret User Guide
User Guide Mit können Sie Ihre Bilder und Notizen verschlüsselt und damit privat speichern. verwendet die im iphone und ipod Touch eingebaute 256-Bit starke Verschlüsselung nach dem Advances Encryption
MehrLiteratur. VA SS Teil 5/Messages
Literatur [5-1] https://en.wikipedia.org/wiki/message-oriented_middleware [5-2] https://en.wikipedia.org/wiki/advanced_message_queuing_protocol http://www.amqp.org/specification/0-10/amqp-org-download
MehrInformatik B. Vorlesung 17 Netzwerkprogrammierung. Dr. Ralf Kunze
Vorlesung 17 Netzwerkprogrammierung 1 Rückblick URL-Objekt Socket Verbindung zu einem Server aufbauen Webserver aus Clientsicht 2 Serverimplementation Server bauen keine eigene Verbindung auf, sondern
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrObjektorientierte 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
MehrDas Feld Script können Sie leer lassen. Hier könnten weitere Scripts eingebunden werden, welche Sie z.b. selbst entwickelt haben.
Seite erstellen und bearbeiten Neue Seite erstellen Klicken Sie auf Administrator Neue Seite um eine Seite zu erstellen. Geben Sie der Seite unter Seitenname den Namen welcher in der Navigation erscheinen
MehrA B A C U S KONFIGURATION MOBILE ID. Juni 2015 / om. Version 1.4
A B A C U S KONFIGURATION MOBILE ID Juni 2015 / om Version 1.4 Diese Unterlagen sind urheberrechtlich geschützt. Insbesondere das Recht, die Unterlagen mittels irgendeines Mediums (grafisch, technisch,
MehrJava RMI Remote Method Invocation
Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrVerteilte Systeme WS 06/07 Ausarbeitung der Fragen aus dem Buch Von Clemens Hammerl und Thorsten Krenek
Verteilte Systeme WS 06/07 Ausarbeitung der Fragen aus dem Buch Von Clemens Hammerl und Thorsten Krenek xyz = nicht sicher Kapitel 1 Einleitung 1.0 Was sind verteilte Systeme Ein verteiltes System ist
MehrSoftwareentwicklung I
FAKULTÄT FÜR TECHNIK STUDIENGÄNGE ELEKTROTECHNIK / INFORMATIONSTECHNIK (ET/IT) TECHNISCHE INFORMATIK (TI) MECHATRONIK (MEC) MEDIZINTECHNIK (MT) Softwareentwicklung I Arbeiten mit Visual Studio 2010 Projekt
Mehr1 pulsierender Speicher
1 pulsierender Speicher 1.1 Aufgabentyp Gegeben sei das folgende C-Programm: [...] (a) Geben Sie den Gültigkeitsbereich jedes Objektes des Programms an. (b) Stellen Sie die Rechnung des Programms für die
MehrLizenzmanagement im GRID Ein Ergebnis aus BEinGRID
Lizenzmanagement im GRID Ein Ergebnis aus BEinGRID D-Grid Lizenzworkshop 04.11.08 Yona Raekow BEinGRID Stand der Dinge Kommerzielle Anwendungen von ISVs werden in der Industrie üblicherweise mit dazugehörigen
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrObjektorientierung. Marc Satkowski 20. November C# Kurs
Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung
Mehr2.2.1 Algebraische Spezifikation (Fortsetzung)
2.2.1 Algebraische Spezifikation (Fortsetzung) Algebraische Spezifikation: Mengen Types Set, Bool, t Signature > creates :: Eq t => Set t > isempty :: Eq t => Set t -> Bool > insert :: Eq t => t -> Set
MehrE.1 Object Request Brokers
E Überblick über die 4. Übung E Überblick über die 4. Übung 1 Komponenten eines ORBs Lösungsskizze Aufgabe 2 RPC und ORB Aufrufsemantiken Hinweise Aufgabe 3 Kommunikationsschicht: tauscht Daten zwischen
MehrKlassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt
Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrIm Vorlesungsskript (5) auf Seite 7 haben wir folgendes Bild:
Übungsblatt 4 Aufgabe 1 Sie möchten ein IEEE 802.11-Netzwerk (WLAN) mit einem IEEE 802.3-Netzwerk (Ethernet) verbinden. 1a) Auf welcher Schicht würden Sie ein Zwischensystem zur Übersetzung ansiedeln?
MehrJava Concurrency Utilities
Java Concurrency Utilities Java unterstützt seit Java 1.0 Multithreading Java unterstützt das Monitorkonzept mittels der Schlüsselworte synchronized und volatile sowie den java.lang.object Methoden wait(),
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrMethoden (fortgeschritten) in C# - 1
Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich
MehrVerteilte Systeme. Nebenläufigkeit. Prof. Dr. Oliver Haase
Verteilte Systeme Nebenläufigkeit Prof. Dr. Oliver Haase 1 Arten der Nebenläufigkeit 1-Prozessor(kern)-System quasiparallele Ausführung erhöht Interaktivität durch Umschalten zwischen Threads kann Parallelitätsgrad
MehrÜbungen zu Rechnerkommunikation
Übungen zu echnerommuniation Sommersemester 009 Übung 5 Jürgen Ecert, Myola Protseno PD Dr.-Ing. Falo Dressler Friedrich-Alexander Universität Erlangen-Nürnberg Informati 7 (echnernetze und Kommuniationssysteme)
MehrClickSoftware Mobilitätslösungen bieten mehr als nur Transparenz
ClickSoftware Mobilitätslösungen bieten mehr als nur Transparenz Einführung Die Nutzung einer Dispositionslösung zur Optimierung des Workforce-Managements bringt viele Vorteile mit sich. Für die meisten
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
Mehr7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.
7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.html) bietet leider nur begrenzte Verteilungsabstraktion Unterstützung
MehrC++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
MehrSeminar: Multi-Core Architectures and Programming
Seminar: Multi-Core Architectures and Programming Parallelisierung des Viola-Jones Algorithmus auf Tilera Hardware-Software-Co-Design Universität Erlangen-Nürnberg 1 Übersicht Einleitung Erste Versuche
Mehrpublic class Test extends MiniJava { public static void main (String [] args) { write(args[0]+args[1]); } } // end of class Test
Manche Funktionen, deren Ergebnistyp void ist, geben gar keine Werte zurück im Beispiel: write() und main(). Diese Funktionen heißen Prozeduren. Das Hauptprogramm hat immer als Parameter ein Feld args
MehrIn dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es.
In dieser Aufgabe geht es darum, das einfache Meteor-Spiel zu verstehen und anzupassen. Lade als erstes das Spiel sample12 und spiele es. Im Spiel fällt ein Meteor vom oben zum unteren Rand. Das Raumschiff
MehrÜbung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012
Übung zu Grundlagen der Betriebssysteme 10. Übung 18.12.2012 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)
MehrBeispiele für verschiedene Zugriffe auf Modbus Register (Konfiguration über ABC Config Tool)
Applikationsbeispiel Beispiele für verschiedene Zugriffe auf Modbus Register (Konfiguration über ABC Config Tool) Haftungsausschluß Die Schaltungen in diesem Dokument werden zu Amateurzwecken und ohne
MehrPräzedenz von Operatoren
Präzedenz von Operatoren SWE-30 Die Präzedenz von Operatoren bestimmt die Struktur von Ausdrücken. Ein Operator höherer Präzedenz bindet die Operanden stärker als ein Operator geringerer Präzedenz. Mit
MehrViewpoint. Webmail-Oberfläche. Kontakt: universität bonn Hochschulrechenzentrum Wegelerstr. 6, 53115 Bonn Tel.: 0228/73-3127 www.hrz.uni-bonn.
Viewpoint Webmail-Oberfläche Kontakt: universität bonn Hochschulrechenzentrum Wegelerstr. 6, 53115 Bonn Tel.: 0228/73-3127 www.hrz.uni-bonn.de Viewpoint Viewpoint ist ein Layout der Webmail-Oberfläche,
Mehrhue06 December 2, 2016
hue06 December 2, 2016 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrVorlesung Objektorientierte Programmierung Klausur
Prof. Dr. Stefan Brass 16. Februar 2007 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Klausur Name: Matrikelnummer: Studiengang: Aufgabe
MehrC++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17
C++ Teil 9 Sven Groß 17. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 9 17. Juni 2016 1 / 17 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente Methoden / Elementfunktionen
MehrEffizienz von Algorithmen
Effizienz von Algorithmen Letzte Bearbeitung: Jan 211 Ein wichtiger Aspekt bei Algorithmen sind seine "Kosten". Wir wollen uns hier ausschließlich mit der Laufzeit des gewählten Algorithmus beschäftigen.
MehrLanguages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008
Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 27. Februar 2008 Institut für Softwaresysteme, TUHH Regeln: 1. Zu dieser Klausur sind keinerlei Hilfsmittel zugelassen.
Mehr6 Speicherorganisation
6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrSerielle Kommunikation - Kodierung
Serielle Kommunikation - Kodierung (1.) Erstellen Sie nachfolgende Klasse: Dabei haben die Methoden folgende Funktionen: exists(): Überprüft, ob eine serielle Schnittstelle existiert getproperties(): Liefert
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
MehrProgrammieren 2 12 Netzwerke
Programmieren 2 12 Netzwerke Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Motivation Datenaustausch zwischen Programmen Spielstand Chat
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrPraktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration
Praktikum Ingenieurinformatik Termin 4 Funktionen, numerische Integration 1 Praktikum Ingenieurinformatik Termin 4 1. Funktionen. Numerische Integration, Trapezverfahren 1.1. Funktionen Eine Funktion ist
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrEinführung in die Programmierung II. 5. Zeiger
Einführung in die Programmierung II 5. Zeiger Thomas Huckle, Stefan Zimmer 16. 5. 2007-1- Bezüge als Objekte Bisher kennen wir als Bezüge (Lvalues) nur Variablennamen Jetzt kommt eine neue Sorte dazu,
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrInformatik II Übung, Woche 14
Giuseppe Accaputo 7. April, 2016 Plan für heute 1. Java Klassen Beispiel: Implementation eines Vorlesungsverzeichnis (VVZ) 2. Informatik II (D-BAUG) Giuseppe Accaputo 2 Java Klassen Beispiel: Implementation
MehrSysteme 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
MehrProjekt Systementwicklung
Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit
MehrLösungshinweise/-vorschläge zur Altklausur Abschlussklausur 06/07
Lösungshinweise/-vorschläge zur Altklausur Abschlussklausur 06/07 Dies sind die Lösungsvorschläge zu einer Altklausur, deren Aufgabenstellung an die Inhalte der Vorlesung Grundlagen der Programmierung
MehrSynchrone Botschaften
Synchrone Botschaften PPJ-84 Prozesse kommunizieren und synchronisieren sich direkt miteinander, bzw. über Kanäle, die höchstens eine Botschaft aufnehmen. Operationen: send (b): receive (v): blockiert
MehrStudiengang Maschinenbau und Verfahrenstechnik 1. Vordiplom, Informatik I Musterlösung
Dr. K. Simon Studiengang Maschinenbau und Verfahrenstechnik 1. Vordiplom, Informatik I Musterlösung Frühling 2001 Freitag, 9. März 2001 2 Aufgabe 1: Fehlermeldungen, Typen & Konstanten, Kontrollstrukturen
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrFlüsse, Schnitte, bipartite Graphen
Flüsse, Schnitte, bipartite Graphen Vlad Popa 08.06.2010 Inhaltsverzeihnis 1. Flussnetzwerke und Flüsse 1.1 Ford- Fulkerson 1.2 Edmond Karp 1.3 Dinic 2. Schnitte 3. Maximaler Fluss bei minimalen Kosten
MehrGirls Day 2017 Programmierung
Girls Day 2017 Programmierung Anke Brocker Quality Management Würselen, 27. April 2017 www.lancom-systems.de Programmierung 27.04.2017 - Übersicht Programmieren mit der Arduino IDE Die Arduino IDE Der
MehrSequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )
Threads Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Ein thread bearbeitet eine sequentielle Teilaufgabe innerhalb eines Prozesses Mehrere nebenläufige
MehrDigitalisierung Logistischer Prozesse Integrierte Supply-Chain-Planung mit Oracle und SAP APO
Digitalisierung Logistischer Prozesse Integrierte Supply-Chain-Planung mit Oracle und SAP APO Jochen Rahm, PROMATIS software GmbH Darmstadt, 1 2015 PROMATIS software GmbH Oder wie verheirate ich König
MehrInstitut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
Mehr2D-Clipping. Kapitel Clipping von Linien. y max. y min x min. x max
Kapitel 5 2D-Clipping Ziel: Nur den Teil einer Szene darstellen, der innerhalb eines Fensters sichtbar ist. y max y min x min x max Abbildung 5.1: Clip-Fenster 5.1 Clipping von Linien Zu einer Menge von
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrInformatik II Übung 5
Informatik II Übung 5 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 27.03.2013
Mehr