Shared-Memory Programmiermodelle

Größe: px
Ab Seite anzeigen:

Download "Shared-Memory Programmiermodelle"

Transkript

1 Shared-Memory Programmiermodelle mehrere, unabhängige Programmsegmente greifen direkt auf gemeinsame Variablen ( shared variables ) zu Prozeßmodell gemäß fork/join Prinzip, z.b. in Unix: fork: Erzeugung eines neuen Kind-Prozesses (komplette Kopie des Elternprozesses zum Zeitpunkt der Erzeugung) wait: Elternprozess kann auf Terminierung der Kindprozesse warten Kommunikation der Prozesse über Signale, Sockets und ggf. auch über ein gemeinsames Speichersegment, das durch Systemfunktionen wie z.b. shmget, shmat, shmdet und shmop kontrolliert wird Threadmodell: mehrere unabhängige Kontrollflüsse in einem Programm bilden jeweils einen Thread Threads teilen sich einen globalen Adressraum Implementierung von Threads durch Bibliotheken, z.b. Pthreads (POSIX-Threads) für Unix 25 Shared-Memory Programmiermodelle (Forts.) Möglichkeiten der Implementierung von Threads: 1) auf Anwender-Ebene: alle Anwender-Threads werden auf einen Prozeß abgebildet; Vorteil: sehr schneller Thread-Wechsel ohne Beteiligung des Betriebssystems 2) auf Betriebssystem-Ebene: jeder Anwender-Thread entspricht einem Betriebssystem-Thread; Vorteile: Umschaltung auf anderen Thread bei E/A-Blockierung möglich; Zuordnung meherer Prozessoren für Threads; Nachteil: nicht jedes Betriebssystem unterstützt Threads! 3) auf Anwender- und Betriebssystem-Ebene: ein Scheduler der Thread- Bibliothek bildet Anwender-Threads auf Betriebssystem-Threads ab; Betriebsystem bildet letztere ggf. auf Prozessoren ab heutige Implementierungen i.a. gemäß Variante 3 Thread-Programmierung ist sehr aufwendig! Alternative: Verwendung von OpenMP zur automatischen Generierung von Threads 26 1

