Diplomarbeit. Dynamisches Systemmonitoring in einem rekursiven Multiserver-Betriebssystem. Informatik / Mathematik

Größe: px
Ab Seite anzeigen:

Download "Diplomarbeit. Dynamisches Systemmonitoring in einem rekursiven Multiserver-Betriebssystem. Informatik / Mathematik"

Transkript

1 Diplomarbeit Dynamisches Systemmonitoring in einem rekursiven Multiserver-Betriebssystem Verfasser: Fakultät: Betreuer (Genode Labs): Betreuer (HTW): Josef Söntgen Informatik / Mathematik Dr.-Ing. Norman Feske Prof. Dr.-Ing. Robert Baumgartl Datum: 19. August 2013

2 Josef Söntgen Danksagung Ich bedanke mich an dieser Stelle vorallem bei Norman Feske, meinem Betreuer bei Genode Labs, der mir oft mit Rat zur Seite gestanden hat und dafür sorgte, dass ich bei meinen Überlegungen nicht in die falsche Richtung geriet. Auÿerdem bedanke ich mich bei Christian Prochaska, der in schwierigen Situationen immer einen hilfreichen Tipp bereit hielt. Ferner bedanke ich mich bei meinem Hochschulbetreuer Prof. Baumgartl für seine Unterstützung und all den namenlosen Personen, die mir während des Schreibens der Diplomarbeit zur Seite standen. Seite 2 von 73

3 Josef Söntgen Inhaltsverzeichnis Inhaltsverzeichnis 1 Motivation und Ziel der Arbeit 5 2 Theoretische Grundlagen zu Betriebssystemen und Monitoring Das Betriebssystem Struktur von Betriebssystemen Genode Monitoring Denition und Funktion Darstellung und Bewertung bestehender Monitoring-Tools Zusammenfassung Entwurf einer System-Monitoring-Lösung für Genode Anforderungen an den Entwurf Anforderungen an das Monitoringsystem Eigenschaften und Ziele des Monitoringsystems Konzept und Architektur Instrumentierung Analyse Einschränkungen des Entwurfs Zusammenfassung Implementierung Umsetzung im Überblick Trace-Buer Trace-Policy Trace-Point Trace_fs (Trace-Store und Trace-Monitor) Erweiterung von base-foc Erweiterung von base-linux Erweiterung von Noux Auswertung in Noux Einschränkungen der Implementierung Zusammenfassung Auswertung Performanceuntersuchung Seite 3 von 73

4 Inhaltsverzeichnis Inhaltsverzeichnis 5.2 Eektivität TCB-Komplexität Fazit und Ausblick 59 Abbildungsverzeichnis 61 Tabellenverzeichnis 62 Literaturverzeichnis 63 Akronyme 67 Glossar 69 Quellcode 70 4

5 Josef Söntgen KAPITEL 1. MOTIVATION UND ZIEL DER ARBEIT 1 Motivation und Ziel der Arbeit Heutige Betriebssysteme sind hinsichtlich ihres Aufbaus komplex. Um Aussagen zum Systemverhalten treen zu können, ist es notwendig, fundierte Aussagen über den Systemzustand geben zu können. Die Erhebung und Auswertung der dafür benötigten Daten bezeichnet man als System-Monitoring. Die einzelnen Betriebssystemkomponenten werden hierbei instrumentiert, das heiÿt ihre Zustandsänderungen werden protokolliert und kritische Bereiche überwacht, damit etwaige Performance- oder Latenz-Probleme verstanden werden können [CSL04, KEP07, SS07, MDM06]. Hierfür gibt es verschiedene Ansätze, bei denen eine Auswertung der protokollierten Ereignisse während der Laufzeit des Systems oder nach Beendigung eines Messszenarios stattndet. Beim System- Monitoring legt der Anwender darauf Wert, dass auf sich änderndes Systemverhalten reagiert werden kann. Zudem ist es wichtig, das Verhalten verschiedener Bestandteile des Systems in Bezug zueinander setzen zu können, um einen Blick auf den Gesamtzustand des Systems zu erhalten. Dadurch kann die Ursache für ein Fehlverhalten einzelner Komponenten oder des Betriebssystems als Ganzes leichter erkannt werden [CSL04]. Ebenso kann System-Monitoring dazu verwendet werden, Engpässe im Betriebssystem zu lokalisieren. Aus oben genannten Gründen ist der Einsatz eines solchen Tools bei der Optimierung von Abläufen im Betriebssystem nutzbringend. Bekannte Beispiele hierfür sind DTrace, ein von Sun entwickeltes Monitoring-Tool, mit dem ein komplettes Instrumentieren des zu überwachenden Systems möglich ist [CSL04] und das Linux-Tracing- Toolkit-Next-Generation (LTTng), das ähnlich zu DTrace ist, dabei aber nur unter Linux eingesetzt werden kann [MDM06]. Im weiteren Sinne können Monitoring-Tools auch Mechanismen beinhalten, mit denen aktiv Abläufe bestimmter Prozesse im System gesteuert werden können. Bei dem in dieser Arbeit als Zielplattform verwendeten Betriebssystem handelt es sich um einen Betriebssystembaukasten, dessen Aufbau eine Client-Server-Struktur zugrunde liegt. Mangels unterstützender Mittel ist die Suche nach der Ursache eines Fehlers im System bzw. eines Fehlverhaltens aufwendig. Ein Monitoring-Tool fehlt dem Genode OS Framework 1 derzeit. Alle in Frage kommenden Komponenten müssen manuell instrumentiert werden, um so die Problemstelle zu lokalisieren. Bei der täglichen Arbeit mit Genode stellt sich dabei zwar eine gewisse Routine ein, wünschenswert wäre dennoch ein Tool, auf das der Entwickler zurückgreifen kann und das ihm eine ganzheitliche Sicht auf das System verschat. Da das Verhalten verschiedener Systemkomponenten voneinander abhängt (Client von Server), ist es notwendig, dass die Instrumentierung gezielt 1 Das Genode OS wird Framework der Einfachheit halber mit Genode bezeichnet. Seite 5 von 73

6 KAPITEL 1. MOTIVATION UND ZIEL DER ARBEIT stattnden kann und sich anpassen lässt, d.h. dynamisch ist. Diese Arbeit beschäftigt sich deshalb mit dem Entwurf und der Umsetzung eines Monitoring-Tools, das speziell auf Genode zugeschnitten ist und dessen Vorzüge in diesem Fall die strikte Isolierung der einzelnen Systemkomponenten gezielt nutzt. Ein Groÿteil dieser Arbeit widmet sich der Analyse vorhandener Monitoring-Tools beziehungsweise vorhandener Ansätze sowie dem Entwurf. Die in dieser Arbeit vorgestellte Implementierung ist ein funktionstüchtiger Prototyp, der gewissen Einschränkungen unterliegt. So können Ereignisse erhoben und erfasst werden, eine Auswertung ndet jedoch nur manuell durch den Benutzer statt. Ebenso ist es durch dieses Monitoring-Tool nicht möglich, den Ablauf zu steuern. Es dient vorerst nur zur Instrumentierung respektive dem tracing des Systems. Eine Erweiterung des Tools, welche auch den Ablauf steuern kann, ist denkbar und wird am Ende der Arbeit diskutiert. Die Gliederung dieser Arbeit gestaltet sich folgendermaÿen: Kapitel 2 beschreibt den Aufbau eines Betriebssystems im Allgemeinen und den Aufbau von Genode im Besonderen. Daneben werden vorhandene Monitoring-Tools beschrieben und auf ihre Verwendbarkeit innerhalb von Genode hin überprüft. Danach folgt in Kapitel 3 der Entwurf des Monitoring-Tools für Genode, sowie in Kapitel 4 die eigentliche Umsetzung, wobei auf die Probleme und Vorzüge, die sich aus der Architektur von Genode ableiten, eingegangen wird. Die Auswertung ndet in Kapitel 5 statt. Kapitel 6 liefert das Fazit sowie einen Ausblick auf mögliche aufbauende Arbeiten. 6

7 Josef Söntgen 2.1 Das Betriebssystem 2 Theoretische Grundlagen zu Betriebssystemen und Monitoring Im folgenden Kapitel wird grundlegendes Wissen vermittelt, das für das Verständnis der anschlieÿenden Kapitel notwendig ist. Insbesondere der ungewöhnliche Aufbau von Genode ist hervorzuheben, da sich dieser konzeptionell stark von herkömmlichen Betriebssystemen unterscheidet und er den Entwurf des Monitoring-Tools maÿgeblich beeinusst hat. Ferner werden nach der Darstellung des System-Monitorings verschiedene bereits existierende Monitoring-Tools beschrieben und deren Einuss auf den Entwurf diskutiert. 2.1 Das Betriebssystem Ein grundlegendes Verständis dafür, was ein Betriebssystem ist, welche Aufgaben es erfüllt und wie es sich zusammensetzt, wird vorausgesetzt. Im Folgenden wird darauf eingegangen, welche Struktur ein Betriebssystem haben kann und welche Vor- beziehungsweise Nachteile daraus entstehen. Abbildung 2.1: Monolithischer Kernel vs. Microkernel [Wikipedia] 1 Seite 7 von 73

