Diplomarbeit. Universität Ulm Institut für Angewandte Informationsverarbeitung

Größe: px
Ab Seite anzeigen:

Download "Diplomarbeit. Universität Ulm Institut für Angewandte Informationsverarbeitung"

Transkript

1 Diplomarbeit Optimierung der Start- und Ausführungsgeschwindigkeit einer verteilten Überwachungs- und Steuerungsanwendung auf einem Embedded-Linux Gerät Universität Ulm Institut für Angewandte Informationsverarbeitung Vorgelegt von : Lionel Montheu Matrikelnummer: Geboren am: in Kamerun Angefertigt bei: NDSatCom Friedrichshafen Begin: Abgabetermin: Betreuer: Dipl. Ing. Markus Flad NDSatCom Friedrichshafen 1. Gutachter: Prof. Dr. Franz Schweiggert Universität Ulm 2. Gutachter: Dr. Michael Weixler NDSatCom Friedrichshafen

2 Ich versichere, dass ich die Arbeit ohne fremde Hilfe und ohne Benutzung anderer als der angegebenen Quellen angefertigt habe und dass die Arbeit in gleicher oder ähnlicher Form noch keiner anderen Prüfungsbehörde vorgelegen hat und von dieser als Teil einer Prüfungsleistung angenommen wurde. Alle Ausführungen, die wörtlich oder sinngemäß übernommen wurden, sind als solche gekennzeichnet. Ulm, den 31. Juli 2008

3 INHALTSVERZEICHNIS Inhaltsverzeichnis Inhaltsverzeichnis 5 Abbildungsverzeichnis 8 Tabellenverzeichnis 9 1 Einleitung Die Firma ND SatCom Einordnung Das M&C System Aufgabenstellung Gliederung Profiling Definition Profilingtechniken Nichtinvasives Profiling Invasives Profiling Instrumentierung auf Quellcode Ebene Instrumentierung zur Übersetzungszeit Instrumentierung auf Objekt Ebene Instrumentierung zur Laufzeit Sampling vs. Instrumentierung Code Profiler Code Profiler unter Linux gprof Beschreibung Bewertung OProfile Beschreibung

4 INHALTSVERZEICHNIS Bewertung Valgrind Beschreibung Bewertung Code Profiler unter Windows DevPartner for Visual C Die Benutzerobefläche Vor- und Nachteile Rational Quantify Die Benutzeroberfläche Vor- und Nachteile VTune Performance Analyzer Die Benutzeroberfläche Vor- und Nachteile Visual Team Suite Das M&C System Design und Architektur Der CECS Server Design des CECS Servers Aufbau einer Driver Task Variablenproxy Action Handler Aufbau einer Processing/Agent Task Konfiguration eines CECS Servers Konfiguration der Tasks im M&C Server Nachrichtenaustausch im CECS Embedded Linux Geräte Redundancy Control Unit RCU- Konfigurationen Antenna Control Units Front Panel Controller Analyse und Optimierung Einschränkungen Allgemeine Vorgehensweise Suche nach Engstellen Analyse der Engstelle Messung des Performancegewinns Startdauer

5 INHALTSVERZEICHNIS Ausführungszeit Testumbegung Grobsystemanalyse Ergebnisse der ersten Messungen Analyse und Interpretation der ersten Messungen Quellcode Optimierung Zentrale Fabrikmethode Logginginformationen Auslesen der Konfigurationsdatei Fehler in einer Konfigurationsdatei Zwischenspeichern der Complete Response Verbesserung der Textverarbeitung Versenden von Nachrichten über TCP Programmoptimierung Entfernen von unbenutztem Code Dynamische Bibliotheken bevorzugen Komprimierung einer ausführbaren Datei Zusammenfassung Performanceverbesserungen Ausblick Schlusswort Glossar 96 Abkürzungsverzeichnis 100 Literaturverzeichnis 103 Index 105 5

6 6 INHALTSVERZEICHNIS

7 ABBILDUNGSVERZEICHNIS Abbildungsverzeichnis 1.1 Ein mobiles Übertragungsfahzeug (SNG) Der Übersetzungsprozess eines C Programms Visualisierung der Ausgabe von gprof mit kprof KCachegrind im Einsatz Aufbau des Tesprogramms zur Auswertung der Profiler Menu zum Steuern der Profilingaufgaben Toolbar zum Steuern der Profilingaufgaben Registerkarte mit (u.a) detaillierter Funktionsliste Übersicht über die Ausführungszeiten Ausschnitt einer annotierten Quelldatei Beispiel eines Aufrufgraphen Vergleich zwischen 2 Profiling- Sitzungen PurifyPlus Menü in Visual Studio Starten einer Profiling Sitzung Übersicht aller Threads und Threadzustände zur Programmlaufzeit Tabelle der aufgerufenen Funktionen Aufrufgraph des Hauptprogramms Tabelle aller aufgerufenen Funktionen, dargestellt nach Modul Ein Aufrufgraph im VTune Analyzer Aufbau eines M&C Systems Struktur eines CECS Servers Aufbau einer Driver Task Aufbau einer Agent bzw. Processing Task Sequenzdiagramm der Startprozedur im CECS Ablauf bei der Neuverbindung einer Task im CECS Die Redundancy Control Unit Beispiel einer Redundanzschaltung RCU Display mit der Konfiguration SW

8 ABBILDUNGSVERZEICHNIS 5.4 RCU Display mit der Konfiguration SW Die Antennekontrolleinheiten Der FPC und ein Leistungsverstärker M&C Bibliothekstruktur Start der RCU Software Verlauf der Ausführungszeiten Aufrufbaum der Funktion CFactory<CTaskProxy>:: Create() Aufrufbaum der Funktion CFactory<CWorker>:: Create() Ausführungszeiten beim Senden und Empfangen von Nachrichten Einige Objektfabriken in der M&C Bibliothek Die annotierte Fabrikmethode Die Funktion AppendCompleteHandler::Append() Auslesen eines Wertes in der.ini Datei Auslesen eines Wertes in der.ini Datei (optimiert) Ablauf bei einer Complete Request Geänderter Ablauf bei einer Complete Request Versenden von Nachrichten über TCP und UDP Versenden von Nachrichten über TCP (optimiert)

9 TABELLENVERZEICHNIS Tabellenverzeichnis verschiedene Messungen der Startdauer der RCU Hardwareunterschiede zwischen Windowsumgebung und RCU Ausführungszeiten (in Millisekunden) nach Funktion und Konfiguration(1) Ausführungszeiten (in Millisekunden) nach Funktion und Konfiguration(2) Anzahl der Funktionsaufrufe in SW09 und SW Startzeit der M&C Software (SW06) mit optimierter Fabrikmethode Verbesserungen bei SW Zusammenfassung der Verbesserungen auf verschiedenen Geräten

10 10 TABELLENVERZEICHNIS

11 LISTINGSVERZEICHNIS Listingsverzeichnis 2.1 Messung der Ausführungszeit durch Differenz zwischen Systemzeiten Übersetzung einer Anwendung mit Profilingfunktionalität Ein flat profile mit gprof Ein call graph mit gprof Beispiel von Quellcodeannotierung mit gprof Konfiguration einer Profilingsitzung mit OProfile Durchführung einer Profilingsitzung mit OProfile Zusammenfassung der Profilingsitzung mit OProfile Performanceprofil eines einzelnen Programms mit OProfile Fehlerhafter Aufrufgraph mit OProfile Simulationsoverhead mit Valgrind Compilerausgabe bei Übersetzung mit Profilingunterstützung Interne Konfiguration des CECS Servers Liste aller verwalteten Tasks Konfiguration der Treiber- Task IDU Einige textbasierte Komponentenspezifikationen Ausschnitt der geänderten Fabrikmethode Optimierung der Funktion AppendCompleteHandler::Append Verwendung von CFastTextNotifyParser in der.ini Datei Testfall 1 : Verwendung von ostringstream und des << Operators Testfall 4 : Verwendung eines char Arrays und sprintf() Durchführung von TestFall Durchführung von TestFall Das Makro SNPRINTF Funktionen zum Verschicken von Nachrichten Komprimierung eines Programms mit UPX

