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

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

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

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

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

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

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

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

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

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

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

KURZANLEITUNG CLOUD BLOCK STORAGE

KURZANLEITUNG CLOUD BLOCK STORAGE KURZANLEITUNG CLOUD BLOCK STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung......Seite 03 2. Anlegen eines dauerhaften Block Storage...Seite 04 3. Hinzufügen von Block Storage

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

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

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

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

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage C# CLR CIL MCS ECMA-335 Linux.Ne t Was ist.net? Microsoft Homepage:.NET is the Microsoft Web services strategy to connect information, people, systems and devices through software. Mono Handbuch:.Net besteht

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10. Computergrafik 1 Übung, Wintersemester 2011 Eclipse Hands-On C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.12 1 Eclipse - Die IDE 1. Entwicklungsumgebung (IDE) herunterladen / installieren

Mehr

Remote Communications

Remote Communications HELP.BCFESDEI Release 4.6C SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher

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

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

Mehr

Erste Schritte mit Eclipse

Erste Schritte mit Eclipse Erste Schritte mit Eclipse März 2008, KLK 1) Java Development Kit (JDK) und Eclipse installieren In den PC-Pools der HAW sind der JDK und Eclipse schon installiert und können mit dem Application Launcher

Mehr

Implementierung der Jikes Research Virtual Machine

Implementierung der Jikes Research Virtual Machine Fakultät Informatik Institut für technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Implementierung der Jikes Research Virtual Machine Hauptseminar Technische Informatik

Mehr

S a t S e r v i c e Gesellschaft für Kommunikationssysteme mbh

S a t S e r v i c e Gesellschaft für Kommunikationssysteme mbh sat-nms Universal Network Management and Monitoring & Control System for Multimedia Ground Terminals Enhancement and Hardware Extension SatService GmbH Hardstraße 9 D- 78256 Steißlingen Tel 07738-97003

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

Makros erstellen und aufrufen Dr. V.Thormählen

Makros erstellen und aufrufen Dr. V.Thormählen Inhalt Mit Makros arbeiten... 2 Makro erstellen... 3 Makro aufrufen... 4 1. Tastenkürzel zuordnen... 4 2. Schnellzugriffsleiste anpassen... 6 3. Menüband anpassen... 8 Fazit... 11 Listings Listing 1: Codezeilen

Mehr

http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu

http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu gdb: debugging code In der Vorlesung hatte ich Teile von http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu und ein eigenes Beispiel diskutiert. Ein Debugger soll helfen Fehler im Programm, die sich

Mehr

1 Installationen. 1.1 Installationen unter Windows

1 Installationen. 1.1 Installationen unter Windows 1 Installationen Dieses Kapitel beschreibt die Installationen, die für die Nutzung von PHP und MySQL unter Windows, unter Ubuntu Linux und auf einem Mac mit OS X notwendig sind. 1.1 Installationen unter

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

Handbuch zu AS Connect für Outlook

Handbuch zu AS Connect für Outlook Handbuch zu AS Connect für Outlook AS Connect für Outlook ist die schnelle, einfache Kommunikation zwischen Microsoft Outlook und der AS Datenbank LEISTUNG am BAU. AS Connect für Outlook Stand: 02.04.2013

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Dokumentation mit Doxygen

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Dokumentation mit Doxygen Grundkurs C++ Dokumentation mit Doxygen Doxygen Überblick Grundkurs C++ 2 Doxygen doxygen g Erzeugt Doxyfile Konfigurationsdatei Kann mit Texteditor bearbeitet werden. doxygen Doxyfile Erzeugt Dokumentation

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

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Proseminar Objektorientiertes Programmieren mit.net und C# Florian Schulz Institut für Informatik Software & Systems Engineering Einführung Was hat Cross-Plattform

Mehr

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski

Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS. geschrieben von Oliver Botschkowski Ausarbeitung im Rahmen der PG Autolab zum Thema: OSEK 1 -OS geschrieben von Oliver Botschkowski 1 Offene Systeme und deren Schnittstelle für die Elektronik im Kraftfahrzeug 1 Oliver Botschkowski - OSEK-OS

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35

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

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

Einführung in COM. 04.04.2006 Seite 1

Einführung in COM. 04.04.2006 Seite 1 Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector

