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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ü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

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

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

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

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

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

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

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

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

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

Ein Laufzeitsystem für hochgradig parallele Simulationen

Ein Laufzeitsystem für hochgradig parallele Simulationen Ein Laufzeitsystem für hochgradig parallele Simulationen Luc Bläser ETH Zürich / LBC Informatik Seminar für Verkehrssimulation TU Berlin, 6. Juni 2008 Motivation Parallele Simulation Selbstaktive Agenten

Mehr

2008 Jiri Spale, Programmierung in eingebetteten Systemen 1

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

Mehr

Einführung in 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

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

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

Anwenderdokumentation PersoSim

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

Mehr

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

Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"

Praxisorientierte Einführung in C++ Lektion: Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm) Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte

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

Ü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

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

Die ersten C#- Programme erstellen

Die ersten C#- Programme erstellen Zusatzkapitel zu Kapitel 3: Die ersten C#- Programme erstellen I - Erste Schritte Richtig einsteigen: Programmieren lernen mit Visual C# 2005 Website zum Buch: www.vsxpress.de Auf den folgenden Seiten

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

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

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

Kurzanleitung für die mobile Novell Messenger 3.0.1-App

Kurzanleitung für die mobile Novell Messenger 3.0.1-App Kurzanleitung für die mobile Novell Messenger 3.0.1-App Mai 2015 Novell Messenger 3.0.1 und höher ist für unterstützte ios-, Android- und BlackBerry-Mobilgeräte verfügbar. Da Sie an mehreren Standorten

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

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

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

vna/j 2.8.x Installationsanleitung für Mac OS X

vna/j 2.8.x Installationsanleitung für Mac OS X Image www.miniradiosolutions.com vna/j 2.8.x Installationsanleitung für Mac OS X Dietmar Krause DL2SBA Hindenburgstraße 29 D-70794 Filderstadt http://creativecommons.org/licenses/by-nc-nd/3.0 Samstag,

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

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

Übung zur Vorlesung Echtzeitsysteme

Übung zur Vorlesung Echtzeitsysteme Technische Universität München Fakultät für Informatik Forschungs- und Lehreinheit Informatik VI Übung zur Vorlesung Echtzeitsysteme Aufgabe 3 Nadine Keddis keddis@fortiss.org Stephan Sommer sommerst@in.tum.de

Mehr

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

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

Mehr

User Level Device Driver am Beispiel von TCP

User Level Device Driver am Beispiel von TCP September 17, 2004 Einleitung Motivation für Userlevel Device Driver Probleme von Userlevel Device Driver Motivation für Userlevel Device Driver Modularität, leichterer Austausch/Erneuerung von Komponenten.

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

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

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

9 Multithreading. 1 Idee des Multithreading

9 Multithreading. 1 Idee des Multithreading 9 Multithreading Jörn Loviscach Versionsstand: 21. Juli 2015, 11:50 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work is licensed

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

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

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung

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

Mehr

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen WEITER BLICKEN. MEHR ERKENNEN. BESSER ENTSCHEIDEN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN VERSION 1.0 OPTIMIERUNG VON ABFRAGEN IN MS SQL

Mehr

Überschrift/Caption. Eigenschaftenfenster

Überschrift/Caption. Eigenschaftenfenster UsserrForrm errssttel llen Dass Codeffensstterr 22000044 NNi iikkoo BBeecckkeerr Öffnen Sie EXCEL und wechseln Sie mit der Tastenkombination Alt + F11 in den Visual Basic-Editor. Alternativ können Sie

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

Pflichtenheft. 1 Zielbestimmungen 2 1.1 Musskriterien... 2 1.2 Wunschkriterien... 2 1.3 Abgrenzungskriterien... 2

Pflichtenheft. 1 Zielbestimmungen 2 1.1 Musskriterien... 2 1.2 Wunschkriterien... 2 1.3 Abgrenzungskriterien... 2 Pflichtenheft Inhaltsverzeichnis 1 Zielbestimmungen 2 1.1 Musskriterien........................................ 2 1.2 Wunschkriterien....................................... 2 1.3 Abgrenzungskriterien...................................

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

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

Wie man eigene Programme erstellt

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

Mehr

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

Programmierung eines NewsTickers in Java

Programmierung eines NewsTickers in Java Programmierung eines NewsTickers in Java ( & ) Projektarbeit Programmiertechnik:Java NTA FH Isny 12. Info David Mayr / Andreas Krug Seite 1 von 7 ::: David Mayr / Andreas Krug [ 12. Info NTA FH Isny ]

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

Kompilieren und Linken

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

Mehr

Kurzanleitung zu XML2DB

Kurzanleitung zu XML2DB Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines

Mehr

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

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

Mehr