Präsenzübung 10. Konzepte und Methoden der Systemsoftware. Sommersemester vom bis

Größe: px
Ab Seite anzeigen:

Download "Präsenzübung 10. Konzepte und Methoden der Systemsoftware. Sommersemester 2010. vom 21.06.2010 bis 25.06.2010"

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.

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

Mehr

Klassen mit Instanzmethoden

Klassen 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

Mehr

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Betriebssysteme. 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

Mehr

Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode

Stä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?

(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

Mehr

4.4 Imperative Algorithmen Prozeduren

4.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):

Mehr

Interaktionsdiagramme in UML

Interaktionsdiagramme 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

Mehr

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Javaprogrammierung 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

Mehr

Praktikum Verteilte Anwendungen

Praktikum 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

Mehr

D.1 Organisatorisches

D.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

Mehr

Zusammenfassung 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 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

Mehr

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Aufgaben annehmen und zuweisen

Handbuch 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

Mehr

Informatik II Übung 05. Benjamin Hepp 3 April 2017

Informatik 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

Mehr

2016-03-04. Version 6.1 Personalization Guide

2016-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

Mehr

Induktion nach der Länge n von x

Induktion 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)

(Ausnahmebehandlung) 16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2

Mehr

Laborskript Verteilte Systeme

Laborskript 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,

Mehr

Remote Method Invocation

Remote 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

Mehr

Erstellen eines Referates in Word

Erstellen 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

Mehr

Verkettete Listen. Implementierung von einfach verketteten Listen. Implementierung von doppelt verketteten Listen

Verkettete 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

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: 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,

Mehr

Ereignisse (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 Ereignisse (Events) Asynchrones Versenden von Informationen Sender (Herausgeber) Empfänger (Abonnent) Dr. Beatrice Amrhein Überblick Definition eines Ereignisses Sender und Empfänger Einfache Ereignisse

Mehr

Anwendung (2. Versuch:-) Entkopplung der Locks

Anwendung (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()

Mehr

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. 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

(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

Mehr

6. Funktionen, Parameterübergabe

6. 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

Mehr

pue13 January 28, 2017

pue13 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 Ü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,

Mehr

Threads Einführung. Zustände von Threads

Threads 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)

Mehr

Aufgabenblatt 6 Musterlösung

Aufgabenblatt 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

... 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

Mehr

1) 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; 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

Mehr

Red 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.

Red 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)

Mehr

KeptSecret User Guide

KeptSecret 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

Mehr

Literatur. VA SS Teil 5/Messages

Literatur. 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

Mehr

Informatik B. Vorlesung 17 Netzwerkprogrammierung. Dr. Ralf Kunze

Informatik 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) Ü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

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

Das Feld Script können Sie leer lassen. Hier könnten weitere Scripts eingebunden werden, welche Sie z.b. selbst entwickelt haben.

Das 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

Mehr

A 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 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,

Mehr

Java RMI Remote Method Invocation

Java 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

Ü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) Ü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

Mehr

Verteilte 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 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

Mehr

Softwareentwicklung I

Softwareentwicklung 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

Mehr

1 pulsierender Speicher

1 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

Mehr

Lizenzmanagement im GRID Ein Ergebnis aus BEinGRID

Lizenzmanagement 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

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie 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

Mehr

Objektorientierung. Marc Satkowski 20. November C# Kurs

Objektorientierung. 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

Mehr

2.2.1 Algebraische Spezifikation (Fortsetzung)

2.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

Mehr

E.1 Object Request Brokers

E.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

Mehr

Klassen 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. 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

Ü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

12 Abstrakte Klassen, finale Klassen und Interfaces

12 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,

Mehr

Im Vorlesungsskript (5) auf Seite 7 haben wir folgendes Bild:

Im 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?

Mehr

Java Concurrency Utilities

Java 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(),

Mehr

Implementieren von Klassen

Implementieren 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

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (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

Mehr

Verteilte Systeme. Nebenläufigkeit. Prof. Dr. Oliver Haase

Verteilte 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 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)

Mehr

ClickSoftware Mobilitätslösungen bieten mehr als nur Transparenz

ClickSoftware 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

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. 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

Mehr

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.

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. 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

Mehr

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

C++ 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

Mehr

Seminar: Multi-Core Architectures and Programming

Seminar: 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

Mehr

public class Test extends MiniJava { public static void main (String [] args) { write(args[0]+args[1]); } } // end of class Test

public 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

Mehr

In 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. 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 Ü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)

Mehr

Beispiele für verschiedene Zugriffe auf Modbus Register (Konfiguration über ABC Config Tool)

Beispiele 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

Mehr

Präzedenz von Operatoren

Prä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

Mehr

Viewpoint. 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. 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,

Mehr

hue06 December 2, 2016

hue06 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

Mehr

Vorlesung Objektorientierte Programmierung Klausur

Vorlesung 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

Mehr

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17

C++ 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

Mehr

Effizienz von Algorithmen

Effizienz 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.

Mehr

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008

Languages 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.

Mehr

6 Speicherorganisation

6 Speicherorganisation 6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen

Mehr

Serielle Kommunikation - Kodierung

Serielle 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

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin 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

Mehr

Programmieren 2 12 Netzwerke

Programmieren 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

Ü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

Mehr

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration

Praktikum 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

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung 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

Mehr

Einführung in die Programmierung II. 5. Zeiger

Einfü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,

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es 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

Mehr

Informatik II Übung, Woche 14

Informatik 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

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

Projekt Systementwicklung

Projekt Systementwicklung Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit

Mehr

Lösungshinweise/-vorschläge zur Altklausur Abschlussklausur 06/07

Lö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

Mehr

Synchrone Botschaften

Synchrone 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

Mehr

Studiengang Maschinenbau und Verfahrenstechnik 1. Vordiplom, Informatik I Musterlösung

Studiengang 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

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap 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

Mehr

Flüsse, Schnitte, bipartite Graphen

Flü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

Mehr

Girls Day 2017 Programmierung

Girls 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

Mehr

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Sequentielle 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

Mehr

Digitalisierung Logistischer Prozesse Integrierte Supply-Chain-Planung mit Oracle und SAP APO

Digitalisierung 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

Mehr

Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur

Institut 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

Mehr

2D-Clipping. Kapitel Clipping von Linien. y max. y min x min. x max

2D-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

Mehr

Heap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen

Heap 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

Mehr

Informatik II Übung 5

Informatik 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