8 2.1.1 Struktur von Betriebssystemen 2.1 Das Betriebssystem Struktur von Betriebssystemen In der Praxis haben sich zwei 2 Betriebssystementwürfe etabliert (siehe Abbldung 2.1). Es gibt monolithische Betriebssysteme, bei denen im kernel-mode sowohl der Kernel als auch alle anderen services, vorallem durch fehlerhafte Treiber 3 ) und im user-mode die Anwendungsprogramme ausgeführt werden [Tan09]. Der Vorteil ist hierbei die Geschwindigkeit, mit der die services ihre Aufgaben ausführen können, da kein Wechsel zwischen kernelund user-mode stattnden muss. Ein Nachteil ist jedoch die Anfälligkeit der Systemstabilität durch fehlerhafte services (z.b. Treiber). Aus diesem Grund sind verschiedene Ansätze entwickelt worden, die die Systemstabilität und auch die Systemsicherheit verbessern sollen. Einer dieser Ansätze sind die sogenannten Microkernel-Systeme, bei denen nur der minimal nötige Teil des Kernels im kernel-mode ausgeführt wird. Typischerweise sind das Prozesssteuerung, Scheduling, Speicherverwaltung und Inter-Process-Communication (IPC) [Lie95]. Der Rest wird im user-mode ausgeführt; dies schlieÿt auch Treiber ein. Dieser Ansatz beseitigt die zuvor genannten Nachteile der Systemsicherheit respektive Systemstabilität durch eine bessere Isolierung der services, führt seinerseits jedoch auch zu Problemen. Primär handelt es sich hierbei um die Optimierung der IPC -Performance, die ausschlaggebend für ein Microkernel-basiertes System ist. Daran wurde in den letzten Jahrzehnten intensiv geforscht, sodass die heutigen Generationen 4 von Microkerneln in Bezug auf diesen Bereich besonders optimiert sind [LES + 97, HHL + 97]. Microkernelbasierte Betriebssysteme folgen zudem einer besonderen Art der Systemstruktur, die nachfolgend beschrieben wird. Client-Server-Modell Üblicherweise greifen Microkernel-Systeme auf ein Client-Server-Modell zurück, um Betriebssystemdienste (services) zu implementieren. Bei diesem wird ein Betriebssystemservice von einem server-prozess im user-mode bereitgestellt. Auf diesen kann ein client-prozess, der ebenfalls im user-mode ausgeführt wird, über Mechanismen, die der Microkernel anbietet, zugreifen (siehe Abbildung 2.2). Konkret wird hierfür IPC verwendet. Durch dieses Modell wird erreicht, dass die einzelnen services voneinander isoliert ausgeführt werden und sich so nicht gegenseitig stören können. Um die Interaktion, beziehungsweise die Kommunikation, der services untereinander regulieren zu können, bedarf es eines Kontrollmechanismus. Neben anderen Ansätzen (u.a. clans & chiefs [Lie92] und IPC -Monitor), die hier nicht weiter ausgeführt werden, hat sich die Verwendung von capabilities bewährt px-OS-structure.svg.png 2 Es gibt noch hybride Ansätze, die eine Vermischung der beiden anderen darstellen und bei denen gegebenfalls zusätzlich auch Treiber oder andere services im kernel-mode ausgeführt werden. 3 Mittlerweile gibt es verschiedene Ansätze, durch die auch bei monolithischen Systemen Treiber im user-mode ausgeführt werden können, z.b. FUSE. 4 Damit sind die zweite (z.b. L4) und nachfolgende Generationen gemeint. 8

9 2.1.1 Struktur von Betriebssystemen 2.1 Das Betriebssystem server (driver) client send IPC Microkernel reply IPC Abbildung 2.2: Client-Server-IPC Capabilities Eine capability ist zunächst ein Kennzeichen, mit dem der Besitzer Zugri auf eine Entität beziehungsweise ein Objekt erhält [Lev84]. Mit ihr wird der Zugri auf eine Ressource kontrolliert. Die capability ist eine Referenz 5 auf ein Objekt im System. Sie ist funktional vergleichbar mit einem le-deskriptors in unixoiden Systemen, bezieht sich jedoch im Gegensatz zu ihm nicht nur auf eine Datei, sondern auf jede Art von Objekt. Damit ein Objekt auf ein anderes Objekt zugreifen oder mit ihm kommunizieren kann, muss es die dafür benötigte capability besitzen. Diese kann es bei einer autorisierten Instanz im System erfragen 6. Typischerweise handelt es sich bei dieser Instanz um den Microkernel selbst. Zu jedem Objekt merkt sich der Kernel lokal, welche capabilities es besitzt und prüft das Vorhandensein dieser, wenn das Objekt eine Aktion durchführen möchte. Das ermöglicht eine feingranulare Rechteverteilung innerhalb des Systems. Capabilities werden jedoch nicht nur in Microkernel-basierten Betriebssystemen eingesetzt, sondern auch in monolithischen Betriebssystemen. Der POSIX -Standard speziziert ein capability-application-programming-interface (API), das jedoch eine etwas andere Bedeutung beziehungsweise Denition aufweist. Capabilities werden hierbei genutzt, um die vorhandenen Rootrechte eines Prozesses zu separieren [Tob99]. Für FreeBSD gibt es mit Capsicum ein lightweight OS capability and sandbox framework, das das bestehende POSIX -capability-api erweitert und der hier verwendeten Denition von capability entspricht [WALK12]. Ob ein Objekt eine capability ausgehändigt bekommt, ist abhängig von den Sicherheitsvorschriften des Systems. Das nachfolgend beschriebene Betriebssystem setzt vornehmlich auf diese Art der capability, um die Interaktion von Objekten im System zu kontrollieren und zu reglementieren. 5 Das ist ein Detail der Implementierung, der Einfachheit halber wird sich in dieser Arbeit auf die gegebene Denition beschränkt. 6 Je nach System besitzt oder erhält ein Objekt bei seiner Erzeugung bereits gewisse capabilities. 9

10 2.1.2 Genode 2.1 Das Betriebssystem Genode Genode ist ein Betriebssystembaukasten, mit dem es möglich ist, ein Betriebssystem, das auf einen bestimmten Zweck, beziehungsweise ein bestimmtes Szenario, zugeschnitten ist, zu realisieren. Es basiert auf der Bastei OS Architecture, welche an der TU-Dresden entwickelt wurde. Ziel dieser ist es, die Systemsicherheit zu steigern, indem die Komplexität des Betriebssystems, durch die Zerlegung in möglichst kleine und unabhänging voneinander ausgeführte Teile, verringert wird. Dem Microkernel-Ansatz folgend, interagieren diese über festgelegte Schnittstellen miteinander. Der Zugri auf Systemressourcen und die Kommunikation innerhalb des Systems wird dabei mittels capabilities geregelt. [Fes06] Systemarchitektur und Konzept Zur Zielerreichung der Steigerung der Systemsicherheit durch Reduzierung der Komplexität wird in Genode versucht, die application-specic trusted computing base 7 zu minimieren. Jede Komponente besteht nur aus dem Code, der dazu nötig ist, damit sie ihre Funktion erfüllen kann. Einzelne Aufgaben werden hierbei von unterschiedlichen Komponenten wahrgenommen, sodass das System letztendlich aus vielen einfachen Teilen besteht. Dadurch können umfangreiche Szenarien abgebildet werden, ohne dass die dafür erforderliche Komplexität in einer einzelnen Komponente steckt. In Abbildung 2.3 ist ein solches Szenario beispielhaft dargestellt. Abbildung 2.3: TCB (rot) eines Prozesses (gelb) [Lab13e] Wie dort zu sehen ist, benötigt der eigentliche Prozess nur einen bestimmten Teil aller Komponenten des Systems, um seine Funktion erfüllen zu können. Er hat nichts mit dem rechten Teilbaum zu tun. 7 Damit ist die Menge an Code gemeint, die nicht kompromittiert werden darf und die Systemsicherheit gewährleistet [Lab13e]. 10

