VORSTELLUNG DER DIPLOMARBEIT

Ähnliche Dokumente
The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken

Installation LehrerConsole (für Version 6.2)

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Kern Concept AG Software Entwicklung HMO und BlueEvidence

Analyse und Darstellung der Protokollabläufe in IPv6-basierten Rechnernetzen

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Effiziente Administration Ihrer Netzwerkumgebung

ADDISON Aktenlösung Automatischer Rewe-Import. Technische Beschreibung

desk.modul : ABX-Lokalisierung

Debugging mit uclinux auf ARM-Prozessoren

Windows Server 2008 (R2): Anwendungsplattform

Lehrer: Einschreibemethoden

Umfrage. Didaktischer Kommentar. Lernplattform

ADNP/9200 mit E2U/ESL1: Web Interface Beispiele

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Proseminar Technische Informatik A survey of virtualization technologies

Mastermind. Testplan. Hochschule Luzern Technik & Architektur. Programmieren 2 FS12. Gruppe 10

Task: Nmap Skripte ausführen

Grundlagen verteilter Systeme

ecaros2 - Accountmanager

2015 conject all rights reserved

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

How-to: Webserver NAT. Securepoint Security System Version 2007nx

PVS Grobkonzept: Strukturelle und funktionale Erweiterungen bei der Verwaltung der Arbeitszeit und der organisatorischen Zuordnung

Ein mobiler Electronic Program Guide

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

Seminar: Mobile Geräte QNX Einführung

Anforderungsliste für asanetwork konforme DMS (Dealer Management Systeme)

ALKIS - GEORG Synchronisierung. Beschreibung der Anbindung von GEORG an die Verfahrenslösung. DAVID-Expertenarbeitsplatz von IBR

INES-Webserver. Damit gehen Ihre Geräte und Anlagen online. 1 Inhalt

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Kurzanleitung zur Updateinstallation von SFirm 3.1

ISEntial. ERP/Warenwirtschaftssystem, Finanzbuchhaltung, Projektverwaltung. Vorschau auf die Version 5

Anforderungsanalyse: Tutor

Bedienungsanleitung Elektronischer Zertifikatsaustausch

Internet online Update (Mozilla Firefox)

Anleitung für die Hausverwaltung

WinVetpro im Betriebsmodus Laptop

Multi-Threading. Ralf Abramowitsch Vector Informatik GmbH

Mandant in den einzelnen Anwendungen löschen

Installation. Um eine fehlerfreie Installation zu gewährleisten sollte vor der Installation der Virenscanner deaktiviert werden.

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

GITS Steckbriefe Tutorial

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Inhaltsverzeichnis Dokumentverwaltung Organisation von Dokumenten Ordner erstellen Dokumente im Dateisystem behandeln...

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

MOC 50466A: Windows Azure-Lösungen mit Microsoft Visual Studio 2010

Prozessorientiertes Asset Management und Mobile Workforce (unter Android)

IBM SPSS Statistics Version 23. Einführung in Installation und Lizenzierung

Systeme 1. Kapitel 10. Virtualisierung

Softwarelösungen: Versuch 4

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

4D Server v12 64-bit Version BETA VERSION

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Waimea Phone Monitor. Handbuch. Anzeige von eingehenden Anrufen auf Telefonanlagen mit TAPI-Interface

Einrichtung von Mozilla Thunderbird

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Anpassung einer freien SSL/TLS Implementierung an die Kertasarie VM

Buchungs- und Umsatzsteuerzeitraum ändern

Vorarlberger Standardschulinstallation Anbindung von Android Mobile Devices

Man liest sich: POP3/IMAP

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

Informatik, Mathematik und Naturwissenschaften

White Paper. Embedded Treiberframework. Einführung

Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13)

Installationsanleitung für Update SC-Line

Installation Microsoft Lync 2010 auf Linux

MICROSOFT WORD 2007 SERIENBRIEFE

Mail-Server mit GroupWare

Die Lernplattform bw21 und ihre Funktionalitäten

Abbildung 8.1: Problem mit dem Zertifikat. 2. Melden Sie sich am imanager als admin an. Die Anmeldung erfolgt ohne Eingabe des Kontextes: 8-2

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Installation OMNIKEY 3121 USB

Java Entwicklung für Embedded Devices Best & Worst Practices!

Die aktuelle Entwicklung des GeoService-Portals. Analyse- und Auswertefunktionen

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

teamsync Kurzanleitung

Human-Computer-Interaction und Psychologie Aufgaben- und Kontextanalyse

Formular»Fragenkatalog BIM-Server«

P-touch Transfer Manager verwenden

Anleitung zur Einrichtung von Stellvertretungen in Outlook

Eine kurze Bedienungsanleitung sowie Prozessbeschreibung für die Lösung HCM Änderungsantrag

Anwahlprogramm. zur. Modem-Schnittstelle TH004

Transkript:

1 VORSTELLUNG DER DIPLOMARBEIT Thomas Werner

Inhaltsverzeichnis 2 Thema Aufgabenstellung Anwendungsdebugging Threads Remote Debugging Implementierung Ausblick Quellen

3 Thema Untersuchung von Funktionsabläufen für das Remote-Thread-Debugging in eingebetteten Systemen Betreuer: Dipl.-Inform. S. Köhler Prof. Dr.-Ing.habil. R. G. Spallek

Aufgabenstellung 4 Literaturrecherche Analyse von repräsentativen Remote-Debug-Szenarien Konzeption und Implementierung einer Multi-Thread Erweiterung der Debug-Agentensoftware für eingebettete FTZeTW-ARM-EVAL Erweiterung der Target-Interface- Komponente für die UDE von PLS