12

13 1. EINLEITUNG Kapitel 1 Einleitung 1.1 Die Firma ND SatCom Im Juli 2000 wurde aus dem Bereich SatCom des Unternehmens Nortel DASA ein eigenständiges Tochterunternehmen, die ND SatCom GmbH gegründet. Etwa zwei Jahre später im September 2002 wurde die GmbH in eine AG umgewandelt. Anteilseigner der ND SatCom AG waren damals die SES 1 Astra (Luxemburg) und AUGUSTA Technology AG (Frankfurt/Main). Seit Juni 2006 wurde die Firma ND SatCom AG wieder in eine GmbH umgewandelt und gehört jetzt zu 100% zu SES Astra. Die ND SatCom GmbH ist weltweit durch regionale Vertriebs- und Servicebüros vertreten. Der Hauptsitz des Unternehmens mit Verwaltung und Fertigung befindet sich in Friedrichshafen. Sie ist einer der führenden Anbieter von Satellitengestützten Lösungen für Breitband VSAT 2, Broadcast und militärische Kommunikationsnetzwerke. Ihre Technologien werden weltweit bei Unternehmen, Broadcastern, Regierungsbehörden, dem Militär sowie für Medien, Internet und im Bereich Telekommunikation eingesetzt. 1.2 Einordnung Ein Teil der Projekte der ND SatCom GmbH wird im Bereich Broadcast abgewickelt. Hierbei unterstützt die ND SatCom GmbH den vollständigen Bereich der Rundfunk- und Fernsehübertragung. Die Hauptentwicklungsgebiete liegen in der Bereitstellung von Satellitenbodenstationen für Breitbandübertragungen, des Weiteren der Entwicklung von Satellite News Gathering (SNG) Fahrzeugen (vgl. Abb. 1.1) und den dazugehörigen Komponenten für die Satellitenübertragung. Hauptabnehmer befinden sich vor allem im Bereich privaten und öffentlich-rechtlichen Sendeanstalten weltweit. 1 Société Européenne des Satellites 2 Very Small Aperture Terminal 13