11 2.1.2 Genode 2.1 Das Betriebssystem Systemaufbau Aus historischen Gründen unterstützt Genode eine Vielzahl von verschiedenen Microkerneln 8 und ist zudem unter GNU/Linux einsetzbar. Auÿerdem wird ein eigener Kernel (base-hw) entwickelt, der eine Verschmelzung eines Microkernels mit dem Genode Wurzelprozess core darstellt [Lab13c]. core ist der eigentliche Kern von Genode und stellt die grundlegenden services (CPU, RAM, MMIO usw.) bereit, die benötigt werden, um andere services zu implementieren. Nur der Genode-Wurzelprozess kommuniziert mit dem verwendeten Kernel 9, abstrahiert von diesem und implementiert das Basis-API des Systems. Abhängig vom verwendeten Kernel bietet Genode unterschiedliche Funktionen an. Mit NOVA 10 kann eine IOMMU verwendet werden, wohingegen mit base-hw die Nutzung der ARM TrustZone technology 11 möglich ist. Mithilfe von Fiasco.OC 12 wird die Ausführung von L4Linux respektive L4Android auf Genode ermöglicht. Das System ist aufgebaut wie ein Baum, wobei die Knoten die eigentlichen Prozesse darstellen. Ressourcen werden innerhalb dieses Baumes entlang der Äste verteilt. Dabei teilt der übergeordnete Knoten (parent) seine Ressourcen mit dem ihm untergeordneten Knoten (child), beziehungsweise gibt einen Teil seiner Ressourcen an diesen weiter. Ferner legt der parent die Umgebung fest, in der seine children ausgeführt werden. Da er zunächst der einzige Ansprechpartner ist, kontrolliert und verwaltet er die Interaktion eines childs mit dem Rest des Systems. [Fes06] Aus diesem Grund besitzt jedes child eine parent-capability, durch welche es in der Lage ist, über den parent mit dem restlichen System zu interagieren. Das ndet mittels des session-mechanimus statt. Abbildung 2.4 zeigt den Ablauf eines typischen session-requests, bei der child 2 Zugri auf einen service, der in diesem Fall von child 1, bereitgestellt wird, erhalten möchte. Hierzu fragt child 2 im ersten Schritt seinen parent nach dem benötigten service. Der parent schaut daraufhin in der Liste der ihm bekannten services nach und stellt seinerseits einen session-request an child Dabei anfallende Kosten, d.h. Ressourcen, die benötigt werden, um den session-request durchzuführen und später den service nutzen zu können, werden jeweils von der anfragenden Instanz bereitgestellt. Child 2 gibt seinem parent einen Teil seiner RAM -Quota, die dieser dazu nutzt, die Anfrage an child 1 zu stellen. Der parent erhält von child 1 eine capabilty, mit der dessen service genutzt werden kann. Diese leitet er an child 2 weiter, das nun auf den service zugreifen kann. Ob ein child auf einen service zugreifen beziehungsweise einen session-request stellen darf, ist hierbei abhänging von der Sicherheitsvorschrift (vgl ), die durch den parent vorgegeben und durchgesetzt wird. 8 Eine Liste ndet sich unter 9 In der Praxis ist das nicht vollständig der Fall, da bestimmte Dienste Schnittstellen des darunterliegenden Kernels direkt nutzen. 10 https://github.com/intellabs/nova Es ist hierbei aus Sicht von child 2 egal, wer den service bereitstellt. Genauso gut könnte dieser von dem parent seines parents bereitgestellt werden. 11

12 2.1.2 Genode 2.1 Das Betriebssystem Abbildung 2.4: Ablauf eines Sessionrequests in Genode [Lab13b] Alle Ressourcen und services werden in Genode über den session-mechanismus angefordert. Das hat den Vorteil, dass bestimmte services (z.b. die CPU-Session) in gewissen Teilbäumen des Systems von anderen services bereitgestellt werden können. Damit ist es unter anderem möglich, Ressourcen zu virtualiseren. Genode besitzt mit dem policyrouting-mechanismus eine Maÿnahme, um genau bestimmen zu können, welche bestimmten services ein client von welchem server anfordern, respektive verwenden, darf, beziehungsweise soll. Damit kann sichergestellt werden, dass ein child auch nur die services verwendet, die von seinem parent bereitgestellt werden oder eben nur die, die auch von anderen children bereitgestellt werden. Prozesse können untereinander capabilities austauschen, um Ressourcen untereinander zu teilen. Über seine Ram_session kann ein Prozess beispielsweise einen Ram_dataspace anlegen. Die dazugehörige Ram_dataspace_capability kann nun an einen anderen Prozess weitergereicht werden. Dieser kann über die capability den dataspace in seinen Adressraum einblenden. Beide Prozesse können nun über dieses shared-memory-segment Daten austauschen. Der Wurzelprozess core von Genode setzt beim Systemstart den init-prozess init in Gang, der danach den statischen Teil des Genode-Systems startet. Das sind in der Regel 12

13 2.1.2 Genode 2.1 Das Betriebssystem Abbildung 2.5: Systemhierarchie von Genode [Lab13e] bestimmte Treiber sowie feste Teile eines Szenarios, wie zum Beispiel die grasche Ober- äche. Die Verwandtschaftsbeziehung wird innerhalb von Genode über das label eines Prozesses ausgedrückt. Ein ktives label wäre beispielsweise init -> user_session -> user_application (siehe Abbildung 2.5). Die Noux-Runtime Bei der Noux-Runtime handelt es sich um eine angepasste POSIX -Umgebung. Diese wird benötigt, um ausgewählte Kommandozeilenwerkzeuge unter Genode ausführen und benutzen zu können. Es geht dabei primär um die Genode-Toolchain und andere Werkzeuge (Editor, SCM usw.), die bei der Entwicklung nützlich sind. Noux selbst hat nichts mit der Architektur von Genode zu tun, sondern ist nur ein konkreter Dienst, der einen bestimmten Teilbaum bereitstellt. Die Funktionsweise ist in Abbildung 2.6 anschaulich dargestellt. Das jeweilige Kommandozeilenwerkzeug wird gegen die libc gelinkt, welche ein bestimmtes plugin benutzt, bei dem die aufgerufenen system-calls denierte Remote- Procedure-Calls (RPCs) auslösen. Diese RPCs werden von Noux verarbeitet. [Lab13d] 13

14 2.2 Monitoring Abbildung 2.6: Noux-Runtime Aufbau [Lab13d] Die in dieser Arbeit vorgestellte Implementierung nutzt Noux, um eine Auswertung mit Hilfe der üblichen Textwerkzeuge zu ermöglichen (siehe Abschnitt 4.1.8). 2.2 Monitoring Eine recht umfassende Beschreibung des Begris Monitoring ndet sich in Wikipedia: Monitoring ist ein Überbegri für alle Arten der unmittelbaren systematischen Erfassung (Protokollierung), Beobachtung oder Überwachung eines Vorgangs oder Prozesses mittels technischer Hilfsmittel [...] oder anderer Beobachtungssysteme. Dabei ist die wiederholte regelmäÿige Durchführung ein zentrales Element der jeweiligen Untersuchungsprogramme, um anhand von Ergebnisvergleichen Schlussfolgerungen ziehen zu können [...]. [Wik17] Ausgehend von dieser Beschreibung wird der Begri für den Kontext dieser Arbeit konkretisiert. 14

15 2.2.1 Denition und Funktion 2.2 Monitoring Denition und Funktion Im Kontext dieser Arbeit konkretisiert sich der Begri Monitoring hinsichtlich der Umgebung. Das Beobachtungssystem ist in diesem Fall das (Sub-)System eines Betriebssystems, weshalb hier von System-Monitoring 14 gesprochen wird. Wie schon in der Motivation (siehe Kapitel 1) dargelegt, ist das Instrumentieren des Systemablaufes bei der Analyse des Systemverhaltens und bei der Vereinfachung der Fehlersuche nützlich und auch notwendig. Aus diesem Grund ist es auch nicht verwunderlich, dass in diesem Bereich viele Ansätze erarbeitet werden. Dabei tritt das Instrumentieren zunehmend in den Hinter und das Auswerten hinsichtlich einer Übersicht über das gesamte System in den Vordergrund. System-Monitoring besteht aus mehreren Teilaufgaben (vgl. Abbildung 2.7). Zunächst müssen Protokolle angefertig werden, die später ausgewertet werden können. Dazu ist es notwendig, Ereignisse zu erheben. Diese Tätigkeit wird als Instrumentieren, respektive Tracing, bezeichnet [GM11, DD09]. Es gibt verschiedene Ansätze, das zu realisieren. Zum einen kann statische Instrumentierung eingesetzt werden. An festen Stellen im Betriebssystem werden Mechanismen installiert, die Ereignisse protokollieren. Der dafür hinzugefügte Code wird zur Compile-Zeit zusammen mit dem Programm übersetzt und wird somit Teil der Binary. Dieser Ansatz wird für gewöhnlich verwendet, wenn die Prozessorauslastung gering gehalten und die Auswertung der erhobenen Daten erst im Nachhinein durchgeführt werden soll. Das Instrumentieren kann in der Regel zur Laufzeit an- und ausgeschaltet werden 15. Zum anderen kann dynamische Instrumentierung eingesetzt werden. In diesem Fall wird dem zu instrumentierenden System, beziehungsweise Prozess, zur Laufzeit Code injiziert, der dann zur Laufzeit ausgeführt wird [Moo01]. Ein Beispiel hierfür sind die User-Space-Probes (uprobes) für Linux. Der Benutzer lädt ein vorher erzeugtes uprobe-kernelmodul und übergibt als Optionen die Zurordnungsnummer des Prozesses und die Speicheradresse, an welcher der handler installiert werden soll. An dieser Adresse wird nun ein Mechanismus installiert, der bei der späteren Ausführung ausgelöst wird, sobald die Adresse passiert wird. Eine genauere Erklärung folgt in Abschnitt [Ken09] 14 Der Begri stammt ursprünglich aus dem Umfeld verteilter Systeme, wo mittels integrierter Lösungen Systeme überwacht werden. 15 Beispielsweise ist es im Falle von DTrace unter FreeBSD per sysctl(1) möglich. 15