7.4 Analyse anhand der SQL-Trace. 7.3.5 Vorabanalyse mit dem Code Inspector 7.4 Analyse anhand der SQL-Trace 337 7.3.5 Vorabanalyse mit dem Code Inspector Der Code Inspector (SCI) wurde in den vorangegangenen Kapiteln immer wieder erwähnt. Er stellt ein paar nützliche Prüfungen

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

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

Parallels Plesk Panel. Firewall-Modul für Parallels Plesk Panel 10 für Linux/Unix. Administratorhandbuch

Parallels Plesk Panel. Firewall-Modul für Parallels Plesk Panel 10 für Linux/Unix. Administratorhandbuch Parallels Plesk Panel Firewall-Modul für Parallels Plesk Panel 10 für Linux/Unix Administratorhandbuch Copyright-Vermerk Parallels Holdings, Ltd. c/o Parallels International GmbH Vordergasse 59 CH-Schaffhausen

Mehr

DBUS Interprozess-Kommunikation für Embedded-Plattformen

DBUS Interprozess-Kommunikation für Embedded-Plattformen DBUS Interprozess-Kommunikation für Embedded-Plattformen Andreas Schwarz Neratec Solutions AG Firmenprofil Neratec Solutions AG Produkt-Entwicklungen für kundenspezifische elektronische Produkte Produkte

Mehr

[DIA] Webinterface 2.4

[DIA] Webinterface 2.4 [DIA] Webinterface 2.4 2 Inhalt Inhalt... 2 1. Einleitung... 3 2. Konzept... 4 2.1 Vorteile und Anwendungen des... 4 2.2 Integration in bestehende Systeme und Strukturen... 4 2.3 Verfügbarkeit... 5 3.

Mehr

Wer möchte, kann sein Programm auch auf echter Hardware testen

Wer möchte, kann sein Programm auch auf echter Hardware testen U4 3. Übungsaufgabe U4 3. Übungsaufgabe Grundlegendes zur Übung mit dem AVR-μC Register I/O-Ports AVR-Umgebung Peripherie U4.1 U4-1 Grundlegendes zur Übung mit dem AVR-mC U4-1 Grundlegendes zur Übung mit

Mehr

Technische Probleme lösen mit C/C++

Technische Probleme lösen mit C/C++ Technische Probleme lösen mit C/C++ Von der Analyse bis zur Dokumentation von Norbert Heiderich, Wolfgang Meyer 1. Auflage Hanser München 2010 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 42382

Mehr

Kurzanleitung CodeBlocks zur C-Programmierung. In dieser Kurzanleitung wird anhand zweier Beispiele beschrieben, wie C-Programme mit der

Kurzanleitung CodeBlocks zur C-Programmierung. In dieser Kurzanleitung wird anhand zweier Beispiele beschrieben, wie C-Programme mit der Fakultät für Ingenieurwissenschaften und Informatik Labor für Digital- und Mikroprozessortechnik, Juli 2015 Kurzanleitung CodeBlocks zur C-Programmierung In dieser Kurzanleitung wird anhand zweier Beispiele

Mehr

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

Jan Hendrik Bartels Seminar: Leistungsanalyse unter Linux

Jan Hendrik Bartels Seminar: Leistungsanalyse unter Linux Jan Hendrik Bartels Seminar: Leistungsanalyse unter Linux Jan H. Bartels XXX XXX XXX XXX XXX Einführung Leistungskennzahlen & Komponenten Methoden der Leistungsanalyse Zusammenfassung XXX XXX 23.06.2011

Mehr

Perzentile mit Hadoop ermitteln

Perzentile mit Hadoop ermitteln Perzentile mit Hadoop ermitteln Ausgangspunkt Ziel dieses Projektes war, einen Hadoop Job zu entwickeln, der mit Hilfe gegebener Parameter Simulationen durchführt und aus den Ergebnissen die Perzentile

Mehr

Embedded OS für ARM Cortex Microcontroller

Embedded OS für ARM Cortex Microcontroller Embedded OS für ARM Cortex Microcontroller RTOS Design, Timinganalyse und Test mit Core Simulation und Hardware Debugger Entscheidende Fragen für oder gegen RTOS Lohnt sich der Einsatz eines RTOS auch

Mehr

Programmieren. Wie entsteht ein Programm