2 OpenMP seit 1998 Standard ( für die Shared-Memory Programmierung; (Prä-)Compiler für viele Systeme kommerziell oder frei (z.b. Omni von phase.etl.go.jp/omni) verfügbar Idee: automatische Generierung mehrerer Threads aus einem sequentiellem Programm, die gemäß dem fork/join Prinzip erzeugt und beeendet werden Schnittstellen für C, C++ und Fortran OpenMP basiert auf Compiler-Direktiven, die der Programmierer in das sequentielle Quell-Programm einfügt, um Berechnungen (vor allem in Schleifen) auf mehrere Threads aufzuteilen und die Threads zu synchronisieren Bibliotheksfunktionen und Umgebungsvariablen zur Kontrolle der Threads zur Laufzeit 27 Master-Thread führt Programm aus, bis durch folgende Direktive ein Team parallel arbeitender Threads generiert wird: #pragma omp parallel [options]... nach Beendigung des Anweisungblocks... werden alle Threads des Teams synchronisiert und nur der Master-Thread setzt die Abarbeitung des sequentiellen Programmes fort weitere Direktive innerhalb eines Anweisungsblocks dienen der Aufteilung der Arbeit auf die Threads und der Synchronisation Schachtelung von parallel-direktiven prinzipiell gestattet, oft (z.b. auf Sun) aber nicht implementiert Parallelitätsgrad, d.h. Anzahl der Threads, wird entweder durch die Umgebungsvariable OMP_NUM_THREADS oder durch Aufruf einer Bibliotheks-Funktion festgelegt 28 2

3 OpenMP: Beispiel 1 #include omp.h int i, myid, numthreads, npoints, mypoints float x[10000]; int main() printf("calculating x in parallel...\n"); #pragma omp parallel shared (x) \ private (myid, numthreads, mypoints) numthreads=omp_get_num_threads(); myid=omp_get_thread_num(); mypoints = 10000/numthreads; mystart = myid * mypoints; compute_subdomain(x, mystart, mypoints); for (i=0;i<10000;i++) printf("%f ", x[i]); 29 Folgende drei Direktive steuern die parallele Bearbeitung innerhalb eines parallelen Anweisungsblocks: Aufteilung der Iterationen einer Schleife auf mehrere Threads #pragma omp for [options] for (i = <lower_bound>; i <op> <upper_bound>; incr_expr)... mit op <,<=,>,>= und incr_expr nur auf + und basierend explizite Zuteilung von Aufgaben auf mehrere Threads: #pragma omp sections [options] #pragma omp section... #pragma omp section... Ausführung von Instruktionen durch einen beliebigen einzelnen Thread: #pragma omp single [options]

4 Auswahl einiger Optionen: uninitialisierte private Variablen: für die angegebenen bereits deklarierten Variablen wird auf dem Stack eines jeden Threads eine neue Kopie angelegt private (<variable>, <variable>,...) private Variablen werden mit Wert aus Master-Thread initialisiert: firstprivate (<variable>, <variable>,...) Master-Thread übernimmt den Wert der letzten Iteration bzw. Sektion: lastprivate (<variable>, <variable>,...) globale Variablen: Variablen wird explizit als global deklariert, d.h. jeder Thread greift hier (konkurrierend) auf die gleiche Speicherstelle zu shared (<variable>, <variable>,...) Deklaration aller (nicht privater) Variablen als global: default (shared) Verzicht auf Synchronisation am Ende der Bearbeitung eines Konstruktes: nowait 31 Scheduling-Optionen für for-schleifen: statische Aufteilung: block_size aufeinanderfolgende Iterationen je Thread; bei fehlender Angabe von block_size bearbeitet jeder Thread ungefähr 1/numthreads aller Iterationen schedule(static, block_size) dynamische Zuteilung: nach Abarbeitung der zugewiesenen Iterationen erhält jeder Thread dynamisch einen neuen Block mit jeweils block_size weiteren Iterationen; bei fehlender Angabe von block_size werden einzelne Iterationen zugeteilt schedule(dynamic, block_size) dynamische Zuteilung mit abnehmender Blockgröße: die ersten Threads bearbeiten 1/numthreads aller Iterationen; restliche Iterationen werden in Blöcken exponentiell abnehmender Größe (jedoch > block_size) verteilt schedule(guided, block_size) Festlegung der Scheduling-Parameter zur Laufzeit: schedule(runtime) 32 4

5 Reduktion in OpenMP: in einer for-, section- oder parallel-direktive ist als Option folgender Parameter möglich: reduction (op: variable) mit Reduktionsoperator op +,*,&,,&&, eine weder als private noch als shared deklarierte variable, die nach Beendigung der Direktiven das Reduktionsergebnis enthält Bemerkung: in OpenMP Version 1.0 ist Reduktion nur für skalare Variable definiert! existiert in einer parallelen Region nur eine einzelne for- oder section-direktive, so ist auch folgende Notation möglich: #pragma omp parallel for [options] #pragma omp parallel section [options] 33 OpenMP: Beispiel 2 parallele Berechnung des Skalarproduktes x zweier Vektoren a und b in OpenMP: #define DIM int main() float a[dim], b[dim], x; int i; x = 0; #pragma omp parallel for shared(a,b) lastprivate(i) \ reduction(x) schedule(dynamic,10) for (i=0; i < DIM; i++) a[i] = compute_a(i); b[i] = compute_b(i); x = x + a[i] * b[i]; printf("dim = %d, x = %f\n", i, x); 34 5

6 weitere OpenMP-Direktive zur Synchronisation von Threads: Barrieren-Synchronisation (nur in einem Anweisungsblock): #pragma omp barrier Kritischer Bereich, z.b. zur Steuerung des schreibenden Zugriffs mehrerer Threads auf eine Datenstruktur; nur ein Thread darf sich zu einem Zeitpunkt in einem kritischen Bereich befinden: #pragma omp critical Ausführung von Anweisungen nur durch den Master-Thread: #pragma omp master Erzwingen einer konsistenten Darstellung der Inhalte von Variablen in allen Threads (Vorsicht bei Zeigern!); wird keine Variable angegeben, so erhalten alle globalen Variablen einen konsistenten Wert #pragma omp flush (variable, variable,...) Bemerkung: erfolgt implizit bei barrier, critical sowie beiverlassen einer for-, section- und single-direktive (falls kein nowait) 35 Auswahl einiger OpenMP Bibliotheks-Funktionen: (erfordern #include <omp.h>) void omp_set_num_threads(int num_threads) int omp_get_num_threads(void) int omp_get_thread_num(void) int omp_set_dynamic(int dynamic_threading) (ist Parameter 0, so passt Laufzeitsystem die Threadanzahl dynamisch an) int omp_get_dynamic(void) void omp_set_nested(int nested) (ist Parameter 0, so werden geschachtelte Konstrukte parallel ausgeführt) Auswahl einiger OpenMP Umgebungsvariablen: OMP_NUM_THREADS (Anzahl Threads) OMP_SCHEDULE (Scheduling-Strategie, z.b. "static,10") OMP_DYNAMIC (TRUE: dynamische Anpassung der Threadanzahl) OMP_NESTED (TRUE: parallele Ausführung geschachtelter Konstrukte) 36 6

7 OpenMP: Beispiel 3 #include <omp.h> #define DIM main() float M[DIM][DIM], x[dim], y[dim], total; int i, j, tid; total = 0; #pragma omp parallel shared(m,x,y,total) private(tid,i) tid = omp_get_thread_num(); #pragma omp for private(j) schedule(static) for (i=0; i < DIM; i++) for (j=0; j < DIM; j++) y[i] += (M[i][j] * x[i]); #pragma omp critical total = total + y[i]; printf("y[%d]=%.2f computed by thread %d\n",i,y[i],tid); printf("total sum of all y[] = %.2f\n",total); 37 Thread-Programmierung Möglichkeiten der Arbeitsverteilung auf Threads: Master/Slave: ein Master-Thread steuert Programm, erzeugt mehrere Slave-Threads und verteilt Arbeit gleichmäßig auf Threads Pipelining: Thread i produziert Daten für Thread i +1 Pool: mehrere Threads holen sich nach Abarbeitung einer Aufgabe eine neue Aufgabe aus einem Aufgaben-Pool Divide-and-Conquer: jeder Thread erzeugt rekursiv einen weiteren Thread, bis Aufgabe ausreichend fein zerlegt ist Wettbewerb: jeder Thread führt eine andere Strategie aus jeder Thread hat Zugriff auf alle globalen Variablen und dynamisch erzeugte Objekte im globalen Adreßraum, besitzt jedoch lokalen Laufzeitstack für private Variablen explizite Synchronisation beim Zugriff aus globale Variablen über Semaphore (Mutex-Variablen) 38 7

Threads und OpenMP. Frank Mietke <frank.mietke@informatik.tu-chemnitz.de> Cluster- & Gridcomputing Frank Mietke 7/4/04

Threads und OpenMP. Frank Mietke <frank.mietke@informatik.tu-chemnitz.de> Cluster- & Gridcomputing Frank Mietke 7/4/04 Threads und OpenMP Frank Mietke 1 Ziel der Vorlesungen Einführung in Threads Programmierung mit Threads Einführung in OpenMP Programmierung mit OpenMP 2 Was ist

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 OpenMP-Programmierung Teil I Multikern-Praktikum Wintersemester 06-07 Inhalt Was ist OpenMP? Parallele Regionen Konstrukte zur Arbeitsteilung

Mehr

Programmieren mit OpenMP

Programmieren mit OpenMP Programmieren mit OpenMP Dr. Victor Pankratius David J. Meder IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Inhalt Was

Mehr

Parallele Programmierung mit OpenMP

Parallele Programmierung mit OpenMP Parallele Programmierung mit OpenMP - Eine kurze Einführung - 11.06.2003 RRZN Kolloquium SS 2003 1 Gliederung 1. Grundlagen 2. Programmiermodell 3. Sprachkonstrukte 4. Vergleich MPI und OpenMP 11.06.2003

Mehr

4. Parallelprogrammierung

4. Parallelprogrammierung 4. Parallelprogrammierung AlDaBi Prak4kum David Weese 2010/11 Enrico Siragusa WS 2011/12 Inhalt Einführung in Parallelität OpenMP Bemerkungen zur P- Aufgabe EINFÜHRUNG IN PARALLELITÄT Folien z.t. aus VL

Mehr

Parallele Programmierung mit OpenMP

Parallele Programmierung mit OpenMP Parallele Programmierung mit OpenMP Wolfgang Dautermann FH Joanneum Chemnitzer Linuxtage 2008 1 Motivation 2 OpenMP Übersicht 3 Hello World - der erste Code 4 OpenMP-Compilerdirektiven Threaderzeugung

Mehr

Parallele Programmierung mit OpenMP

Parallele Programmierung mit OpenMP Parallele Programmierung mit OpenMP Wolfgang Dautermann FH Joanneum Chemnitzer Linuxtage 2009 1 Motivation 2 OpenMP Übersicht 3 Hello World - der erste Code 4 OpenMP-Compilerdirektiven Threaderzeugung

Mehr

Multicore Parallelismus! in modernen CPUs

Multicore Parallelismus! in modernen CPUs Multicore Parallelismus! in modernen CPUs Johannes Hofmann, 21.5.2014 Seminar Architekturen von Multi- und Vielkern-Prozessoren Universität Erlangen-Nürnberg Lehrstuhl für Rechnerarchitektur Informatik

Mehr

2 SunHPC 2002, Einführung in OpenMP, Dieter an Mey

2 SunHPC 2002, Einführung in OpenMP, Dieter an Mey Parallele Programmierung für Shared-Memory Memory-Rechner mit OpenMP Parallele Programmierung für Shared-Memory Memory-Rechner mit OpenMP Dieter an Mey Rechen- und Kommunikationszentrum der RWTH Aachen

Mehr

Parallele Systeme. 1 Einführung 2 1.1 Durchführung der erweiterten Übung... 3 1.2 OpenMP... 3

Parallele Systeme. 1 Einführung 2 1.1 Durchführung der erweiterten Übung... 3 1.2 OpenMP... 3 Lehrstuhl für Informatik 12 Cauerstraße 11 91058 Erlangen TECHNISCHE FAKULTÄT 1. Erweiterte Übung zur Vorlesung Parallele Systeme Inhaltsverzeichnis 1 Einführung 2 1.1 Durchführung der erweiterten Übung..........................

Mehr

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2

Mehr

OpenMP am Beispiel der Matrizenmultiplikation

OpenMP am Beispiel der Matrizenmultiplikation OpenMP am Beispiel der Matrizenmultiplikation David J. Meder, Dr. Victor Pankratius IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe

Mehr

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

Paralleles Programmieren mit MPI und OpenMP

Paralleles Programmieren mit MPI und OpenMP Paralleles Programmieren mit MPI und OpenMP Vorlesung «Algorithmen für das wissenschaftliche Rechnen» 6.5.2002 Olaf Schenk, Michael Hagemann 6.5.2002 Algorithmen des wissenschaftlichen Rechnens 1 Organisatorisches

Mehr

Parallel Processing in a Nutshell OpenMP & MPI kurz vorgestellt

Parallel Processing in a Nutshell OpenMP & MPI kurz vorgestellt Parallel Processing in a Nutshell & kurz vorgestellt 16. Juni 2009 1 / 29 1 Das Problem 2 2 / 29 1 Das Problem 2 3 2 / 29 1 Das Problem 2 3 4 2 / 29 1 Das Problem 2 3 4 2 / 29 Multi-Core Prozessoren halten

Mehr

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches U6 6. Übung U6 6. Übung U6-1 Organisatories U6-1 Organisatories Organisatorisches Zusätzliche Tafelübung zur S1-Klaurvorbereitung Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte am

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

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C:

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C: Übersicht Einführung in die Programmierung Bachelor of Science die -Funktion Prof. Dr. Rethmann Fachbereich Elektrotechnik und Informatik Hochschule Niederrhein WS 009/0 Einführung in die Programmierung

Mehr

Robotersteuerung. VL Mikrorechentechnik 2. SS 2013 Professur für Prozessleittechnik

Robotersteuerung. VL Mikrorechentechnik 2. SS 2013 Professur für Prozessleittechnik Robotersteuerung VL Mikrorechentechnik 2 SS 2013 Professur für Prozessleittechnik Übersicht Design eines endlichen Zustandsautomaten für die Steuerung eines Roboters C++ Konzepte: shared memory boost::interprocess

Mehr

Einfache Rechenstrukturen und Kontrollfluss II

Einfache Rechenstrukturen und Kontrollfluss II Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

COPPER Best Practices

COPPER Best Practices COPPER Best Practices Version 1.0.1 Wann sollte man überhaupt COPPER verwenden? Allgemein genau dann, wenn man von der COPPER Notation oder den COPPER-Features profitieren kann. Ein wesentliches Feature

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Cluster-Praktikum Sommersemester 2007 Transparent Replizierte Objekte in JavaParty Institut für Programmstrukturen und Datenorganisation

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

PROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation, zugehörige Systemaufrufe und Kommandos 7. UNIX/Linux-Shared Memory 8. (Benannte) Pipes UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

Mehr

http://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/openmp/openmp.dvi

http://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/openmp/openmp.dvi Open Multi Processing Dipl. Math. F. Braun Universität Regensburg Rechenzentrum http://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/openmp/openmp.html http://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/openmp/openmp.pdf

Mehr

Programmierung von Graphikkarten

Programmierung von Graphikkarten Programmierung von Graphikkarten Stefan Lang Interdisziplinäres Zentrum für Wissenschaftliches Rechnen Universität Heidelberg INF 368, Raum 532 D-69120 Heidelberg phone: 06221/54-8264 email: Stefan.Lang@iwr.uni-heidelberg.de

Mehr

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend U7 6. Übung U7 6. Übung U7-1 Motivation von Threads U7-1 Motivation von Threads Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte pthread-ai Koordinierung UNIX-rozesskonzept: eine Ausführungsumgebung

Mehr

Nutzung paralleler Prozesse bei der Umweltsimulation

Nutzung paralleler Prozesse bei der Umweltsimulation Nutzung paralleler Prozesse bei der Umweltsimulation RALF Wieland rwieland@zalf.de ZALF/LSA Nutzung paralleler Prozesse bei der Umweltsimulation p. 1 Warum parallele Prozesse? Die Steigerung der Taktfrequenz

Mehr

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum

Mehr

Klausur zu High Performance Computing 12. Juli 2013

Klausur zu High Performance Computing 12. Juli 2013 Britta Nestler, Alexander Vondrous, Fakultät IWI, Hochschule Karlsruhe Klausur zu High Performance Computing 12. Juli 2013 Es sind keine Hilfsmittel zugelassen. Bearbeitungszeit: 90 Minuten Aufgabe 1:

Mehr

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch};

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch}; Aufgabe 1: (15 Punkte) Bei den Multiple-Choice-Fragen ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene Punktzahl. Wollen Sie eine Multiple-Choice-Antwort