16 2.2.2 Darstellung und Bewertung bestehender Monitoring-Tools 2.2 Monitoring Die bei der Instrumentierung angefertigten Protokolle müssen danach an eine auswertende Instanz weitergeleitet werden. Dies kann entweder der Benutzer selbst sein, wenn die Auswertung manuell durchgeführt werden soll, oder auch ein Programm, das eine automatische Auswertung vornimmt (siehe Kapitel 6). Dabei können die Protokolle zunächst auch nur gespeichert werden, um mit ihnen zu einem späteren Zeitpunkt eine oline-analyse durchzuführen. Das Systemverhalten wird im Nachhinein (post-processing) anhand der Protokolle analysiert. Das Gegenteil ist die online-analyse, bei der noch während der Protokollerzeugung oder zumindest kurzzeitig danach eine Auswertung durchgeführt wird. Ereignis erhebung Ereignis erfassung Ereignis verwertung } Instrumentierung } Profiling Abbildung 2.7: Teilaufgaben beim System-Monitoring Im Folgen werden verschiedene Monitoring-Tools beziehungsweise deren Funktionsweise näher beschrieben Darstellung und Bewertung bestehender Monitoring-Tools Den Anfang machen hier Monitoring-Tools 16, die primär unter GNU/Linux, speziell im Kernel selbst, genutzt werden. Danach folgen DTrace und zuletzt Ferret, ein runtimemonitoring-system, das für das L4-Runtime-Environment entwickelt wurde. Im Gegensatz zu den anderen Tools wurde es für ein Microkernel-System entworfen, was es prinzpiell zunächst am interessantesten im Bezug auf Genode macht. Kprobes, Dprobes und Uprobes Bei kprobes handelt es sich um einen low-level-mechanismus, mit dem dynamisch beliebige Funktionen im Kernel durch sogenannte probes instrumentiert werden können. Eine probe ist in diesem Kontext eine Sammlung von Routinen, die an einer bestimmten Adresse platziert wird und die dortigen instructions ersetzt [Gos05, KPH10]. Dabei wird ein 16 Meistens handelt es sich dabei eher um Tracing-Mechanismen als um vollständige Monitoring-Tools. 16

17 2.2.2 Darstellung und Bewertung bestehender Monitoring-Tools 2.2 Monitoring break-point installiert, der beim Passieren der Adresse ausgelöst wird. Zur Instrumentierung stehen verschiedene Arten von probes zur Verfügung. Zum einen gibt es die kprobe, die im Prinzip an jeder Stelle im Kernel eingefügt werden kann. Wenn sie ausgelöst wird, werden die CPU-Register gesichert, die Kontrolle an kprobe übergeben sowie eine vorher registrierte handler-routine aufgerufen und ausgeführt. Zum anderen gibt es probes, die beim Betreten oder Verlassen einer Kernelfunktion aufgerufen werden (jprobes und kretprobes). Mit ersterer ist es möglich, die übergebenen Argumente einer Kernelfunktion zu betrachten. Die andere probe wird beim Verlassen der Kernelfunktion aufgerufen. Da das Verwenden eines break-points ressourcenaufwendig sein kann, besteht die Möglichkeit, kprobes dahingehend zu optimieren, dass statt eines break-points eine jump-instruction genutzt wird. Dies dient dem Zweck den overhead eines probe-hits verringern. Da es sich bei kprobes um einen low-level-mechanismus handelt, ist ein groÿer Nachteil das Fehlen einer Schnittstelle, mit der gezielt probes ausgewerten und somit eine Messung durchführen werden kann. Ferner muss man sich gut im Kernel auskennen, um probes an der richtigen Stelle, beziehungsweise an sinnvollen Stellen, im Kernel zu installieren. Zudem wird das präemptive multi-tasking, während eine handler-routine ausgeführt wird, deaktiviert, was unter Umständen nicht wünschenswert ist. [KPH10, Gos05, Coh03, Kri05] Bei dprobes handelt es sich um einen allumfassenden Mechanismus, mit dem der Benutzer automatisch sowohl im Kernel als auch in Anwendungsprogrammen dynamisch probe-points installieren kann [Moo00]. Zur Realisierung eines probe-points wird, wie auch bei kprobes, ein break-point verwendet. 17 An der Stelle, an der ein probe-point installiert werden soll, werden die betreenden instructions durch eine break-point trap ersetzt, die ausgelöst wird, wenn der probe-point passiert wird. Bei der Auslösung wird das probeprogram aufgerufen. Dieses wird vom Probe-Command-Interpreter (PrCI) interpretiert und anschlieÿen werden die probe-instructions ausgeführt. Der PrCI wird vom Dynamic- Probe-Event-Handler (DPEH) aufgerufen, der danach die vorher durch den break-point ersetzten instructions ausführt. Er ist zusätzlich dafür zuständig, den temporary-logbuer, in dem während der Ausführung der probe-instructions Daten hinterlegt wurden, zu sichern und an eine externe Verarbeitungsstelle (z.b. syslog) weiterzuleiten. Pro Prozessor gibt es jeweils einen solchen Puer. Dprobes können auch dazu genutzt werden, bedingte break-points bereitzustellen, die von einem Kerneldebugger benutzt werden können. [Moo00, Moo01] Bei uprobes handelt es sich, wie bereits erwähnt um probes, die in user-space-programmen eingesetzt werden können. Sie setzen hierbei auf das utrace-api von Linux auf. Analog zu kprobes und dprobes arbeiten auch uprobes mit einem break-point-mechanismus. Wenn die probe passiert wird, wird das Signal SIGTRAP erzeugt, welches von uprobes abgefangen und der vorher für die probe registrierte handler aufgerufen wird. Das Passieren des break-points bekommt uprobes hierbei von utrace mitgeteilt. Dabei gibt es zwei verschiedene Arten von probes. Zum einen die normalen uprobe, die an jeder virtuellen Adresse im Prozess installiert werden können und zum anderen die uretprobe. Sie wird ausgelöst, 17 Eine weitere Möglichkeit wäre die Verwendung von Hardware watch-points, die allerdings schwieriger zu handhaben sind und sich nicht so gut generalisieren lassen [Moo01]. 17