Programmieren. Wie entsteht ein Programm Wie entsteht ein Programm 1/9 1. Schritt: Programmentwurf Der wichtigste Teil beim Erstellen eines Programms ist der Programmentwurf. Dabei wird das vorgegebene Problem analysiert, es wird ermittelt, welche

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

GUI Programmierung mit Qt

GUI Programmierung mit Qt GUI Programmierung mit Qt C++ vs. JAVA Norman Wolf 22.04.05 GUI Programmierung mit Qt 1 Einleitung Qt wird von der norwegischen Firma Trolltech entwickelt Es ist kommerzielle Software, die aber von Trolltech

Mehr

Grundlagen der Informatik Übungen 1.Termin

Grundlagen der Informatik Übungen 1.Termin Grundlagen der Informatik Übungen 1.Termin Dr. Ing Natalia Currle-Linde Institut für Höchstleistungsrechnen 1 Kurzvorstellung Dr.-Ing. Natalia Currle-Linde linde@hlrs.de Institut für Höchstleistungsrechnen

Mehr

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit 1 Hochverfügbarkeit Lernziele: Network Load Balancing (NLB) Failover-Servercluster Verwalten der Failover Cluster Rolle Arbeiten mit virtuellen Maschinen Prüfungsanforderungen von Microsoft: Configure

Mehr

Debugging mit uclinux auf ARM-Prozessoren

Debugging mit uclinux auf ARM-Prozessoren Debugging mit uclinux auf ARM-Prozessoren Thema der Diplomarbeit betreut durch Steffen Köhler 15.06.2005 TU Dresden, Institut für Technische Informatik 1 µclinux µ für micro und C für Controller sprich:

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

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

Projekt für Systemprogrammierung WS 06/07

Projekt für Systemprogrammierung WS 06/07 Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: h_bellamin@web.de Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware

Mehr

Einführung in Betriebssysteme

Einführung in Betriebssysteme Einführung in Betriebssysteme APPLE ios Entwicklung von ios Entwickelt auf der Basis von MacOS X UNIX Vorgestellt am 9.1.2007 Zusammen mit iphone Markenname von Cisco Internetwork Operating System Für

Mehr

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten Aktuelle Themen der Wirtschaftsinformatik Zusammenfassung 09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten 1 Serverseitige Webprogrammierung

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

Forms2Net Die neue Migrations-Software

Forms2Net Die neue Migrations-Software Forms2Net Die neue Migrations-Software Forms2Net transportiert Ihre Oracle Forms Anwendungen perfekt nach Microsoft.NET Darauf haben viele gewartet. Vielleicht auch Sie! Forms2Net ist ein Produktpaket,

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

ERANGER 3.5.4 (FREEBSD) ERANGER 3.6.4 (RHEL) Release Announcement

ERANGER 3.5.4 (FREEBSD) ERANGER 3.6.4 (RHEL) Release Announcement ERANGER 3.5.4 (FREEBSD) ERANGER 3.6.4 (RHEL) Release Announcement 6. November 2014 2014 Junisphere Systems AG Junisphere Systems AG Glatt Tower, P.O. Box CH-8301 Glattzentrum Tel. +41 (0)43 443 31 80 info@junisphere.net

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

Übung 4: Schreiben eines Shell-Skripts

Übung 4: Schreiben eines Shell-Skripts Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende

Mehr

Vista Tuning für Anfänger

Vista Tuning für Anfänger Vista Tuning für Anfänger [ebook] Da mir mein Windows Vista trotz ausreichender Hardware zu langsam geworden ist, habe ich mich mit dem Thema Vista Tuning befasst. Herausgekommen ist das Vista Tuning für

Mehr

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002 Die L4-Mikrokern Mikrokern-Familie Hauptseminar Ansätze für Betriebssysteme der Zukunft 18.04.2002 Folie 1 Aufbau des Vortrags 1. Mikrokerne: Idee und Geschichte 2. L4: ein schneller Mikrokern 3. L4Linux:

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

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 7 Programmverstehen + Fehlersuche Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität

Mehr

Kurzanleitung zur Benutzung der Entwicklungsumgebung Code::Blocks für die Übung aus Programmieren 1 und 2