Mehr

Programmieren in C++ Arrays, Strings und Zeigerarithmetik

Programmieren in C++ Arrays, Strings und Zeigerarithmetik Programmieren in C++ Arrays, Strings und Zeigerarithmetik Inhalt Eindimensionale C-Arrays C-Strings und Strings (Mehrdimensionale C-Arrays) Arrays und Vektoren (C++) Unique Pointers (C++11) Zeigerarithmetik

Mehr

Unterprogramme, Pointer und die Übergabe von Arrays

Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme Wie schon im Abschnitt über Funktionen erwähnt, versteht man unter einem Unterprogramm im engeren Sinn eine Prozedur, welche die Werte

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Parallelization of irregular parallel programs using Task Pools and OpenMP

Parallelization of irregular parallel programs using Task Pools and OpenMP Parallelization of irregular parallel programs using Task Pools and OpenMP Abschlussarbeit zum Diplom I an der Universität Kassel Offiziell abgegeben: 19.04.2006 Vorgelegt von Alexander Wirz Betreuer:

Mehr

Hochleistungsrechnen Hybride Parallele Programmierung. Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen

Hochleistungsrechnen Hybride Parallele Programmierung. Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen Hochleistungsrechnen Hybride Parallele Programmierung Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen Inhaltsübersicht Einleitung und Motivation Programmiermodelle für