14 1.3. DAS M&C SYSTEM Satellitenbodenstationen lassen sich in zwei Kategorien unterteilen. Zum einen gibt es die Empfangsstationen (Downlinks): sie können ein großes Übertragungsvolumen empfangen. Zum anderen gibt es die Sendestationen (Uplinks): sie senden die Programme zum Satelliten. SNG Fahrzeuge sind spezielle Fahrzeuge, welche mit einer Technik für digitale Satellitenübertragung, in Einzelfällen auch für analoge Satellitenübertragung ausgerüstet sind. Sie wurden entwickelt, um vom Ort des Geschehens zur Sendezentrale Nachrichten zu übertragen. Abbildung 1.1 Ein mobiles Übertragungsfahzeug (SNG) (Quelle: 1.3 Das M&C System Zur Steuerung und Überwachung dieser Bodenstationen und SNG Fahrzeuge entwickelt die ND SatCom GmbH eine Überwachungs- und Kontrollsoftware, das Monitor and Control (M&C) System. Das M&C System ist eine proprietäre Softwarelösung, welche als Client- Server System realisiert ist. Der M&C Server kommuniziert mit den verschiedenen Geräten der Bodenstation mit Hilfe von entsprechenden Treibermodulen. Auf Grundlage dieser Treibermodule können im M&C Server automatisierte Aufgaben realisiert werden (z.b. Redundanzüberwachungen, Antennennachführung, etc.). Der M&C Server kann auf Windows Platformen eingesetzt werden, läuft aber auch auf unterschiedlichen Embedded-Linux Umgebungen. Die Mensch-Maschinen-Kommunikation ist Aufgabe des Clients. Es handelt sich dabei meistens um eine graphische Benutzerschnittstelle, welche Änderungen vom Server sofort anzeigt und über die Einstellungen an den Geräten der Bodenstation gemacht werden können. Die Struktur, sowie weitere Grundlagen über das M&C System werden in Kap. 4 genauer beschrieben. 14

15 1. EINLEITUNG 1.4 Aufgabenstellung Vor allem im Umfeld der Embedded-Linux Geräte besteht der Wunsch nicht nur nach einer höheren Verarbeitungsgeschwindigkeit sondern auch nach einer schnelleren Startgeschwindigkeit des M&C Servers. Auch im Windows Bereich sind solche Verbesserungen erstrebenswert. Die Aufgabe in der Diplomarbeit ist also zunächst die Messung und Auswertung der Ausführungsgeschwindigkeit in verschiedenen Szenarien. Der M&C Server ist ein nebenläufiges Programm. Dies macht die Messung nicht trivial und es müssen Lösungen erarbeitet werden wie die Messung mit vielen Threads (teilweise über 50) zu aussagekräftigen Auswertungen führen kann. Auf Grundlage der Messung sollte das bestehende System untersucht werden. Dabei ist es auch nötig ein tieferes Verständnis des bestehenden Laufzeitsystems und des CECS-Frameworks zu erlangen. Es wird erwartet, dass diese Auswertung eine oder mehrere Engstellen im System identifiziert. Eine weitere Aufgabe ist daher die Untersuchung unterschiedlicher Möglichkeiten der Geschwindigkeitsoptimierung. Dabei ist es evtl. nötig verschiedene Algorithmen gegenüberzustellen. Möglicherweise ist aber auch eine Diskussion über die Änderungen an der bestehenden Softwarearchitektur notwendig. Als weiterer Schritt sollte die Geschwindigkeitsoptimierung implementiert werden, die das größte Potential besitzt. Auch die Optimierung an mehreren Stellen ist durchaus denkbar. Abschließend sollte die Diplomarbeit durch entsprechende Messungen die dann erzielten Geschwindigkeitssteigerungen in verschiedenen Szenarien darstellen. 1.5 Gliederung Damit man ein bestehendes System optimieren kann, ist es erfoderlich, die Stellen im System herauszufinden, die eventuelle Engpässe darstellen. Dafür wird das System während seiner Ausführung untersucht. Kapitel 2 gibt einen Überblick über die gängigen Techniken, welche für die Messung der Ausführungszeit von Programmen verwendet werden. Anschließend werden im Kapitel 3 einige Tools (sowohl unter Linux als auch unter Windows), welche die Analyse eines Programms während seiner Ausführung sowie die Ermittlung von u.a. Performanceinformationen ermöglichen, vorgestellt und verglichen. Das Kapitel 4 befasst sich mit wesentlichen Grundlagen über das M&C System wie z.b. dessen Struktur und Funktionsweise. Im Kapitel 5 werden verschiedene Embedded-Linux Geräte, in denen die M&C Software zum Einsatz kommt, kurz vorgestellt. Nach den theoretischen und technischen Grundlagen in den früheren Kapiteln wird im Kapitel 6 zuerst eine Grobsystemanalyse durchgeführt. Nach dieser Analyse werden die vorgenommenen Optimierungsschritte nicht nur auf Quellcodeebene, sondern auch direkt im ausführbaren Programm erklärt. Kapitel 7 stellt den durch die Optimierung erzielten Gewinn dar und abschließend werden weitere Ideen, welche möglicherweise einen Optimierungspotenzial besitzen, kurz beschrieben. 15

16 GLIEDERUNG

17 2. PROFILING Kapitel 2 Profiling 2.1 Definition In der Softwareentwicklung entstehen häufig Probleme durch ineffiziente Programmierung. Um diese Probleme aufzudecken muss die Software während ihrer Laufzeit analysiert werden. Dabei werden Messungen gemacht, die für eine spätere Auswertung verwendet werden. Anhand dieser Messungen können z.b. Aussagen über die Ausführungszeit, die Aufrufsreihenfolge, die Aufrufshäufigkeit von Funktionen sowie über das Speicherverhalten der Software getroffen werden. Dieses Vorgehen nennt man das Profiling. Das Profiling ist ein entscheidender Schritt in der Optimierungsanalyse. Aus den Erkenntnissen, die über die Systemanalyse gemacht wurden, wird später entschieden, was in der Software zu ändern ist um die Software bezüglich definierter Eigenschaften zu optimieren. 2.2 Profilingtechniken Die Techniken zur Ermittlung von Laufzeitsinformationen über Programmen lassen sich insgesamt in 2 Kategorien aufteilen: nichtinvasive Profilingtechniken und invasive Profilingmethoden Nichtinvasives Profiling Beim nichtinvasiven Profiling wird das beobachtete Programm vor seiner Ausführung nicht modifiziert. Ein Vertreter für diese Technik ist das Sampling und es basiert im Prinzip auf das folgende Verfahren: Parallel zum beobachteten Programm läuft ein anderes Programm, welches für die Messung der Performance zuständig ist. Der Beobachter löst periodisch ein Interrupt 1 aus und liest den 1 kurzfistige Unterbrechung eines Programm um eine Unterbrechungsroutine auszuführen 17

18 2.2. PROFILINGTECHNIKEN Inhalt des Programmzählers. Anschließend wird der Stack durchsucht um herauszufinden welche Prozedur sich gerade in Ausführung befand. Danach wird die Anzahl der Schnappschüsse für die zugehörige Prozedur erhöht. Befindet sich die Funktion f nacheinander in n Schnappschüssen, so kann (anhand der Snapschussfrequenz) eine statistische Aussage über die Ausführungsdauer der Funktion f gemacht werden. Diese Technik bietet mehrere Vorteile, aber auch Nachteile: + Der bestehende Code braucht nicht geändert zu werden. + Es ist sowohl Anwendungsprofiling als auch Systemprofiling möglich. + Das zu beobachtende Programm läuft mit der (relativ) gleichen Geschwindigkeit und somit hat die Untersuchung der Ausführungszeit keinen direkten Einfluß auf die Ausführungszeit selbst. + Durch Auswahl einer geeigneten Samplingfrequenz kann man die Untersuchung auf solche Funktionen beschränken, die mindestens eine bestimmte Ausführungsdauer besitzen. Eventuell muss der bestehende Code mit der Unterstützung von Profiling neu übersetzt werden. Messergebnisse sind nicht exakt da sie auf einer statistischen basis beruhen Aus der Analyse kann ein Aufrufsgraphen produziert werden, welcher aber auch auf einer statistischen Basis beruht Invasives Profiling Beim invasiven Profiling wird die auszuführende Software vor der Analyse modifiziert. Dabei werden an bestimmten Stellen im Code Aufrufe auf Überwachungsfunktionen hinzugefügt. Dieses Vorgehen wird auch Instrumentierung genannt. Es gibt verschiedene Formen [TAO 04, Seite 2] der Instrumentierung. Diese Formen unterscheiden sich bei dem Zeitpunkt (auf dem Weg vom Quellcode zum ausführbaren Code), in welchem die Instrumentierung stattfindet. Abb. 2.1 zeigt den Übersetzungsvorgang eines C- Programms: der C Quelltext wird zuerst durch einen Präprozessor durchlaufen, welchen z.b. Makroersetzungen durchführt. Der daraus entstehende, reine C Quellcode wird anschliessend durch den Compiler in Assembler Quelltext übersetzt. Dabei wird das Programm (u.a.) auf Syntax und Semantik geprüft. Danach erzeugt der Assembler aus diesem Quelltext Objekt-Code in Maschinensprache. Schließlich wird der Objekt-Code gegebenenfall mit anderen Objekt-Codes (z.b. aus einer Archiv) zusammengelinkt und das Ergebnis ist ein ausführbares Programm. Durch die Instrumentierung wird die Ausführung des Programms jedoch langsamer, denn die Ausführung von Profilingroutinen selbst CPU Zeit verbraucht. Je höher die Anzahl an instrumentierten Funktionen, desto grösser der Overhead. 18

19 2. PROFILING Abbildung 2.1 Der Übersetzungsprozess eines C Programms (Quelle: [SWGT 04, Seite 115]) Instrumentierung auf Quellcode Ebene Diese Form der Instrumentierung wird manuell durch den Programmierer vorgenommen. An bestimmten Stellen im Quellcode werden explizit Routinen zur Ermittlung von Performanceinformationen aufgerufen. Im folgenden Listing 2.1 wird beispielsweise die Ausführungszeit einer Prozedur aus einer trivialen Art (über die Differenz zwischen Systemzeiten) berechnet. long timebefore = System. c u r r e n t T i m e M i l l i s ( ) ; dosomejob ( ) ; long timeafter = System. c u r r e n t T i m e M i l l i s ( ) ; long duration = timeafter timebefore ; Listing 2.1 Messung der Ausführungszeit durch Differenz zwischen Systemzeiten Bei dieser Art der Messung treten folgende Probleme auf: Wird der laufende Prozess aus irgendeinem Grund durch den Scheduler im Betriebssystem zugunsten eines anderen Prozesses vorläufig unterbrochen, so wird die Ausführungsdauer des anderen Prozesses auch mitgezählt. D.h. die so berechnete Zeit (vor allem bei Nebenläufigkeit) entspricht nicht immer der Realität. Falls innerhalb der Funktion dodomejob() ein Thread 2 erzeugt wird, welcher eventuell auch eine zeitintensive Aufgabe ausführt, so ist es mit dieser Methode nicht möglich, 2 leichtgewichtiger Prozess 19

20 2.2. PROFILINGTECHNIKEN die zusätzliche Ausführungszeit des erzeugten Threads in der Berechnung mit hinzu zu beziehen. Diese Technik ist eher für kleine Programme geeignet und setzt voraus, dass man schon eine Idee darüber hat, welche Funktion zeitintensiv ist. Andernfalls muß die Ausführungsdauer jeder möglichen Funktion von Hand direkt im Code gemessen werden, was die Suche der zeitintensiven Abschnitten erschwert. Ausserdem ist es erforderlich, der bestehende Quellcode zu modifizieren, was nicht immer gewünscht ist Instrumentierung zur Übersetzungszeit Bei manchen Compilern ist es möglich, Profilingfunktionalitäten durch die Verwendung von bestimmten Compileroptionen zu aktivieren. Wird z.b. bei dem GNU C Compiler (gcc) bzw. GNU C++ Compiler (g++) die Option -pg während der Übersetzung eines Programm angegeben, so werden Profilingroutinen zum Programm hinzugefügt. Nach erfolgreicher Ausführung dieses Programms entsteht dann eine Datei gmon.out, die durch entsprechende Tools (vgl. Kap ) ausgewertet werden kann Instrumentierung auf Objekt Ebene Diese Art der Instrumentierung erfolgt nach dem Übersetzen des Originalcodes und vor dem Linkervorgang. Dabei werden die existierenden Objektdateien z.b. bei jedem Funktionsaufruf und -rücksprung mit Aufrufen auf Analyseroutinen gepatcht. Durch diesen zusätzlichen Code wird das Programm um eine Logik zur Ermittlung von Analysedaten erweitert. Auf dieser Weise können z.b. zuverlässige Informationen über die Ausführungszeit und die Aufrufsreihenfolge von Funktionen ermittelt werden. Zusammenfassung der Vor- und Nachteile: + Der Code kann durch entsprechende Tools automatisch instrumentiert werden. + Diese Methode liefert zuverlässige ergebnisse (im Gegensatz zum Sampling, vgl ). Der Quellcode muss neu übersetzt werden. Das instrumentierte Programm läuft langsamer Instrumentierung zur Laufzeit Eine weitere Profilingmethode ist die Simulation. Bei dieser Methode wird die Ausführung des Zielprogramms bei einem (mehr oder weniger zuverlässigen) Modell der Zielplattform simuliert [WEIDENDORFER 04, Seite 2]. D.h die Instruktionen des Quellprogramms werden nicht direkt (durch die CPU) ausgeführt, sondern durch den Simulator der Zielplattform. Je detaillierter das 20

21 2. PROFILING Modell, desto genauer sind die berechneten Ausführungszeiten. Jedoch kann die Simulationszeit in der Praxis erheblich grösser werden. Bei dieser Methode ist eine Neuübersetzung des Quellprogramms auch nicht notwendig Sampling vs. Instrumentierung Die Sampling Technik liefert keine genaue Ergebnisse, da sie auf statistiche Messungen beruht. Durch wiederholtes Profiling des Programms kann eventuell die Approximierung verbessert werden. Fall aber genaue Ergebnisse verlangt sind, ist die Instrumentierung besser geeignet. Die vollständige Code- Implementierung ist jedoch bei großen Programmen wegen des verursachten Overheads nicht praktisch. Deswegen ist es wenn möglich ratsam, zuerst die Sampling Technik anzuwenden um die Zeitintensiven Routinen zu erkennen. Erst dann kann man gezielt nur diese Funkionen instrumentieren, um genaue Werte über die jeweiligen Ausführungszeiten zu bekommen. 21

22 PROFILINGTECHNIKEN

23 3. CODE PROFILER Kapitel 3 Code Profiler Im Kapitel 2 wurden verschiedene Methoden beschrieben mit denen es möglich ist, eine Anwendung zu Profilen. Ein Tool dessen Funktion die Untersuchung einer Anwendung während ihrer Laufzeit ist, wird Profiler genannt. Profiler sind meistens für bestimmte Programmiersprachen und Plattformen zugeschnitten. Da eine Optimierung sowohl auf der Linux als auch auf der Windows Plattform erwünscht waren, wurden zu Beginn der Diplomarbeit mehrere Profiler unter Linux und Windows evaluiert und verglichen. 3.1 Code Profiler unter Linux Die Auswahl an Profiler unter Linux ist nicht so groß wie unter Windows. Trotzdem gibt es verschiedene Tools zur Performanceanalyse, welche auf unterschiedlichen Methoden beruhen. Darunter zählt man gprof, OProfile und Valgrind gprof Beschreibung Der GNU Profiler (gprof) ist in den meisten Unix Systemen schon vorhanden, da er zum Paket GNU Binutils gehört. Dieses Tool wird in Kombination mit gcc oder mit g++ verwendet. Dabei erfolgt das Profiling in 3 Schritten: Zuerst wird das zu analysierende Programm mit gcc (bzw. g++) mit der Option -pg kompiliert und gelinkt (Listing 3.1). Dies führt dazu, dass der Kompiler zusätzlichem Code zur Ausgabe von Profilinginformationen [MAN 03, Sektion 1] in die ausführbare Datei hinzufügt. Es ist auch nützlich, die Option -g zu verwenden um das erzeugte Profil mit Debuginformationen (z.b. Symbolnamen) zu ergänzen. Dann wird das Programm wie gewohnt ausgeführt und periodisch (100 mal pro Sekunde) werden Profilingdaten gesammelt. Erst bei der sauberen Terminierung des Programms 23

24 3.1. CODE PROFILER UNTER LINUX (mit exit() oder return) wird eine Datei gmon.out generiert ([GRAHAM 82, Seite 18-3]). Anschliessend werden die Profilingdaten aus der Datei gmon.out mittels gprof ausgewertet. [ ] $ [ ] $ l s CallGraphNoThread. cpp [ ] $g++ g pg CallGraphNoThread. cpp o callgraph nothreads [ ] $ l s CallGraphNoThread. cpp callgraph nothreads [ ] $. / c allgraph nothreads [ ] $ l s CallGraphNoThread. cpp gmon. out callgraph nothreads Listing 3.1 Übersetzung einer Anwendung mit Profilingfunktionalität gprof unterstützt 3 verschiedene Arten von Profilen: eine tabellarische Auflistung von Funktionen mit zugehörigen Profilinginformationen (sog. flat profile, vgl. Listing 3.2), eine tabellarische Auflistung von Funktionen, in welcher die Aufrufsreihenfolge dieser Funktionen im Vordergrund steht (sog. call graph, vgl. Listing 3.3), eine tabellarische Darstellung des Quellcodes, beim welcher die ausgeführten Codezeilen mit Profilinginformationen versehen sind (vgl. Listing 3.4). [ ] $gprof callgraph nothreads p b Flat p r o f i l e : Each sample counts as 0.01 seconds. % cumulative s e l f s e l f t o t a l time seconds seconds c a l l s s / c a l l s / c a l l name c a l l g r a p h ( ) methoda( bool ) methodb ( bool ) methodc ( ) [ ] $ Listing 3.2 Ein flat profile mit gprof 24

25 3. CODE PROFILER Das obere flat profile (Listing 3.2) lässt sich beispielsweise auf der folgenden Art interpretieren: Die Funktion callgraph besitzt eine durchschnittliche Ausführungszeit von 6.03 Sekunden und wurde während der Programmausführung 2 mal aufgefuren. Die Ausführungszeit dieser Funktion ist die höchste und beträgt 29,18% der gesamten Ausführungszeit des Programms. Die ganze Programmausführung hat insgesamt 12,06 Sekunden gebraucht. [ ] $gprof callgraph nothreads c b no f l a t p r o f i l e Call graph g r a n u l a r i t y : each sample h i t c overs 2 byte ( s ) f o r 0.08% o f s e c s index % time s e l f c h i l d r e n c a l l e d name <spontaneous > [ 1 ] main [ 1 ] /2 c a l l g r a p h ( void ) [ 2 ] /2 main [ 1 ] [ 2 ] c a l l g r a p h ( void ) [ 2 ] /2 methoda( bool ) [ 3 ] /2 c a l l g r a p h ( void ) [ 2 ] [ 3 ] methoda( bool ) [ 3 ] /2 methodb ( bool ) [ 4 ] /2 methoda( bool ) [ 3 ] [ 4 ] methodb ( bool ) [ 4 ] /1 methodc ( ) [ 5 ] /1 methodb ( bool ) [ 4 ] [ 5 ] methodc ( ) [ 5 ] Index by f u n c t i o n name [ 3 ] methoda( bool ) [ 5 ] methodc ( ) [ 4 ] methodb ( bool ) [ 2 ] c a l l g r a p h ( void ) [ ] $ Listing 3.3 Ein call graph mit gprof Aus dem oberen Aufrufgraphen (Listing 3.3) ist im Index [4] zu sehen, dass die Funktion methodb durch methoda aufgerufen wurde und selbst methodc aufruft. Die Ausgabe von gprof kann auch auf eine bequeme Art mittels Hilfsanwendungen visualisierung werden. Abb. 3.1 zeigt z.b. die Darstellung des Aufrufgraphen mit dem Tool kprof. 25

Ferienakademie 2009. Programmierkonzepte für Multi-Core Rechner. Tools: Profiler

Ferienakademie 2009. Programmierkonzepte für Multi-Core Rechner. Tools: Profiler Ferienakademie 2009 Programmierkonzepte für Multi-Core Rechner Tools: Profiler Gliederung Einführung Aufgaben eines Profilers Techniken von Profilern Code Instrumentation Instruction Simulation Hardware

Mehr

WCET-Analyseverfahren in der automobilen Softwareentwicklung

WCET-Analyseverfahren in der automobilen Softwareentwicklung WCET-Analyseverfahren in der automobilen Softwareentwicklung Martin Däumler 1 Robert Baumgartl 2 Matthias Werner 1 1 Technische Universität Chemnitz 2 HTW Dresden 28. November 2008 M. Däumler et al (TUC,

Mehr

SC18IM700-Tester v1.0. 1. Einleitung

SC18IM700-Tester v1.0. 1. Einleitung SC18IM700-Tester v1.0 1. Einleitung Der SC18IM700-Tester ist ein mittels Visual Studio.NET und in der Programmiersprache C# entwickeltes Programm. Es lehnt sich an der Funktion eines einfachen Terminal-

Mehr

DocuWare unter Windows 7

DocuWare unter Windows 7 DocuWare unter Windows 7 DocuWare läuft unter dem neuesten Microsoft-Betriebssystem Windows 7 problemlos. Es gibt jedoch einige Besonderheiten bei der Installation und Verwendung von DocuWare, die Sie

Mehr

ISA Server 2004 - Best Practice Analyzer

ISA Server 2004 - Best Practice Analyzer ISA Server 2004 - Best Practice Analyzer Die Informationen in diesem Artikel beziehen sich auf: Microsoft ISA Server 2004 Seit dem 08.12.2005 steht der Microsoft ISA Server 2004 Best Practice Analyzer

Mehr

MÖGLICHKEITEN UND GRENZEN IN DER DYNAMISCHEN CODEANALYSE VON C++ SOFTWARE. Von Matthias Neumann

MÖGLICHKEITEN UND GRENZEN IN DER DYNAMISCHEN CODEANALYSE VON C++ SOFTWARE. Von Matthias Neumann MÖGLICHKEITEN UND GRENZEN IN DER DYNAMISCHEN CODEANALYSE VON C++ SOFTWARE Von Matthias Neumann 19.01.2015 2/35 Inhaltsangabe Einleitung Ausprägungen der dynamischen Codeanalyse Debugging Logging Testing

Mehr

Systemmonitoring unter Linux

Systemmonitoring unter Linux Systemmonitoring unter Linux CPU-Counter B.Sc. Wirtsch.-Inform. Arno Sagawe, 29.06.10 Department of Informatics Scientifics Computing 1 Gliederung Systemmonitoring Protokolle und Dateien für das Systemmonitoring

Mehr

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse 1. Einführung 1.1 Eclipse Die Eclipse ist eine kostenlose integrierte Entwicklungsumgebung oder auch IDE genannt, (Abkürzung IDE, engl. Integrated development enviroment). Sie ist eine grafische Benutzeroberfläche

Mehr

FETX unter Windows Vista

FETX unter Windows Vista FETX unter Windows Vista Anwender-Dokumentation Stand: 01/03/2007 Programm + Datenservice GmbH Mühlenstraße 22 27356 Rotenburg Telefon (04261) 855 500 Telefax (04261) 855 571 E-Mail: info@pds.de Copyright

Mehr

AN025. Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der CPU-Auslastung im Echtzeitbetrieb

AN025. Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der CPU-Auslastung im Echtzeitbetrieb AN025 Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der Autor: HB AN025.DOC (6 Seiten) 1. Definition Im folgenden wie auch in allen anderen Sorcus Schriften werden folgende Kurzbezeichnungen verwendet:

Mehr

Benutzerdokumentation Hosted Backup Services Client

Benutzerdokumentation Hosted Backup Services Client Benutzerdokumentation Hosted Backup Services Client Geschäftshaus Pilatushof Grabenhofstrasse 4 6010 Kriens Version 1.1 28.04.2014 Inhaltsverzeichnis 1 Einleitung 4 2 Voraussetzungen 4 3 Installation 5

Mehr

UART-Kommunikation mit dem Atmel AVR

UART-Kommunikation mit dem Atmel AVR Fachbereich Elektrotechnik und Informatik Labor für Angewandte Informatik und Datenbanken Praktikum Automatisierung / Echtzeitregelung (BAU/BER) Prof.Dr.-Ing. Coersmeier UART-Kommunikation mit dem Atmel

Mehr

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10

Prototypvortrag. Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning. Projektseminar WS 2009/10 Prototypvortrag Exploiting Cloud and Infrastructure as a Service (IaaS) Solutions for Online Game Service Provisioning Projektseminar WS 2009/10 Eugen Fot, Sebastian Kenter, Michael Surmann AG Parallele

Mehr

und von mehreren PCs nutzen Nr. 070101

und von mehreren PCs nutzen Nr. 070101 Was ist denn eigentlich dieser SComm-Treiber? Der Saia Communication Driver kurz SComm-Treiber dient verschiedenen Programmen der Saia PG5 (z.b. Online Configurator, Debugger, Fupla, SEdit, Watch Window

Mehr

WI EDI Solution. Stand 17.02.2012

WI EDI Solution. Stand 17.02.2012 WI EDI Solution Stand 17.02.2012 WIAG Überblick 2011 - SAP, SAP BW, SAP SEM/BPS, SAP BPC, SAP R/3, ABAP, Netweaver sind eingetragene Warenzeichen der SAP AG, Walldorf Folie 1 Inhalt Was ist WIEDIS? IDOC

Mehr

Performance und Bandbreitenmanagement Tests Version 10.01.2005. MuSeGa

Performance und Bandbreitenmanagement Tests Version 10.01.2005. MuSeGa Berner Fachhochschule Hochschule für Technik und Informatik HTI Performance und Bandbreitenmanagement Tests Version 10.01.2005 Diplomarbeit I00 (2004) MuSeGa Mobile User Secure Gateway Experte: Andreas

Mehr

GeoShop Netzwerkhandbuch

GeoShop Netzwerkhandbuch Technoparkstrasse 1 8005 Zürich Tel.: 044 / 350 10 10 Fax.: 044 / 350 10 19 GeoShop Netzwerkhandbuch Zusammenfassung Diese Dokumentation beschreibt die Einbindung des GeoShop in bestehende Netzwerkumgebungen.

Mehr

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise Coma I Einleitung 1 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise 2 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

PADS 3.0 Viewer - Konfigurationen

PADS 3.0 Viewer - Konfigurationen PADS 3.0 Viewer - Konfigurationen Net Display Systems (Deutschland) GmbH - Am Neuenhof 4-40629 Düsseldorf Telefon: +49 211 9293915 - Telefax: +49 211 9293916 www.fids.de - email: info@fids.de Übersicht

Mehr

VMware Schutz mit NovaBACKUP BE Virtual

VMware Schutz mit NovaBACKUP BE Virtual VMware Schutz mit NovaBACKUP BE Virtual Anforderungen, Konfiguration und Restore-Anleitung Ein Leitfaden (September 2011) Inhalt Inhalt... 1 Einleitung... 2 Zusammenfassung... 3 Konfiguration von NovaBACKUP...

Mehr

Hauptseminar Softwaretechnik. Profiler unter Linux

Hauptseminar Softwaretechnik. Profiler unter Linux Hauptseminar Softwaretechnik Profiler unter Linux Daniel Zinn 17. Januar 2004 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung................................. 3 2 Laufzeitbestimmung einzelner Module..................

Mehr

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

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

Mehr

Handbuch PCI Treiber-Installation

Handbuch PCI Treiber-Installation Handbuch PCI Treiber-Installation W&T Release 1.1, Dezember 2004 12/2004 by Wiesemann & Theis GmbH Microsoft und Windows sind eingetragene Warenzeichen der Microsoft Corporation Irrtum und Änderung vorbehalten:

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 WebSphere Application Server Teil 4 Leistungsverhalten el0100 copyright W. G. Spruth,

Mehr

Grundlagen der Informatik - 6. Praktikum

Grundlagen der Informatik - 6. Praktikum Grundlagen der Informatik - 6. Praktikum In diesem Praktikum soll es neben der Anwendung von Funktionsdefinitionen auch um einfache Prinzipien der verteilten Quelltext-Strukturierung gehen. Diese spielt

Mehr

. TYPO3-Plug-in u:cris

. TYPO3-Plug-in u:cris . TYPO3-Plug-in u:cris Zentraler Informatikdienst der Universität Wien Stand: Jänner 2014 TYPO3-Version 4.5 Dieses Handbuch ist eine Übersicht zum Einsatz des TYPO3-Plug-ins u:cris. Naturgemäß würde die

Mehr

Performance Testing Seminar zu Software-Tools für die Numerische Mathematik

Performance Testing Seminar zu Software-Tools für die Numerische Mathematik MÜNSTER Performance Testing Seminar zu Software-Tools für die Numerische Mathematik 15. Oktober 2014 MÜNSTER Performance Testing 2 /46 Mein Programm soll schneller werden! Wie geht das? MÜNSTER Performance

Mehr

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07 ExpandIT Client Control Kurzanleitung Stand 14.11.07 Inhaltsverzeichnis ExpandIT Client Control 3 Installationshinweise 3 System-Voraussetzungen 3 Installation 3 Programm starten 6 Programm konfigurieren

Mehr

Medienkompetenz, Grafik und DTP

Medienkompetenz, Grafik und DTP VO 340381 Informationsdesign; Medienkompetenz, Grafik und DTP Zentrum für Translationswissenschaft Letztes Mal sprachen wir über: Computer Aufbau Software Was ist Software? Software Soft im Sinne von weich/veränderbar

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Der Task-Manager von Windows 7

Der Task-Manager von Windows 7 Der von Windows 7 Der kann mehr als nur Programme abschießen: Er hilft beim Konfigurieren der Windows-Dienste und beim Lösen von Problemen. Der Windows wird oft nur dazu benutzt, um hängende Anwendungen

Mehr

Webbasierte Installation des Cisco AnyConnect VPN-Client 3.1 unter Linux

Webbasierte Installation des Cisco AnyConnect VPN-Client 3.1 unter Linux Webbasierte Installation des Cisco AnyConnect VPN-Client 3.1 unter Linux Voraussetzungen: Die Installation des Clients setzt eine graphische Benutzeroberfläche voraus. Der Client selbst sowie die Installation

Mehr

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation

Mehr

Embedded-Linux-Seminare. Toolchains

Embedded-Linux-Seminare. Toolchains Embedded-Linux-Seminare Toolchains 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 Kopier-Rechte

Mehr

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung The ToolChain Grafisches Debugging mit der QtCreator Entwicklungsumgebung geschrieben von Gregor Rebel 2014-2015 Hintergrund Neben dem textuellen Debuggen in der Textkonsole bieten moderene Entwicklungsumgebungen

Mehr

Profiling und Coverage mit GNU und Bare Embedded Systems

Profiling und Coverage mit GNU und Bare Embedded Systems Profiling und Coverage mit GNU und Bare Embedded Systems Life is too short for bad tools! Prof. Erich Styger erich.styger@hslu.ch +41 41 349 33 01 Coverage und Profiling Coverage: Analyse der Testabdeckung

Mehr

PowerBridge MSSQL Beta

PowerBridge MSSQL Beta SoftENGINE PowerBridge MSSQL Beta Dokumentation Thomas Jakob 17.04.2011 Inhalt Einrichtung der SQL Umgebung... 3 SQL-Server Installieren... 3 BüroWARE Installieren... 3 PowerBridge-SQL Modus einrichten...

Mehr

2 USBundLinuxhotplug. 2.1 Eigenschaften von USB. In diesem Kapitel lernen Sie. das USB-Schichtenmodell kennen.

2 USBundLinuxhotplug. 2.1 Eigenschaften von USB. In diesem Kapitel lernen Sie. das USB-Schichtenmodell kennen. 2 USBundLinuxhotplug In diesem Kapitel lernen Sie das USB-Schichtenmodell kennen. die Kernelmodule für USB-Treiber kennen. wie Sie USB-Geräte unter Linux verwenden. dashotplug-system von Linux kennen.

Mehr

Installation der SAS Foundation Software auf Windows

Installation der SAS Foundation Software auf Windows Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software

Mehr

Von Netop ProtectOn 2 auf Netop ProtectOn Pro umstellen

Von Netop ProtectOn 2 auf Netop ProtectOn Pro umstellen Von Netop ProtectOn 2 auf Netop ProtectOn Pro umstellen Wenn Sie Benutzer von ProtectOn 2 sind und überlegen, auf ProtectOn Pro upzugraden, sollten Sie dieses Dokument lesen. Wir gehen davon aus, dass

Mehr

VORSTELLUNG DER DIPLOMARBEIT

VORSTELLUNG DER DIPLOMARBEIT 1 VORSTELLUNG DER DIPLOMARBEIT Thomas Werner Inhaltsverzeichnis 2 Thema Aufgabenstellung Anwendungsdebugging Threads Remote Debugging Implementierung Ausblick Quellen 3 Thema Untersuchung von Funktionsabläufen

Mehr

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen L AKTUEL ZU fritz JOBST JAVA 8 PROGRAMMIEREN IN JAVA 7. Auflage Im Internet: Alle Beispielprogramme und Lösungen 4 1 Der Einstieg in Java keinem Fall zulässig. Die Schreibweisen Hello.java für den Namen

Mehr

Rembo/mySHN. Version 2.0 Kurzanleitung. das selbstheilende Netzwerk. Stand: 01.05.2006. my selfhealing network

Rembo/mySHN. Version 2.0 Kurzanleitung. das selbstheilende Netzwerk. Stand: 01.05.2006. my selfhealing network Rembo/mySHN Version 2.0 Kurzanleitung das selbstheilende Netzwerk my selfhealing network Stand: 01.05.2006 Postanschrift: SBE network solutions GmbH Edisonstrasse 21 74076 Heilbronn IV Inhalt Kurzanleitung...i

Mehr

Profiling unter Linux

Profiling unter Linux Profiling unter Linux Von langsam nach schnell Hynek Schlawack schlawack@variomedia.de 3. Februar 2010 Ich 2004 Praktika bei u.a. Netopsystem AG (jetzt NOS Micro Ltd.) seit 2004 mit Unterbrechungen bei

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

DRESDEN. Ermitteln von Sprunghöhen mit einem Windows Phone. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht.

DRESDEN. Ermitteln von Sprunghöhen mit einem Windows Phone. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht DRESDEN Ermitteln von Sprunghöhen mit einem Windows Phone Felix Guttbier Schule: Gymnasium Brandis Jugend forscht 2014 ERMITTELN VON SPRUNGHÖHEN

Mehr

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Deutsches Krebsforschungszentrum, for Processing Task within Threads on the Application Level Motivation

Mehr

3 Das benötigen Sie. 3.1 GIMP unter Linux nutzen

3 Das benötigen Sie. 3.1 GIMP unter Linux nutzen 13 3 Das benötigen Sie GIMP ist auf nahezu allen Rechner lauffähig, auf denen ein UNIX- Betriebssystem installiert ist. Im Gegensatz zu vielen Dienstprogrammen und Anwendungen, die sich effizient und sparsam

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

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

Kompilieren und Linken

Kompilieren und Linken Kapitel 2 Kompilieren und Linken Bevor wir uns auf C++ selbst stürzen, brauchen wir einiges Vorgeplänkel, wie man komfortabel ein größeres C++- kompilieren kann. Mit Java stellt sich der Kompiliervorgang

Mehr

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt.

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt. Python Installation 1 Vorbereitung Diese Anleitung ist für Windows ausgelegt. 1.1 Download Python kann online unter https://www.python.org/downloads/ heruntergeladen werden. Hinweis: Im CoderDojo verwenden

Mehr

SOFTWARE FÜR PRG-APPLIKATIONEN

SOFTWARE FÜR PRG-APPLIKATIONEN SOFTWARE FÜR PRG-APPLIKATIONEN Autor: Frank Bergmann Letzte Änderung: 04.12.2014 09:09 1 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis... 2 2 Allgemeines... 3 3 Installation und Programmaufruf... 3 4 Einstellungen...

Mehr

Microsoft Office 2010

Microsoft Office 2010 Microsoft Office 2010 Office-Anpassungstool Author(s): Paolo Sferrazzo Version: 1.0 Erstellt am: 15.06.12 Letzte Änderung: - 1 / 12 Hinweis: Copyright 2006,. Alle Rechte vorbehalten. Der Inhalt dieses

Mehr

Anwenderdokumentation PersoSim

Anwenderdokumentation PersoSim Anwenderdokumentation PersoSim Die nachfolgende Anwenderdokumentation soll dem Anwender bei der Installation und den ersten Schritten im Umgang mit PersoSim helfen. Installation Grundvoraussetzung für

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann Einführung in das Microsoft.NET-Framework Programmiersprache C# 02: Visual Studio / Hello World Boris Hülsmann 23.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1 Automatisierte Erstellung von Software-Builds und -dokumentationen Teil 1 Autoren: Hagedorn, Robert; Denninger, Oliver Kontakt: {hagedorn denninger}@fzi.de Web: http://zfs.fzi.de Ort, Datum: Karlsruhe,

Mehr

Installation von SAS unter Windows

Installation von SAS unter Windows 1. Vorbemerkung Installation von SAS unter Windows Die Installation von SAS unter Windows - hier am Beispiel von SAS 9.3 (Landeslizenz Niedersachsen) auf einem PC mit 32-Bit-Win7 - dauert relativ lange,

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

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

2008 Jiri Spale, Programmierung in eingebetteten Systemen 1

2008 Jiri Spale, Programmierung in eingebetteten Systemen 1 2008 Jiri Spale, Programmierung in eingebetteten Systemen 1 NetX - Einführung 2008 Jiri Spale, Programmierung in eingebetteten Systemen 2 NetX is... a highly integrated network controller with a new system

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

KODAK D4000 Duplex Photo Printer-Treiber für WINDOWS

KODAK D4000 Duplex Photo Printer-Treiber für WINDOWS ReadMe_Driver.pdf 11/2011 KODAK D4000 Duplex Photo Printer-Treiber für WINDOWS Beschreibung Der D4000-Druckertreiber ist ein MICROSOFT-Druckertreiber, der speziell für die Verwendung mit dem D4000 Duplex

Mehr

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

Access 2013. Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013 Access 2013 Susanne Weber 1. Ausgabe, 1. Aktualisierung, Juni 2013 Grundlagen für Anwender ACC2013 2 Access 2013 - Grundlagen für Anwender 2 Mit Datenbanken arbeiten In diesem Kapitel erfahren Sie was

Mehr

VMscope GmbH. Plugins entwickeln für den VM Slide Explorer 2010. Daniel Heim, 17.08.2011 Seite 1/15

VMscope GmbH. Plugins entwickeln für den VM Slide Explorer 2010. Daniel Heim, 17.08.2011 Seite 1/15 Plugins entwickeln für den VM Slide Explorer 2010 Daniel Heim, 17.08.2011 Seite 1/15 Inhaltsverzeichnis 1 Allgemeines... 3 2 Ein Plugin schreiben... 4 3 Ein Plugin registrieren... 11 4 Aktivieren von Plugins...

Mehr

Remote Administration von Windows Servern mit Microsoft Terminal Services und OpenSSH

Remote Administration von Windows Servern mit Microsoft Terminal Services und OpenSSH Remote Administration von Windows Servern mit Microsoft Terminal Services und OpenSSH von Dominick Baier (dbaier@ernw.de) und Jens Franke (jfranke@ernw.de) 1 Einleitung Dieses Dokument behandelt die flexible

Mehr

Einführung in Automation Studio

Einführung in Automation Studio Einführung in Automation Studio Übungsziel: Der links abgebildete Stromlaufplan soll mit einer SPS realisiert werden und mit Automation Studio programmiert werden. Es soll ein Softwareobjekt Logik_1 in

Mehr

TwinCAT HMI Application

TwinCAT HMI Application New Automation Technology TwinCAT HMI Application 08.05.2010 1 Überblick Einleitung Übersicht Möglichkeiten der Applikation Struktur und Komponenten Komponenten für das Microsoft Visual Studio Anleger

Mehr

Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten

Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten Martin Däumler Matthias Werner Lehrstuhl Betriebssysteme Fakultät für Informatik

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

2. Braunschweiger Linux-Tage. Vortrag über RAID. von. Thomas King. http://www.t-king.de/linux/raid1.html. 2. Braunschweiger Linux-Tage Seite 1/16

2. Braunschweiger Linux-Tage. Vortrag über RAID. von. Thomas King. http://www.t-king.de/linux/raid1.html. 2. Braunschweiger Linux-Tage Seite 1/16 2. Braunschweiger Linux-Tage Vortrag über RAID von Thomas King http://www.t-king.de/linux/raid1.html 2. Braunschweiger Linux-Tage Seite 1/16 Übersicht: 1. Was ist RAID? 1.1. Wo wurde RAID entwickelt? 1.2.

Mehr

Praktikum: Allgemeine Hinweise

Praktikum: Allgemeine Hinweise Praktikum: Allgemeine Hinweise Ziel dieses Praktikums ist es, die in der Vorlesung erworbenen Kenntnisse zu vertiefen und praktisch anzuwenden, sowie Sie zum Selbststudium anzuleiten. Außerdem sollen Sie

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

TELEFONIE-INTEGRATION MIT CETIS

TELEFONIE-INTEGRATION MIT CETIS A B A C U S TELEFONIE-INTEGRATION MIT CETIS August 2006/mak Diese Unterlagen sind urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung der Unterlagen,

Mehr

IVE-W530BT. Bluetooth Software Update Manual mit Windows 7 09.03.2015

IVE-W530BT. Bluetooth Software Update Manual mit Windows 7 09.03.2015 Bluetooth Software Update Manual mit Windows 7 IVE-W530BT 1 Einleitung In der Anleitung wird die Vorgehensweise zum aktualisieren der Radio Bluetooth Firmware beschrieben. Bitte beachten Sie alle Warnhinweise

Mehr

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8 Byte-Taxi Bedienungsanleitung Seite 1 von 8 Inhaltsverzeichnis 1. Beschreibung 3 2. Systemvoraussetzungen 4 3. Installationsanleitung 5 4. Bedienung 6 5. Infos & Kontakt 8 Seite 2 von 8 1. Beschreibung

Mehr

09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2

09.10.2015. 02.10.2015 + 07.10.2015 Seite 1. 02.10.2015 + 07.10.2015 Seite 2 02.10.2015 + 07.10.2015 Seite 1 02.10.2015 + 07.10.2015 Seite 2 1 Anzahl der Klassenarbeiten: Mindestens zwei Klassenarbeiten pro Halbjahr (= 4 KA pro Jahr) Im ersten Ausbildungsjahr gibt es jedoch kein

Mehr

1. Einleitung. 2. Einrichtung. 1.1 Was ist distcc? 2.1 Abhängigkeiten. 2.2 Installing Distcc. 2.3 Portage so einrichten, dass es Distcc benutzt

1. Einleitung. 2. Einrichtung. 1.1 Was ist distcc? 2.1 Abhängigkeiten. 2.2 Installing Distcc. 2.3 Portage so einrichten, dass es Distcc benutzt >> Gentoo Distcc Dokumentation [Bitte Kapitel auswählen] 1. Einleitung 1.1 Was ist distcc? Distcc ist ein Programm, welches sich um die Verteilung von Kompilierungsprozessen an teilnehmende Rechner kümmert.

Mehr

Informatik für den Satellitenbau. Toolchains und Crosscompiler

Informatik für den Satellitenbau. Toolchains und Crosscompiler Informatik für den Satellitenbau Toolchains und Crosscompiler Folie 1 Inhalt GNU-Toolchain Crosscompiler Zusammenfassung Folie 2 GNU Toolchain GNU Make GNU Compiler Collection (GCC) GNU Binutils GNU Debugger

Mehr

IBM SPSS Statistics Version 22. Installationsanweisungen für Windows (Lizenz für gleichzeitig angemeldete Benutzer)

IBM SPSS Statistics Version 22. Installationsanweisungen für Windows (Lizenz für gleichzeitig angemeldete Benutzer) IBM SPSS Statistics Version 22 Installationsanweisungen für Windows (Lizenz für gleichzeitig angemeldete Benutzer) Inhaltsverzeichnis Installationsanweisungen....... 1 Systemanforderungen........... 1

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

Wie man eigene Programme erstellt

Wie man eigene Programme erstellt Kapitel 3 Wie man eigene Programme erstellt In diesem Kapitel geht es darum, sich mit einem Compiler vertraut zu machen. Dabei erfahren Sie, wie Sie eigene Programme auf den Systemen Windows und Linux

Mehr

Handbuch. MiniRIS-Monitor

Handbuch. MiniRIS-Monitor Handbuch MiniRIS-Monitor Ersteller: EWERK MUS GmbH Erstellungsdatum: 09.05.2011 Inhalt 1 Vorwort... 3 2 Installation... 4 2.1 Voraussetzungen... 4 2.2 Installation... 4 3 Einstellungen... 5 4 Handhabung...

Mehr

Die Hifidelio App Beschreibung

Die Hifidelio App Beschreibung Die Hifidelio App Beschreibung Copyright Hermstedt 2010 Version 1.0 Seite 1 Inhalt 1. Zusammenfassung 2. Die Umgebung für die Benutzung 3. Der erste Start 4. Die Ansicht Remote Control RC 5. Die Ansicht

Mehr

Einige Grundlagen zu OpenMP

Einige Grundlagen zu OpenMP Einige Grundlagen zu OpenMP Stephanie Friedhoff, Martin Lanser Mathematisches Institut Universität zu Köln 22. Juni 2016 Überblick Was ist OpenMP? Basics Das OpenMP fork-join-modell Kompilieren und Ausführen

Mehr

protokolliert alle Anmeldungen am Server direkt

protokolliert alle Anmeldungen am Server direkt Logdateien in der paedml 1 Überblick 1.1 Systemrelevante Logdateien unter Linux Systemrelevante Log Dateien liegen weitgehend in /var/log bzw. einem Unterverzeichnis, das mit dem Namen des Dienstes benannt

Mehr

Übung 8: Semaphore in Java (eigene Implementierung)

Übung 8: Semaphore in Java (eigene Implementierung) Übung 8: Semaphore in Java (eigene Implementierung) Ziel der Übung: Diese Übung dient dazu, eine eigene Implementierung einer Semaphore-Klasse in der Programmiersprache Java kennenzulernen. Anschließend

Mehr

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java- Eckart Modrow LEGO-Mindstorms-Roboter S. 1 LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java- Benutzung in einer Programmierumgebung Für die LEGO-Roboter stehen unter allen gängigen Betriebssystemen

Mehr

IBM SPSS Data Access Pack Installationsanweisung für Windows

IBM SPSS Data Access Pack Installationsanweisung für Windows IBM SPSS Data Access Pack Installationsanweisung für Windows Inhaltsverzeichnis Kapitel 1. Übersicht.......... 1 Einführung............... 1 Bereitstellen einer Datenzugriffstechnologie.... 1 ODBC-Datenquellen...........

Mehr

Optimierung des Energieverbrauchs eingebetteter Software

Optimierung des Energieverbrauchs eingebetteter Software Optimierung des Energieverbrauchs eingebetteter Software Welchen Einfluss hat eine Programmänderung auf den Energiebedarf einer Applikation? Welcher Programmteil verursacht den größten Energieverbrauch?

Mehr

Call - ID. Call-ID. Leitfaden Installation und Konfiguration CALL-ID Stand : 30. Mai 2008

Call - ID. Call-ID. Leitfaden Installation und Konfiguration CALL-ID Stand : 30. Mai 2008 Call - ID Call-ID ist ein Programm zur direkten Anzeige von eingehenden Anrufen durch automatisches öffnen der entsprechenden Tobit-Adresskarte oder Wahlweise separatem Pop-Up. Zudem erstellt Call-ID eine

Mehr

Acronis TrueImage (Version 7.0) Benutzerführung. genutzte Quelle: http://www.acronis.de / Hilfedatei zum Programm Acronis TrueImage Version 7.

Acronis TrueImage (Version 7.0) Benutzerführung. genutzte Quelle: http://www.acronis.de / Hilfedatei zum Programm Acronis TrueImage Version 7. Hier finden Sie von der Firma GriCom Wilhelmshaven eine, um ein Backup Ihres Computers / Ihrer Festplatten zu erstellen und dieses Backup bei Bedarf zur Wiederherstellung zu nutzen. Diese Bedienerführung

Mehr

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc

Mehr

Dokumentation. juris Autologon-Tool. Version 3.1

Dokumentation. juris Autologon-Tool. Version 3.1 Dokumentation juris Autologon-Tool Version 3.1 Inhaltsverzeichnis: 1. Allgemeines... 3 2. Installation Einzelplatz... 3 3. Installation Netzwerk... 3 4. Konfiguration Netzwerk... 3 4.1 Die Autologon.ini...

Mehr