Kurzanleitung zur Benutzung der Entwicklungsumgebung Code::Blocks für die Übung aus Programmieren 1 und 2 Kurzanleitung zur Benutzung der Entwicklungsumgebung Code::Blocks für die Übung aus Programmieren 1 und 2 Institut für Mikroelektronik, TU Wien 8. Oktober 2009 Dieses Dokument ist für den schnellen Einstieg

Mehr

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM ÜBERSICHT Android Android Dalvik Virtuelle Maschine Android und Desktop Applikationen Android Entwicklung Tools R Activity

Mehr

Von SystemC zum FPGA in 7 Schritten. Kurzes Tutorial für die Synthese von SystemC Entwürfen auf dem ISMS Server der Hochschule

Von SystemC zum FPGA in 7 Schritten. Kurzes Tutorial für die Synthese von SystemC Entwürfen auf dem ISMS Server der Hochschule Von SystemC zum FPGA in 7 Schritten Kurzes Tutorial für die Synthese von SystemC Entwürfen auf dem ISMS Server der Hochschule Bremen. Mirko Kruse 21. November 2004 Inhalt 1 Einleitung...1 2 Benötigte Software...1

Mehr

Bilder im Internet. Hans Magnus Enzensberger

Bilder im Internet. Hans Magnus Enzensberger Kapitel 4 Alle reden von Kommunikation, aber die wenigsten haben sich etwas mitzuteilen. Hans Magnus Enzensberger Bilder im Internet Nach der etwas umfangreichen vorangehenden Lektion zum Ausklang der

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

Effiziente Java Programmierung

Effiziente Java Programmierung Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen

Mehr

Shibboleth Clustering und Loadbalancing

Shibboleth Clustering und Loadbalancing Shibboleth Clustering und Loadbalancing STEINBUCH CENTRE FOR COMPUTING - SCC KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Computercluster

Mehr

Softwarequalität sicherstellen mit Sonar

Softwarequalität sicherstellen mit Sonar Softwarequalität sicherstellen mit Sonar Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Hochschule München Michaela Lutz München, den 07. Juni 2013 1 Gliederung Was ist Sonar? Komponenten

Mehr

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 Inhaltsverzeichnis Software ekey TOCAhome pc 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 3. MONTAGE, INSTALLATION UND ERSTINBETRIEBNAHME... 3 4. VERSION... 3 Version 1.5 5. BENUTZEROBERFLÄCHE...

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

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework 1. Software-Plattform Android Android Was ist Android? Plattform und Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks), Open-Source Linux-Kernel 2.6 Managed Code, Angepasste Java

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Windows programmieren mit VisualBasic Einführung in die objektorientierte Programmiersprache

Windows programmieren mit VisualBasic Einführung in die objektorientierte Programmiersprache Dipl. Ing. (FH) Hans-Peter Kiermaier Windows programmieren mit VisualBasic Einführung in die objektorientierte Programmiersprache 1 Allgemeines Die Geschichte von VisualBasic oder kurz VB: 1991 Visual

Mehr

visionapp Platform Management Suite Save Event Version 2.0 Technische Dokumentation

visionapp Platform Management Suite Save Event Version 2.0 Technische Dokumentation visionapp Platform Management Suite Save Event Version 2.0 Technische Dokumentation Copyright visionapp GmbH, 2002-2006. Alle Rechte vorbehalten. Die in diesem Dokument enthaltenen Informationen, Konzepte

Mehr

POB-Technology Dokumentation. POB-Technology Produkte. Deutsche Übersetzung von roboter-teile.de Alle Rechte vorbehalten Seite 1 von 13

POB-Technology Dokumentation. POB-Technology Produkte. Deutsche Übersetzung von roboter-teile.de Alle Rechte vorbehalten Seite 1 von 13 POB-Technology Produkte Deutsche Übersetzung von roboter-teile.de Alle Rechte vorbehalten Seite 1 von 13 Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis... 2 Einführung...4 POB-EYE... 5 POB-LCD128...

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

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

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

Erste Schritte mit HG 2

Erste Schritte mit HG 2 Erste Schritte mit HG 2 Malte Ried FH-Gießen Version: 1.0 21. November 2003 Inhaltsverzeichnis 1 Einführung 2 2 Allgemeines 2 2.1 Koordinaten...................................... 2 2.2 Farben.........................................

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