Mehr

Parallele Programmierung mit OpenMP und MPI

Parallele Programmierung mit OpenMP und MPI Parallele Programmierung mit OpenMP und MPI oder Wieso früher alles besser war Robin Geyer 08.10.2010 Robin Geyer () Parallele Programmierung mit OpenMP und MPI 08.10.2010 1 / 52 Fahrplan Einführung /

Mehr

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling Game Engine Architecture and Development Platform Unabhängiger Code Multi Threading in Game Engines Profiling Folien Die Folien werden auf acagamics.de hochgeladen Das Passwort ist 60fps (ohne ) Rückblick:

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

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

KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation

KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation SS 2003 KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation 1 Sequentielle Prozesse Zu jedem Zeitpunkt t wird genau eine einzige Instruktion ausgeführt Hängt ab vom Abstraktionsgrad

Mehr

Architektur paralleler Rechnersysteme - Effiziente HPC Systeme -

Architektur paralleler Rechnersysteme - Effiziente HPC Systeme - Architektur paralleler Rechnersysteme - Effiziente HPC Systeme - WS 12/13 Nr. L.079.05706 Master-Studiengang Informatik, V2/Ü1 www.uni-paderborn.de/pc2 Vorlesung: Architektur Paralleler Rechnersysteme