18 2.2.2 Darstellung und Bewertung bestehender Monitoring-Tools 2.2 Monitoring wenn die angegebene Funktion verlassen wird. Ebenfalls analog zu kprobes wird der uprobes-code als Kernelmodul geladen. Dabei können uprobes auch mit kprobes interagieren, beziehungsweise kprobes erzeugen. [Ken09] Mit kprobes, dprobes und uprobes stehen mehrere Mechanismen zur Verfügung, mit denen instrumentiert werden kann. Diese sind aber gröÿtenteils unabhängig von einander und nicht darauf ausgelegt, miteinander ausgewertet zu werden. Um richtige Messungen und Bewertungen durchführen zu können, ist es daher sinnvoll, eine integrierte Lösung zu nutzen, bei der alle Bestandteile miteinander, verzahnt sind und die durch eine zentrale Stelle gesteuert, beziehungsweise manipuliert, werden können. Im Folgenden werden Monitoring-Tools beschrieben, die sich die eben genannten Mechanismen zunutze machen. Linux-Tracing-Toolkit-ng LTTng ist ein low impact performance and behavior monitor für GNU/Linux [MDM06]. Ziel dessen ist, eine möglichst störungsfreie 18 Instrumentierung des Systems zu ermöglichen. Dabei wird darauf Wert gelegt, dass diese Lösung von einem breiten Spektrum an Benutzern sinnvoll genutzt werden kann, die jeder für sich andere Anforderungen an ein Monitoring-Tool stellen [DD09]. Deswegen ist es wichtig, dass nicht nur der Kernel an sich, sondern auch der Rest des Systems mit einfachen Mitteln instrumentiert werden kann. Dabei kann LTTng auf vorhandene Instrumentierungsmechanismen, wie z.b. kprobes zurückgreifen. Da ein break-point-mechanismus, wie er bei einer dynamischen Instrumentierung in der Regel verwendet wird, als zu kostspielig 19 empfunden wird [MDM06], wird eine statische Instrumentierung durchgeführt. Der dafür benötigte Instrumentierungscode wird aus einer XML-Beschreibung erzeugt. Das Objekt, welches letztendlich die Instrumentierung durchführen soll, benutzt dazu eine sogenannte facility. Dabei handelt es sich im Falle der Kernelinstrumentierung um ein Kernelmodul und im Fall der userspace Instrumentierung um eine Bibliothek, gegen die das Objekt gelinkt wird. [MDM06] Die bei der Instrumentierung erzeugten Protokolle werden vom Kernel per RelayFS 20 an einen user-space-prozess (lttd) weitergeleitet, der ihre Sicherung übernimmt. Im Kernel gibt es hierzu pro Prozessor einen RelayFS-Buer. Mittels LTTng User-space Tracer (UST) ist das Instrumentieren von user-space Prozessen möglich. Dabei handelt es sich um einen Port des statischen LTTng Kernel tracers. 18 Das Verhalten und die Performance des beobachteten Systems darf sich nicht bedeutend ändern. 19 Im Sinne der potenzielle Performanceverluste. 20 RelayFS wurde speziell dafür entwickelt, schnell zwischen dem Kernel und dem user-space Informationen austauschen zu können. Dazu wird ein memory-mapped-le erzeugt, auf das der jeweilige user-space Prozess zugreifen kann. [ZYW + 03] 18

19 2.2.2 Darstellung und Bewertung bestehender Monitoring-Tools 2.2 Monitoring Alle Programme, die diesen Mechanismus nutzen sollen, müssen gegen die libust Bibliothek gelinkt werden. Innerhalb eines Programmes gibt es pro Prozess einen Puer, in welchem die erhobenen Ereignisse gespeichert werden. Dieser besteht aus einem sharedmemory-segment, welches von einem consumer-prozess (ustd) ausgelesen wird, sobald der Puer voll ist. Dies geschieht für alle im System instrumentierten Prozesse. Daneben gibt es auch die Möglichkeit, diesen Puer als ringbuer zu verwenden, bei dem Ereignisse gegebenenfalls überschrieben werden. Die Steuerung der Instrumentierung erfolgt über einen dedizierten tracing-library-communiction Thread. Dieser wird in jedem instrumentierten Prozess erzeugt. Mit diesem kommuniziert das Steuerprogramm ust. Ust besitzt bei der Ereigniserhebung im Vergleich zu uprobes und DTrace einen deutlich geringeren overhead, da die Instrumentierung im Prinzip nur ein einfacher Funktionsaufruf ist. Wenn ein trace-point passiert wird, folgt die Auswertung einer für den Prozess globalen Variable, die darüber entscheidet, ob instrumentiert werden soll oder nicht. Es werden hierbei weder system-calls noch break-points verwendet. Zur Instrumentierung können zwei Mechanismen eingesetzt werden. Zum einen sogenannte marker. Dabei handelt es sich um eine einfache Funktion, die als Argument einen Formatstring, ähnlich zu printf, übergeben bekommt. Zum anderen gibt es die zuvor erwähnten tracepoints, die sich eher zur permanenten Instrumentierung eignen. Anstatt eines Formatstrings bekommen sie feste Datenstrukturen als Argumente übergeben. [FDD09] Mit dem Linux-Tracing-Toolkit-Viewer (LTTV) bringt LTTng ein Programm zur graschen Betrachtung der von LTTng erzeugen Protokolle 21 mit, mit dessen Hilfe es möglich ist, die einzelnen Ereignisse in Bezug zueinander zu setzen. Der Viewer ist dabei modular aufgebaut und kann durch einen plug-in-mechanismus erweitert und so exibel eingesetzt werden. DTrace Bei DTrace handelt sich um ein Monitoring-Tool, mit dem eine dynamische Instrumentierung des kompletten Betriebssystems möglich ist. Es wurde ursprünglich von Sun TM 22 für Solaris entwickelt und hat mittlerweile Einzug in FreeBSD und Mac OS X gehalten [fre12,gm11]. Hauptmerkmal ist die dynamische und dabei vor allem sichere Instrumentierung von Produktivsystemen, die - wenn deaktivert - keine Auswirkung auf das zu beobachtende System hat. Der sogenannte probe-eect 23 ist gleich Null [CSL04]. Um das System zu instrumentieren, werden sogenannte instrumention-provider eingesetzt. Diese interagieren über ein festgelegtes API mit dem DTrace-Framework 24. Sie liegen in Form eines kernel-modules vor und können zur Laufzeit des Systems geladen 21 Das gilt im übrigen auch für die Protokolle von UST. 22 Sun TM gehört mittlerweile zu Oracle. 23 Damit ist der overhead beziehungsweise die Veränderung des Laufzeitverhaltens des Systems, der durch den Einsatz von probes entsteht, gemeint. 24 Dies geschieht über die Gerätedatei /dev/dtrace. 19

20 2.2.2 Darstellung und Bewertung bestehender Monitoring-Tools 2.2 Monitoring werden. Die provider erzeugen an bestimmten Stellen eine probe, welche später zur Instrumentierung genutzt werden kann. Solang kein consumer die probe benutzt, ist sie praktisch inaktiv und kennzeichnet nur eine Stelle, an welcher prinzipiell instrumentiert werden könnte. Es gibt verschiedene Arten von providern, von denen die wichtigsten hier kurz erläutert werden. So gibt es zunächst das Function-Boundary-Tracing (FBT). Damit ist es möglich, jede Kernelfunktion bezüglich ihrer Argumente und ihres Rückgabewertes zu instrumentieren. Die Funktionsweise ist dabei ähnlich wie bei den von kprobes (vgl. Abschnitt 2.2.2) verwendeten kretprobes und wird mithilfe eines break-point-trapping- Mechanismus 25 realisiert. Mittels Statically-dened-Tracing (SDT) ist es dagegen möglich, beliebige Stellen im System zu instrumentieren. An die Stelle, an der später eine probe erzeugt werden soll, wird ein denierter 26 Aufruf einer nicht vorhanden Funktion eingefügt. Das geschieht bereits zur Zeit der Übersetzung. Trit nun der runtimelinker/loader beim Laden eines Programms auf eine solche Funktionskennung, ersetzt er den Funktionsaufruf durch eine No-Operation (NOP)-Instruktion und notiert sich die dazugehörige Adresse. Wird später ein SDT-Provider geladen, wird die nop-instruktion an dieser Stelle zur Laufzeit durch den Aufruf einer vom SDT-Provider bereitgestellten Funktion ersetzt. Weiterhin ist es mithilfe von System-Call-Tracing (SCT) möglich, die Abfolge von system-calls genau zu analysieren. Hierbei werden zur Laufzeit die Einträge in der system-call-table so umgeschrieben, dass durch die Verwendung einer Trampolinfunktion sowohl Kerneleintritt als auch austritt und die dabei übergebenen Argumente erfasst werden können. Wird eine probe durch die Nutzung durch einen consumer implizit aktiviert, wird automatisch ein Enabling-Control-Block (ECB) erstellt. Wenn eine probe passiert wird, wird die Kontrolle an DTrace übergeben und der zu der probe gehörende ECB wird ausgeführt. 27 Dabei können mit einem ECB Aktionen verknüpft sein. Diese Aktionen werden in der eigens dafür entwickelten Sprache D formuliert. Ein D-Programm wird hierbei zunächst in das D-Intermediate-Format (DIF) überführt. Diese überführte Variante wird dann in den Kernel geladen und von einer Virtual-Maschine (VM) ausgeführt. Während der gesamten Zeit, in der ein ECB ausgeführt wird, werden alle interrupts auf dem ausführenden Prozessor deaktiviert. Um die instrumentierten Ereignisse erfassen zu können, wird für jeden consumer im Kernel pro Prozessor ein Puer angelegt. In diesen schreibt ein ECB die erhobenen Daten. Der consumer ist dafür verantwortlich, den Puer regelmäÿig auszulesen. Bei einem vollen Puer können andernfalls Ereignisse nicht mehr erfasst werden. Innerhalb eines D-Programms ist es zudem möglich, Bedingungen, beziehungsweise Eigenschaften, (predicates) anzugeben, die darüber entscheiden, wann und was erfasst werden soll. Damit kann sichergestellt werden, dass nur relevante Ereignisse, respektive Daten, erfasst werden und von Anfang an das Erheben unnötiger Daten vermieden wird. Ein Vorteil von DTrace ist zum einen die Trennung zwischen den Mechanismen, die eine 25 Das ist nur bei x86 der Fall. 26 Die Funktionskennung enthält ein festes Präx. 27 Eine probe kann mehrere ECB besitzen. 20

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