Anwendungsdebugging 5 Ziel Entwicklung fehlerfreier Anwendungen für eingebettete Systeme Erstellung auf komfortableren Host- System Ausführung und Test auf gewähltem Targetsystem Fehlersuche auch bei gleichzeitiger Ausführung mehrerer Threads

Anwendungsdebugging 6 Embedded System Eingebunden in techn. Kontext Zweckbestimmte Funktion Prozessor, Speicher, Peripherie Oft mit eigenem Betriebssystem Bsp: etw-arm-eval board (FTZ) ARM9 Prozessor, MMU Serielle und Netzwerkschnittstelle Linux, angepasster Kernel 2.6.18

Anwendungsdebugging 7 Szenario: Entwicklung einer Linux- Anwendung in C für eingebettetes System UDE als Debugumgebung Target-Host-Verbindung über LAN GDB-Server auf Targetsystem Kommunikation über Remote Serial Protocol Remote-Debugging

Anwendungsdebugging 8 Problem Multithreading-Anwendungen bisher nicht unterstützt Lösung Ansätze für Thread-Debugging bei GDB-Server und Remote Serial Protocol Erweiterung und Hinzufügen von benötigten Funktionen

Threads 9 Definition Faden, Ausführungsstrang Teil eines Prozesses, gemeinsame Nutzung der Betriebsmittel eines Prozesses durch dessen Threads Gemeinsames Code- und Datensegment, eigener Stack und PC Gleicher Adressraum Bearbeitung von Teilaufgaben

Threads - Abgrenzung 10 Prozesse Ablauf eines Programms auf einem Prozessor Speicherraum und Betriebsmittel Mindestens ein Thread Threads Teilung von Speicher und Betriebsmittel Geringerer Aufwand bei Threadwechsel Abarbeitung nebenläufiger Stränge

Threads 11 Ausführungsstrang aus Sicht des Betriebssystems Userthread Kernelthread Multithreading Aufteilung Kernelthreads in einzelne Stränge (Faden in Fasern) durch Anwendersoftware Gleichzeitige Abarbeitung mehrerer Threads

Threads - Konflikte 12 Kritischer Abschnitt Programmabschnitt mit Zugriff auf Ressourcen, die auch von parallel laufenden Threads genutzt werden Inkonsistenz Mutex exklusiver Zugriff Sequentielle Abarbeitung dieses Abschnittes

Threads - Zustände 13 initialized ready running waiting terminated zombie Noch nicht gestartet Gestoppt, anderer Thread rechnet Wird gerade abgearbeitet Blockiert, wartet auf Ereignis Abarbeitung beendet Erzeugerthread beendet vor Erreichen des Status terminated

Thread-Debugging 14 Behandlung der Threads durch den Debugger Thread-Kontext als Sicht auf das System betrachten Visualisierung der Thread-Kontexte Überwachung der Synchronisation Wechsel des aktiven Threads Starten / Anhalten ausgewählter oder aller Threads

Threads unter Linux 15 NPTL Native POSIX Thread Library Moderne Implementierung einer Threading-Bibliothek POSIX-konform, unterstützt SMP Kompatibel zu LinuxThreads Geringer Aufwand bei Threaderzeugung Eingebunden durch pthread- Bibliothek (pthread.h)

Threads unter Linux 16 NPTL Kernel verwaltet weiterhin Prozesse statt Threads ( clone() ) 1:1 Abbildung auf Prozesse in Scheduling-Queue Kein Manager-Thread Kernel verantwortlich für Signale, Speicherfreigabe, Terminierung Synchronisation über Futex

Threads unter Linux 17 Nutzung der pthread- Bibliothek include <pthread.h> pthread_create() pthread_join() pthread_exit() pthread_mutex_lock() pthread_mutex_unlock()

Remote-Debugging 18 GDB-Server Angepasste Version des GDB- Server aus dem GNU Projekt Kompilierung für das Target-System mit Toolchain Bereitstellung wichtiger Funktionen Kommunikation über Remote Serial Protocol steuerbar durch GDB oder UDE

Remote-Debugging 19 Remote Serial Protocol Paketorientiert Zeichenbasiert $ Paketdaten # Checksumme Übertragung aller Steuerbefehle z.b.: Starten, Anhalten, Fortfahren, Breakpoints, Register lesen, Speicherzugriffe, Thread- Informationen

Remote-Debugging 20 GDB Target Interface Remote Serial Protocol GDB-Server glibc thread_db pthread-library Anwendungsthread Anwendungsthread

Implementierung - Status 21 Bereits in GDB-Server und Target- Interface integriert Alle Basisfunktionen zum Steuern des Programmablaufs Verwaltung des Kontext (Register lesen und anzeigen) qc aktiver Thread qfthreadinfo Thread-Liste

Implementierung - Status 22 Noch zu implementieren qfthreadextrainfo qp thread info request Synchronisierungsfunktionen Abfrage des Thread-Status

Ausblick 23 Fertigstellen aller nötigen Erweiterungen in GDB-Server und Targetinterface Entwicklung einer Komponente zur Visualisierung der vorhandenen Threads und deren Kontexte Visualisierung der Synchronisierung und Möglichkeit des manuellen Eingriffs

Quellen 24 Modern Operating Systems, Andrew S. Tanenbaum www.wikipedia.de www.gnu.org developer.apple.com www.ibm.com