Mehr

1. Übung zu "Numerik partieller Differentialgleichungen"

1. Übung zu Numerik partieller Differentialgleichungen 1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:

Mehr

Kurz: Stimme meinen Vorrednern zu: Angenehme Atmosphäre. Eher ein Fachgespräch als eine Prüfung. Eindeutig zu empfehlen

Kurz: Stimme meinen Vorrednern zu: Angenehme Atmosphäre. Eher ein Fachgespräch als eine Prüfung. Eindeutig zu empfehlen Kursversion WS: 10/11 02.2012 Kurs 1727 Kurz: Stimme meinen Vorrednern zu: Angenehme Atmosphäre. Eher ein Fachgespräch als eine Prüfung. Eindeutig zu empfehlen Grundlagen Parallele Programmierung? Was

Mehr

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede

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

Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de

Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de > Programmierbeispiele und Implementierung Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de 2 > Übersicht > Matrix Vektor Multiplikation > Mandelbrotmenge / Apfelmännchen berechnen > Kantendetektion

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

Modulare Programmierung und Bibliotheken

Modulare Programmierung und Bibliotheken Modulare Programmierung und Bibliotheken Proseminar-Vortrag am 24.06.2011 von Ludwig Eisenblätter Ludwig Eisenblätter 1 von 25 Modulare Programmierung und Bibliotheken Inhaltsübersicht Motivation / Einleitung