Proseminar Technische Informatik A survey of virtualization technologies

Proseminar Technische Informatik A survey of virtualization technologies Proseminar Technische Informatik A survey of virtualization technologies Referent: Martin Weigelt Proseminar Technische Informatik - A survey of virtualization technologies 1 Übersicht 1. Definition 2.

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

Lastenheft. Zielbestimmungen. Produkteinsatz. swp11-4. 3. Mai 2011. Franz Teichmann, Robert Röÿling swp11-4 3. Mai 2011

Lastenheft. Zielbestimmungen. Produkteinsatz. swp11-4. 3. Mai 2011. Franz Teichmann, Robert Röÿling swp11-4 3. Mai 2011 Lastenheft swp11-4 3. Mai 2011 Zielbestimmungen In der heutigen Geschäftswelt stehen mittelständische Unternehmen vor dem Dilemma, einerseits interne und externe Kommunikation in angemessener Weise gewährleisten

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

Uberlegungen Einsatzgebiete Virtualisierungslosungen Fazit Hardwarevirtualisierung. Virtualisierung. Christian Voshage. 11.

Uberlegungen Einsatzgebiete Virtualisierungslosungen Fazit Hardwarevirtualisierung. Virtualisierung. Christian Voshage. 11. slosungen 11. Mai 2009 Inhaltsverzeichnis Uberlegungen slosungen 1 Uberlegungen Grunduberlegungen Vorteile Hardware-Emulation Nachteile 2 Servervirtualisierung Clientvirtualisierung 3 slosungen 4 5 Uberlegungen

Mehr

Hardware Virtualisierungs Support für PikeOS

Hardware Virtualisierungs Support für PikeOS Virtualisierungs Support für PikeOS Design eines Virtual Machine Monitors auf Basis eines Mikrokernels Tobias Stumpf SYSGO AG, Am Pfaenstein 14, 55270 Klein-Winternheim HS Furtwangen, Fakultät Computer

Mehr

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN Fakultät Informatik Institut für Systemarchitektur, Professur Betriebssysteme VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN Henning Schild Dresden, 5.2.2009 Definition Einführung von Abstraktionsschichten

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

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

kernkonzept L4Re ISOLATION UND SCHUTZ IN MIKROKERNBASIERTEN SYSTEMEN kernkonzept 1

kernkonzept L4Re ISOLATION UND SCHUTZ IN MIKROKERNBASIERTEN SYSTEMEN kernkonzept 1 kernkonzept L4Re ISOLATION UND SCHUTZ IN MIKROKERNBASIERTEN SYSTEMEN kernkonzept 1 kernkonzept Systeme mit höchsten Sicherheitsanforderungen trotzdem flexibel und nutzerfreundlich dank Mikrokernen der

Mehr

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching 1.1 Caching von Webanwendungen In den vergangenen Jahren hat sich das Webumfeld sehr verändert. Nicht nur eine zunehmend größere Zahl an Benutzern sondern auch die Anforderungen in Bezug auf dynamischere

Mehr

TECHNISCHE PRODUKTINFORMATION CARUSO

TECHNISCHE PRODUKTINFORMATION CARUSO 1111 TECHNISCHE PRODUKTINFORMATION CARUSO TECHNISCHE PRODUKTINFORMATION Seite 0/7 Inhalt 1 Systemdefinition............2 2 Technische Details für den Betrieb von CARUSO......2 2.1 Webserver... 2 2.2 Java

Mehr

Messdaten auswerten und visualisieren 5 Tipps, die passende Darstellungstechnik für ein Messsystem zu finden

Messdaten auswerten und visualisieren 5 Tipps, die passende Darstellungstechnik für ein Messsystem zu finden Messdaten auswerten und visualisieren 5 Tipps, die passende Darstellungstechnik für ein Messsystem zu finden 27.05.13 Autor / Redakteur: Nach Unterlagen von National Instruments / Hendrik Härter Messdaten

Mehr

Dateisysteme mit Plugin-Funktion

Dateisysteme mit Plugin-Funktion Dateisysteme mit Plugin-Funktion Basierend auf Reiser 4 unter Linux http://llugb.amsee.de/logo.gif Ausgearbeitet und vorgetragen von Michael Berger 1/23 Agenda Die Idee Dateisysteme mit Plugin-Funktion

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

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

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

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges Komponentenbasierte Client-Architektur Hamburg, 16.11.2007 Bernd Olleck IT-Beratung Olleck Agenda Clients aus drei verschiedenen Perspektiven: Technische Infrastruktur Fachliche Sicht Aufgaben eines Clients

Mehr

Systemvoraussetzungen und Installation

Systemvoraussetzungen und Installation Systemvoraussetzungen und Installation Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 2 2. Einzelarbeitsplatzinstallation... 3 3. Referenz: Client/Server-Installation... 5 3.1. Variante A:

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

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

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

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

Mehr

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit

IT-basierte Erstellung von Nachhaltigkeitsberichten. Diplomarbeit IT-basierte Erstellung von Nachhaltigkeitsberichten Diplomarbeit zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen Fakultät der Leibniz Universität Hannover vorgelegt von

Mehr

Den Browser isolieren mit GeSWall

Den Browser isolieren mit GeSWall Den Browser isolieren mit GeSWall Das Programm GeSWall von S.a.r.l. aus Luxemburg ist eine sandbox/policy restrictions Anwendung in englischer Sprache. http://www.gentlesecurity.com Eine Feature Übersicht

Mehr

Prinzipien der Application Centric Infrastructure

Prinzipien der Application Centric Infrastructure Whitepaper Prinzipien der Application Centric Infrastructure Übersicht Eine der wichtigsten Innovationen der Application Centric Infrastructure (ACI) ist die Einführung einer hochabstrakten Schnittstelle

Mehr

Szenarien zu Hochverfügbarkeit und Skalierung mit und ohne Oracle RAC. Alexander Scholz

Szenarien zu Hochverfügbarkeit und Skalierung mit und ohne Oracle RAC. Alexander Scholz Hochverfügbar und Skalierung mit und ohne RAC Szenarien zu Hochverfügbarkeit und Skalierung mit und ohne Oracle RAC Alexander Scholz Copyright its-people Alexander Scholz 1 Einleitung Hochverfügbarkeit

Mehr

Shibboleth Clustering und Loadbalancing

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

Mehr

Ausarbeitung zum Vortrag Java Web Start von Adrian Fülöp Fach: Komponentenbasierte Softwareentwicklung WS 06/07 Fachhochschule Osnabrück

Ausarbeitung zum Vortrag Java Web Start von Adrian Fülöp Fach: Komponentenbasierte Softwareentwicklung WS 06/07 Fachhochschule Osnabrück Ausarbeitung zum Vortrag Java Web Start von Adrian Fülöp Fach: Komponentenbasierte Softwareentwicklung WS 06/07 Fachhochschule Osnabrück Adrian Fülöp (297545) - 1 - Inhaltsverzeichnis: 1. Einführung 2.

Mehr

Filesystem in Userspace. Jens Spiekermann

Filesystem in Userspace. Jens Spiekermann Filesystem in Userspace Jens Spiekermann Aufbau Was ist FUSE? Grundlagen Wie funktioniert FUSE? Eigenschaften Vorteile Nachteile Wofür kann man FUSE nutzen? Wie wird FUSE benutzt? Abschluss Quellen 2/23

Mehr

Inhalt. Dokumentation VIAS_W. V32w6900 Workflow-Assistent

Inhalt. Dokumentation VIAS_W. V32w6900 Workflow-Assistent Dokumentation Inhalt 1. Der... 2 1.1 Benötigte Dateien... 2 1.2 Vorbereitung... 2 1.3 Hinterlegung von Workflows... 2 1.4 Definition eines neuen Workflows... 3 1.5 Definition von Aktionen... 5 1.1.1 Aktionstyp

Mehr

DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 378

DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 378 DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN Nr. 378 Umsetzung ausgewählter Supply-Chain-Operations-Reference-Metriken durch das

Mehr

Reporting Services Dienstarchitektur

