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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UART-Kommunikation mit dem Atmel AVR

UART-Kommunikation mit dem Atmel AVR Fachbereich Elektrotechnik und Informatik Labor für Angewandte Informatik und Datenbanken Praktikum Mikrocontroller und DSP (EMD) Prof.Dr.-Ing. Coersmeier UART-Kommunikation mit dem Atmel AVR Name, Vorname

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

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

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

Marketing Update. Enabler / ENABLER aqua / Maestro II

Marketing Update. Enabler / ENABLER aqua / Maestro II Marketing Update Enabler / ENABLER aqua / Maestro II Quartal 01/2012 1 Kommentar des Herausgebers Liebe Kunden und Partner, dieser Marketing Update gibt Ihnen einen kurzen Überblick über die aktuell verfügbaren

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

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

Hochleistungsrechnen mit Windows Interaktive Benutzung und das Batchsystem Christian Terboven Rechen- und Kommunikationszentrum RWTH Aachen

Hochleistungsrechnen mit Windows Interaktive Benutzung und das Batchsystem Christian Terboven Rechen- und Kommunikationszentrum RWTH Aachen Hochleistungsrechnen mit Windows Interaktive Benutzung und das Batchsystem hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 Hochleistungsrechnen mit Windows enter omputing and ommunication

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit

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

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

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

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 In diesem Dokument wird dargelegt, wie das SEPPmail Outlook Add-in funktioniert, und welche Einstellungen vorgenommen werden können. Seite 2 Inhalt

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

Ü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

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

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

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

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

NanoCAN & NanoJEasy. Software training

NanoCAN & NanoJEasy. Software training NanoCAN & NanoJEasy Software training NanoCAN NanoCAN ist ein nützliches Tool für: - Prüfung - Fehlersuche und -behebung - Firmware-Updates Unsere Steuerungen sind immer CAN-Slaves. Aus diesem Grund stehen

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

HLx Management Console

HLx Management Console HLx Management Console User s Guide v1.0.4a 1.1 Systemvoraussetzungen Microsoft Windows XP/7, Microsoft Windows Server 2003/2003R2/2008/2008R2.Net Framework Version 3.5 (bitte inkl. Service Packs; Kontrolle

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

. 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

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

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

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

Ü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

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

Workflow+ Installation und Konfiguration

Workflow+ Installation und Konfiguration Workflow+ Installation und Konfiguration Systemübersicht Workflow+ Designer Mit dem Workflow+ Designer werden Workflows und Eingabemasken erstellt. Mit der integrierten Test- und Debugging Funktion können

Mehr

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT Boris Golubovic Dortmund, den 24. Oktober 2010 Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT Ein Projekt anlegen Ein Projekt kapselt alle zu einer Anwendung gehörenden

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

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

Mehr

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung 2015-02-25 1 of 6 Application Note Anbindung von Kunden-Software an SpiderControl Web Visualisierung Version ApplicationNote_AnbindungFremdsoftware /Version Seite 1 / 6 Version Datum Kommentar Autor 0.1

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

Handbuch. SMS-Chat Admin. Version 3.5.3

Handbuch. SMS-Chat Admin. Version 3.5.3 Handbuch SMS-Chat Admin Version 3.5.3 Copyright Dieses Handbuch ist, einschließlich der darin beschriebenen Software, Teil der Lizenzvereinbarung und darf nur in Übereinstimmung mit den Lizenzbedingungen

Mehr

Für diese Anleitung benötigen Sie: Generelles zu OpenCV (Intel's Open Computer Vision C/C++ Bibliothek) Einrichten der Entwicklungsumgebung

Für diese Anleitung benötigen Sie: Generelles zu OpenCV (Intel's Open Computer Vision C/C++ Bibliothek) Einrichten der Entwicklungsumgebung 27.04.2008 Windows (XP), Microsoft Visual C++ Express 2008 und OpenCV Kurzanleitung zum Einrichten einer Entwicklungsumgebung für die Bildverarbeitung Für diese Anleitung benötigen Sie: Einen Windows PC

Mehr