Mehr

6. Tutorium zu Softwaretechnik I

6. Tutorium zu Softwaretechnik I 6. Tutorium zu Softwaretechnik I Parallelität und Testen Michael Hoff 01.07.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen 4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen Highlights: objektorientierte Sprache Plattformunabhängigkeit bei Hardware und Betriebssystem optimale Einbindung im Internet und Intranet

Mehr

Thread-Erzeugung kostengünstiger als Prozesserzeugung Thread-Umschaltung kostengünstiger als Prozessumschaltung

Thread-Erzeugung kostengünstiger als Prozesserzeugung Thread-Umschaltung kostengünstiger als Prozessumschaltung 1.5 Threaded Server Server als ein Prozess mit mehreren Threads Threads Thread als Aktivitätsträger virtueller Prozessor eigener Programmzähler eigener Stackbereich eingebettet in den Kontext eines Prozesses

Mehr

IT-Infrastruktur, WS 2014/15, Hans-Georg Eßer

IT-Infrastruktur, WS 2014/15, Hans-Georg Eßer ITIS-D'' IT-Infrastruktur WS 2014/15 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz D'': Rechnerstrukturen, Teil 3 v1.0, 2014/11/27 Folie D''-1 Dieser Foliensatz Vorlesungsübersicht Seminar Wiss.