Reporting Services Dienstarchitektur Reporting Services Dienstarchitektur Reporting Services Dienstarchitektur In Reporting Services wird ein Berichtsserver als ein Windows - Dienst implementiert, der aus unterschiedlichen Featurebere i-

Mehr

Embedded-Linux-Seminare. Linux als Betriebssystem

Embedded-Linux-Seminare. Linux als Betriebssystem Embedded-Linux-Seminare Linux als Betriebssystem http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de

Mehr

Virtualisierung Betrachtung aktueller Hypervisor wie Xen, KVM und Hyper-V

Virtualisierung Betrachtung aktueller Hypervisor wie Xen, KVM und Hyper-V Ausgewählte Kapitel der Systemsoftware Virtualisierung Betrachtung aktueller Hypervisor wie Xen, KVM und Hyper-V Guilherme Bufolo Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik

Mehr

KaaS: Kernel as a Service

KaaS: Kernel as a Service KaaS: Kernel as a Service Maßschneiderung von Kernel für Infrastruktur-Clouds Nico Weichbrodt, 21.11.2013 Technische Universität Braunschweig, IBR Motivation Stand: IaaS Clouds sind heutzutage nicht mehr

Mehr

SFTP Datenübertragungsclient PK-SFTP. automatische Verbindung zu einem SFTP-Server in einstellbaren Zeitintervallen

SFTP Datenübertragungsclient PK-SFTP. automatische Verbindung zu einem SFTP-Server in einstellbaren Zeitintervallen SFTP Datenübertragungsclient PK-SFTP automatische Verbindung zu einem SFTP-Server in einstellbaren Zeitintervallen senden, abholen und verifizieren der bereitstehenden Daten Protokollierung der Datenübertragung

Mehr

2 Virtualisierung mit Hyper-V

2 Virtualisierung mit Hyper-V Virtualisierung mit Hyper-V 2 Virtualisierung mit Hyper-V 2.1 Übersicht: Virtualisierungstechnologien von Microsoft Virtualisierung bezieht sich nicht nur auf Hardware-Virtualisierung, wie folgende Darstellung

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

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

1. Java Grundbegriffe

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

Mehr

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Jörg Rödel Virtualization - Whats out there? Virtualisierung hat bereits längere Geschichte auf x86 Startete mit VMware Setzte

Mehr

Betriebssysteme Kap A: Grundlagen

Betriebssysteme Kap A: Grundlagen Betriebssysteme Kap A: Grundlagen 1 Betriebssystem Definition DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten

Mehr

Das Interceptor Muster

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

Mehr

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python. 1.3 Aufbau des Buchs lichkeiten offen. Auf die Unterschiede der beiden Versionen gehe ich besonders ein, sodass ein späterer Umstieg von der einen zur anderen Version leichtfällt. Erste Zusammenhänge werden

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

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

whitepaper CLOUD-ENTWICKLUNG: BESTE METHODEN UND SUPPORT-ANWENDUNGEN

whitepaper CLOUD-ENTWICKLUNG: BESTE METHODEN UND SUPPORT-ANWENDUNGEN whitepaper CLOUD-ENTWICKLUNG: BESTE METHODEN UND SUPPORT-ANWENDUNGEN CLOUD-ENTWICKLUNG: BESTE METHODEN 1 Cloud-basierte Lösungen sind auf dem IT-Markt immer weiter verbreitet und werden von immer mehr

Mehr

Virtuelle Maschinen Konzept von VMWare

Virtuelle Maschinen Konzept von VMWare Virtuelle Maschinen Konzept von 11.12.2007 1 Einleitung 2 Software Virtualisierung 3 Software vs. Hardware 4 Fazit und Ausblick Motivation von Steigende Beliebtheit der x86-architektur Virtualizierung

Mehr

Integrating Architecture Apps for the Enterprise

Integrating Architecture Apps for the Enterprise Integrating Architecture Apps for the Enterprise Ein einheitliches Modulsystem für verteilte Unternehmensanwendungen Motivation und Grundkonzept Inhalt Problem Ursache Herausforderung Grundgedanke Architektur

Mehr

Kurzbeschreibung PC-Software für das Gerät URO-2050

Kurzbeschreibung PC-Software für das Gerät URO-2050 Kurzbeschreibung PC-Software für das Gerät URO-2050 1 Einleitung 1.1 Allgemeines Das Programm kann zum Verwalten der durchgeführten Untersuchungen mit dem Gerät URO-2050 benutzt werden. Es funktioniert

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

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

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

Mehr

2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer. Beitrag von Peter Küsters. Spiegelung. Archiv. Bild 1: Unterschied zwischen FTP und Spiegelung

2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer. Beitrag von Peter Küsters. Spiegelung. Archiv. Bild 1: Unterschied zwischen FTP und Spiegelung 2. DFG- Workshop 3.1. Erfassung/Bewertung/Transfer Beitrag von Peter Küsters Formen des Datentransfers bei der Erfassung von Websites Im folgenden werden Methoden und Software zur Erfassung vorgestellt.

Mehr

Kundenanforderungen. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 24.05.2013

Kundenanforderungen. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 24.05.2013 Software Komponenten FS13 Gruppe 03 Horw, 24.05.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Adresse Telefon

Mehr

FileMaker Pro 14. Verwenden einer Remotedesktopverbindung mit FileMaker Pro 14

FileMaker Pro 14. Verwenden einer Remotedesktopverbindung mit FileMaker Pro 14 FileMaker Pro 14 Verwenden einer Remotedesktopverbindung mit FileMaker Pro 14 2007-2015 FileMaker, Inc. Alle Rechte vorbehalten. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054,

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

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches Verwendung der bereitgestellten Virtuellen Maschinen»Einrichten einer Virtuellen Maschine mittels VirtualBox sowie Zugriff auf

Mehr

MailStore Service Provider Edition (SPE)

MailStore Service Provider Edition (SPE) MailStore Solutions MailStore Service Provider Edition (SPE) E-Mail-Archivierung für Service Provider Mit Hilfe der MailStore Service Provider Edition können Sie Ihren Kunden moderne E-Mail-Archivierung

Mehr

CVS-Einführung. Sebastian Mancke, mancke@mancke-software.de

CVS-Einführung. Sebastian Mancke, mancke@mancke-software.de CVS-Einführung Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation und Anforderung Sobald ein Softwaresystem anwächst, ergeben sich Probleme im Umgang mit dem Quell Code. CVS (Concurrent

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Virtualisierung. Zinching Dang. 12. August 2015

Virtualisierung. Zinching Dang. 12. August 2015 Virtualisierung Zinching Dang 12. August 2015 1 Einführung Virtualisierung: Aufteilung physikalischer Ressourcen in mehrere virtuelle Beispiel: CPUs, Festplatten, RAM, Netzwerkkarten effizientere Nutzung

Mehr

Virtualisierung ein Überblick

Virtualisierung ein Überblick Virtualisierung ein Überblick Frank Hofmann Potsdam 18. April 2007 Frank Hofmann (Potsdam) Virtualisierung ein Überblick 18. April 2007 1 / 33 Gedanken zum Thema Fragen, die sich jeder stellt Virtualisierung

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

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel App Framework vom Intel XDK vertraut. Es wird Schritt für Schritt

Mehr

Agile Programmierung - Theorie II SCRUM

Agile Programmierung - Theorie II SCRUM Agile Programmierung - Theorie II SCRUM Arne Brenneisen Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Seminar Softwareentwicklung in der Wissenschaft Betreuer: Christian

Mehr

Audiokommunikation im Computer. Andreas Jäger

Audiokommunikation im Computer. Andreas Jäger Audiokommunikation im Computer Wie kommunizieren die Teile einer DAW miteinander? Host Hardware Host Was gibt es in der Praxis zu beachten? Wo liegen Gefahren? Konkreter: Warum ist ASIO besser als MME?

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

Grundlagen Funktionsweise Anhang Begriffserklärungen. DHCP Grundlagen. Andreas Hoster. 9. Februar 2008. Vortrag für den PC-Treff Böblingen

Grundlagen Funktionsweise Anhang Begriffserklärungen. DHCP Grundlagen. Andreas Hoster. 9. Februar 2008. Vortrag für den PC-Treff Böblingen 9. Februar 2008 Vortrag für den PC-Treff Böblingen Agenda 1 Einleitung Netzwerkeinstellungen 2 Feste Zuordnung Lease 3 4 Einleitung Einleitung Netzwerkeinstellungen DHCP, das Dynamic Host Configuration

Mehr

Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte

Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte Matthias Lange Informatikstudent, TU-Dresden 27. September 2005 http://www.matze-lange.de Warum entwickelt jemand einen Treiber für

Mehr

Leitfaden zur Installation von BitByters.Backup

Leitfaden zur Installation von BitByters.Backup Leitfaden zur Installation von BitByters.Backup Der BitByters.Backup - DASIService ist ein Tool mit dem Sie Ihre Datensicherung organisieren können. Es ist nicht nur ein reines Online- Sicherungstool,

Mehr

SPARC LDom Performance optimieren

SPARC LDom Performance optimieren SPARC LDom Performance optimieren Marcel Hofstetter hofstetter@jomasoft.ch http://www.jomasoftmarcel.blogspot.ch Mitgründer, Geschäftsführer, Enterprise Consultant JomaSoft GmbH 1 Inhalt Wer ist JomaSoft?

Mehr

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein.

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Pfade einstellen Stand: Dezember 2012 Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Diese Anleitung soll zeigen, wie man Pfad-Favoriten

Mehr

Liste der Handbücher. Liste der Benutzerhandbücher von MEGA

Liste der Handbücher. Liste der Benutzerhandbücher von MEGA Liste der Handbücher Liste der Benutzerhandbücher von MEGA MEGA 2009 SP4 1. Ausgabe (Juni 2010) Die in diesem Dokument enthaltenen Informationen können jederzeit ohne vorherige Ankündigung geändert werden

Mehr

Cloud-Computing Seminar - Vergleichende Technologien: Grid-Computing Hochschule Mannheim

Cloud-Computing Seminar - Vergleichende Technologien: Grid-Computing Hochschule Mannheim Sven Hartlieb Cloud-Computing Seminar Hochschule Mannheim WS0910 1/23 Cloud-Computing Seminar - Vergleichende Technologien: Grid-Computing Hochschule Mannheim Sven Hartlieb Fakultät für Informatik Hochschule

Mehr

Lastenheft. Auftraggeber IBR Abteilung ALG

Lastenheft. Auftraggeber IBR Abteilung ALG Lastenheft Auftraggeber IBR Abteilung ALG Versionsübersicht Version Datum Autor Status Kommentar 1.0 9. 2. 2011 Auftraggeber 1.1 1. 4. 2011 Auftraggeber Ergänzung Miniflur, Personenerkennung 1.1.1 6. 4.

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

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr

Synchronisations -Assistent 2.6

Synchronisations -Assistent 2.6 TimePunch Synchronisations -Assistent 2.6 Benutzerhandbuch 22.10.2014 TimePunch KG, Wormser Str. 37, 68642 Bürstadt Dokumenten Information: Dokumenten-Name Benutzerhandbuch, Synchronisations-Assistent

Mehr

Linux Cluster in Theorie und Praxis

Linux Cluster in Theorie und Praxis Foliensatz Center for Information Services and High Performance Computing (ZIH) Linux Cluster in Theorie und Praxis Monitoring 30. November 2009 Verfügbarkeit der Folien Vorlesungswebseite: http://tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/

Mehr

Klausur Kommunikation I. Sommersemester 2003. Dipl.-Ing. T. Kloepfer

Klausur Kommunikation I. Sommersemester 2003. Dipl.-Ing. T. Kloepfer Kommunikation I 1 Klausur Kommunikation I Sommersemester 2003 Dipl.-Ing. T. Kloepfer Bearbeitungsinformationen Aufbau der Klausur Die Klausur ist wie folgt aufgebaut: Die Klausur ist in 18 Aufgaben unterteilt.

Mehr

Dokumentation Schulprojekt: Samba als Serverdienst

Dokumentation Schulprojekt: Samba als Serverdienst Dokumentation Schulprojekt: Samba als Serverdienst Sandra Schreiner und Sascha Lenhart 20. September 2007 Inhaltsverzeichnis 1 Einleitung 3 1.1 Projektbeschreibung.............................. 3 1.2 Projektziele...................................

Mehr

NOCTUA by init.at DAS FLEXIBLE MONITORING WEBFRONTEND

NOCTUA by init.at DAS FLEXIBLE MONITORING WEBFRONTEND NOCTUA by init.at DAS FLEXIBLE MONITORING WEBFRONTEND init.at informationstechnologie GmbH - Tannhäuserplatz 2 - A-1150 Wien - www.init.at Dieses Dokument und alle Teile von ihm bilden ein geistiges Eigentum

Mehr

Collaborative Virtual Environments

Collaborative Virtual Environments Collaborative Virtual Environments Stefan Lücking Projektgruppe Kreativität und Technik AG Domik WS 02/03 09.01.2003 1/35 Was sind CVE? Versuch einer Definition : Ein CVE ist ein Programm, das eine virtuelle

Mehr

Heterogenes Speichermanagement mit V:DRIVE

Heterogenes Speichermanagement mit V:DRIVE Heterogenes Speichermanagement mit V:DRIVE V:DRIVE - Grundlage eines effizienten Speichermanagements Die Datenexplosion verlangt nach innovativem Speichermanagement Moderne Businessprozesse verlangen auf

Mehr

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum

Mehr

Enterprise Resource Suite. Produkt Beschreibung

Enterprise Resource Suite. Produkt Beschreibung Enterprise Resource Suite Produkt Beschreibung Inhaltsverzeichnis 1 Summary... 2 2 Enterprise Resource Suite (ERS)... 3 3 ERS-Analyzing... 4 3.1 Belegung der Plattensysteme... 4 3.2 Verzeichnisbelegung...

Mehr

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Musterlösung Name: Matrikelnummer: Note: Prüfungstag:

Mehr

dpa-infocom - Datenlieferung

dpa-infocom - Datenlieferung dpa-infocom - Datenlieferung Copyright 2006 von dpa-infocom GmbH Status des Dokuments: FINAL Inhaltsverzeichnis Inhaltsverzeichnis...1 1. Verzeichnisstrukturen...2 2. Nachrichtenmanagement...2 3. Datenübertragung...3

Mehr

Zeiterfassungsanlage Handbuch

Zeiterfassungsanlage Handbuch Zeiterfassungsanlage Handbuch Inhalt In diesem Handbuch werden Sie die Zeiterfassungsanlage kennen sowie verstehen lernen. Es wird beschrieben wie Sie die Anlage einstellen können und wie das Überwachungsprogramm

Mehr

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 21.09.2012 Prüfungsdauer:

Mehr

Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur

Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur Leistungs- und Geschwindigkeitssteigerung von LabVIEW-Projekten Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur Agenda 1. Einführung 2. Hilfreiche Werkzeuge zur Codeanalyse 3. Benchmarks für LabVIEW-VIs

Mehr

editor assistant essential RTAS installation und aktivierung

editor assistant essential RTAS installation und aktivierung editor assistant essential RTAS installation und aktivierung Autoren: Uwe G. Hoenig, Stefan Lindlahr, Alex Schmidt Layout: Saskia Kölliker Celemony Software GmbH Valleystr. 25, 81371 München, Germany www.celemony.com

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

Geschäftsprozessmanagement

Geschäftsprozessmanagement Geschäftsprozessmanagement Der INTARGIA-Ansatz Whitepaper Dr. Thomas Jurisch, Steffen Weber INTARGIA Managementberatung GmbH Max-Planck-Straße 20 63303 Dreieich Telefon: +49 (0)6103 / 5086-0 Telefax: +49

Mehr

Paravirtualisierung (2)

Paravirtualisierung (2) Paravirtualisierung (2) Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 V. Sieh Paravirtualisierung (2)

Mehr

Online Help StruxureWare Data Center Expert

Online Help StruxureWare Data Center Expert Online Help StruxureWare Data Center Expert Version 7.2.7 Virtuelle StruxureWare Data Center Expert-Appliance Der StruxureWare Data Center Expert-7.2-Server ist als virtuelle Appliance verfügbar, die auf

Mehr

IT-Organisation Superuser und Local Support

IT-Organisation Superuser und Local Support IT-Organisation Superuser und Local Support Inhalt VORWORT... 2 DEFINITION DER VORAUSSETZUNGEN... 3 ORGANISATION... 4 DEFINITION DES SUPERUSERS... 5 KOMPETENZABGRENZUNG... 6 AUFGABEN DES SUPERUSERS...

Mehr

eclipse - Entwicklungsumgebung und mehr ETIS SS05

eclipse - Entwicklungsumgebung und mehr ETIS SS05 eclipse - Entwicklungsumgebung und mehr ETIS SS05 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung

Mehr

Servervirtualisierung mit Xen Möglichkeiten der Netzwerkkonfiguration

Servervirtualisierung mit Xen Möglichkeiten der Netzwerkkonfiguration Servervirtualisierung mit Xen Möglichkeiten der Netzwerkkonfiguration Studiengang Informatik Anwendung-Rechnernetze Übersicht Virtualisierungstechniken Virtualisierungsmodelle in Xen Netzwerkkonzepte und

Mehr