Mehr

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind

Mehr

Projektseminar Parallele Programmierung

Projektseminar Parallele Programmierung HTW Dresden WS 2014/2015 Organisatorisches Praktikum, 4 SWS Do. 15:00-18:20 Uhr, Z136c, 2 Doppelstunden o.g. Termin ist als Treffpunkt zu verstehen Labore Z 136c / Z 355 sind Montag und Donnerstag 15:00-18:20

Mehr

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161? Was machen wir heute? Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012 Übung zu Grundlagen der Betriebssysteme 7. Übung 27.11.2012 Threads Thread (Faden des (Kontrollflusses)): ist ein sequentieller Abarbeitungsablauf (Kontrollfluss) innerhalb eines Prozesses. Umfasst ein

Mehr

Grundlagen der Parallelisierung

Grundlagen der Parallelisierung Grundlagen der Parallelisierung Philipp Kegel, Sergei Gorlatch AG Parallele und Verteilte Systeme Institut für Informatik Westfälische Wilhelms-Universität Münster 3. Juli 2009 Inhaltsverzeichnis 1 Einführung

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

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

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden. 5. Steuerung technischer Prozesse 5.1 Echtzeit (real time) Im Gegensatz zu Aufgabenstellungen aus der Büroumgebung, wo der Anwender mehr oder weniger geduldig wartet, bis der Computer ein Ergebnis liefert

Mehr

Erstellung von Bibliotheken in CoDeSys V3

Erstellung von Bibliotheken in CoDeSys V3 Dokument Version 2.0 3S - Smart Software Solutions GmbH Seite 1 von 10 INHALT 1 EINFÜHRUNG 3 2 BIBLIOTHEKSKONZEPT IM DETAIL 4 2.1 Kategorien von Bibliotheken 4 2.1.1 System 4 2.1.2 Internal 4 2.1.3 Application

Mehr

5. Unterprogrammtechnik/Module

5. Unterprogrammtechnik/Module 5. Unterprogrammtechnik/Module Unterprogramm/Modul: separate Programmeinheit, mit Anweisungen, die eine bestimmte Aufgabe erfüllen bekommt i.a. Argumente (Werte, Informationen) vom aufrufenden Programm

Mehr

Fachhochschule Wiesbaden - Fachbereich DCSM. Skriptsprachen. Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby

Fachhochschule Wiesbaden - Fachbereich DCSM. Skriptsprachen. Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby Fachhochschule Wiesbaden - Fachbereich DCSM Skriptsprachen Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby 16.10.2008 2003, 2008 H. Werntges, FB Design Informatik Medien (DCSM), FH Wiesbaden

Mehr

Computergrundlagen Programmieren in C

Computergrundlagen Programmieren in C Computergrundlagen Programmieren in C Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2013/14 Die Sprache C D. M. Ritchie, 1941 2011 Entwickelt 1971-1973 aktueller Standard:

Mehr

Embedded-Linux-Seminare. Linux als Betriebssystem

Embedded-Linux-Seminare. Linux als Betriebssystem Embedded-Linux-Seminare Linux als Betriebssystem http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren (P)

Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren (P) Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 26.11. Foliensatz 5 Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2011/2012 1 / 22 popen Programmentwicklung unter Linux make gcc, objdump, readelf 2 / 22 Die Funktion popen Im

Mehr

Proseminar Nichtsequentielle Programmiersprachen - alt und neu Einführung

Proseminar Nichtsequentielle Programmiersprachen - alt und neu Einführung Proseminar Nichtsequentielle Programmiersprachen - alt und neu Einführung Peter Löhr Nichtsequentielle Programme Nichtsequentielle Programme (concurrent programs): Prozesse, Threads, Tasks,... sind eigenständige

Mehr

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007 User Mode Linux (UML) Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren Friedrich-Alexander-Universität Erlangen-Nürnberg Bruno Kleinert fuddl@gmx.de 20. Juni 2007 Überblick

Mehr

Betriebssysteme. Wintersemester 2015. Kapitel 2 Prozess und Threads. Patrick Kendzo ppkendzo@gmail.com

Betriebssysteme. Wintersemester 2015. Kapitel 2 Prozess und Threads. Patrick Kendzo ppkendzo@gmail.com Betriebssysteme Wintersemester 2015 Kapitel 2 Prozess und Threads Patrick Kendzo ppkendzo@gmail.com Programm Inhalt Einleitung Prozesse und Threads Speicherverwaltung Eingabe und Ausgabe Dateisysteme Zusammenfassung

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance 5. November 2013 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität Basel Repetition

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R.

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung,

^ Springer Vi eweg. Grundkurs Betriebssysteme. Synchronisation, Prozesskommunikation, Virtualisierung. Architekturen, Betriebsmittelverwaltung, Peter Mandl Grundkurs Betriebssysteme Architekturen, Betriebsmittelverwaltung, Synchronisation, Prozesskommunikation, Virtualisierung 4. Auflage ^ Springer Vi eweg 1 Einführung 1 1.1 Computersysteme 1

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

Portabel Programmieren. Dr. Olaf Flebbe o.flebbe@science-computing.de

Portabel Programmieren. Dr. Olaf Flebbe o.flebbe@science-computing.de Portabel Programmieren Dr. Olaf Flebbe o.flebbe@science-computing.de Einführung Erfahrung im Portieren und Reengeneering Systemnahes Programmierung im CAx Umfeld Was heißt da portabel? Wohin portabel?

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

FHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt

FHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt Inhalt 1. Einführung 2. Array-Komponenten von elementaren Datentypen 3. Array-Komponenten sind Objekte 4. Array als Parameter 5. Kopieren von Arrays 6. Beispiel 7. Vector versus Array Folie 1 Lernziele

Mehr

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene

Mehr

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans... Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Blöcke und Grand Central Dispatch

Blöcke und Grand Central Dispatch Blöcke und Grand Central Dispatch Multithreading ist ein Thema, mit dem sich alle Programmierer bei der modernen Anwendungsentwicklung beschäftigen müssen. Selbst wenn Sie glauben, dass Ihre Anwendung

Mehr

Programmieren in C. Burkhard Bunk 6.3.2013

Programmieren in C. Burkhard Bunk 6.3.2013 Programmieren in C Burkhard Bunk 6.3.2013 1 C Die Programmiersprache C wurde Anfang der 70er Jahre von Brian Kernighan und Dennis Ritchie bei Bell Labs (später AT&T) entwickelt und 1989 (in etwas weiter

Mehr

Parallelverarbeitung mit Ruby

Parallelverarbeitung mit Ruby Fachhochschule Wiesbaden - Fachbereich DCSM Parallelverarbeitung mit Ruby Prozess-Ebene Multithreading 04.12.2008 2003, 2008 H. Werntges, FB Design Informatik Medien (DCSM), FH Wiesbaden 1 Fachhochschule

Mehr

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage

Mehr

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern)

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern) Klausur Verteilte Systeme 15.6. R120A 8:00-9:30 5 Aufgaben, 50 Punkte (8 12 pro Aufgabe) 45-50 1.0 44 1.1 35 2.0 25 3.0 15 4.0 http://www.bts.fh-mannheim.de Aufgaben: (dazugehörige Kapitel / Seitenangaben

Mehr