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

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161? Was machen wir heute? Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

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

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

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

System Monitoring mit strace. Systemcall tracing

System Monitoring mit strace. Systemcall tracing System Monitoring mit strace Systemcall tracing 1 Gliederung Einleitung: Was ist strace Grundlagen zu strace Kernel Kernelspace vs. Userspace Systemcalls ptrace Simple strace (Demo) strace die wichtigsten

Mehr

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007 User Mode Linux (UML) Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren Friedrich-Alexander-Universität Erlangen-Nürnberg Bruno Kleinert fuddl@gmx.de 20. Juni 2007 Überblick

Mehr

Operating System Kernels

Operating System Kernels Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking

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

JOB MANAGEMENT MIT DEM SAP SOLUTION MANAGER. Whitepaper

JOB MANAGEMENT MIT DEM SAP SOLUTION MANAGER. Whitepaper JOB MANAGEMENT MIT DEM SAP SOLUTION MANAGER. Whitepaper Wussten Sie, dass lediglich der kleinere Teil der Datenverarbeitung in Ihrem System von End-Anwendern generiert wird? Der größere Teil der Informationen

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

Jump Project. Softwarelösungen für professionelles Projektmanagement

Jump Project. Softwarelösungen für professionelles Projektmanagement Jump Project Softwarelösungen für professionelles Projektmanagement Jump Project Office Übersichtliche Dokumentenstruktur und schneller Zugriff auf alle wichtigen Funktionen. Steuern Sie Ihre Projekte

Mehr

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API PHP-Framework zur Anbindung an die plenty API Inhaltsverzeichnis 1 Kurzbeschreibung...3 2 Integration...4 3 Möglichkeiten...5 3.1 Artikel...5 3.2 Aufträge...5 3.3 Kunden...5 4 Interne Funktionsweise...7

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

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

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

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

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

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

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

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

Java Applet Alternativen

Java Applet Alternativen White Paper Java Applet Alternativen Version 1.0, 21.01.2014 Tobias Kellner tobias.kellner@egiz.gv.at Zusammenfassung: Aufgrund diverser Meldungen über Sicherheitslücken in Java haben in letzter Zeit Browser-Hersteller

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

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

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

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

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

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

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

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

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

Check_MK. 11. Juni 2013

Check_MK. 11. Juni 2013 Check_MK 11. Juni 2013 Unsere Vision IT-Monitoring muss werden: 1. einfach 2. performant 2 / 25 Was macht IT-Monitoring? IT-Monitoring: Aktives Überwachen von Zuständen Verarbeiten von Fehlermeldungen

Mehr

Seminararbeit Embedded Systems - Discovery Mechanismus für sdds. Kevin Sapper

Seminararbeit Embedded Systems - Discovery Mechanismus für sdds. Kevin Sapper Seminararbeit Embedded Systems - Discovery Mechanismus für sdds Kevin Sapper Seminararbeit Embedded Systems - Discovery Mechanismus für sdds Kevin Sapper Table of Contents... v 1. Einführung... 1 2. Grundlagen...

Mehr

lññáåé=iáåé===pìééçêíáåñçêã~íáçå=

lññáåé=iáåé===pìééçêíáåñçêã~íáçå= lññáåé=iáåé===pìééçêíáåñçêã~íáçå= Wie kann das LiveUpdate durchgeführt werden? Um das LiveUpdate durchzuführen, müssen alle Anwender die Office Line verlassen. Nur so ist gewährleistet, dass die Office

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

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

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

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

Prozessportal. Neben Prozessbeschreibungen, bietet es sich an, Abläufe grafisch zu visualisieren.

Prozessportal. Neben Prozessbeschreibungen, bietet es sich an, Abläufe grafisch zu visualisieren. Das Prozessportal der FHöV NRW Prozessportal Das Prozessportal bietet allen Mitarbeiterinnen und Mitarbeitern der der FHöV NRW die Möglichkeit, sich über bereits beschriebene und abgebildete interne Prozesse

Mehr

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Betriebssysteme Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Umfaßt z.b. auch Compiler, Interpreter und Dienstprogramme

Mehr

peer-to-peer Dateisystem Synchronisation

peer-to-peer Dateisystem Synchronisation Ziel Realisierungen Coda Ideen Fazit Literatur peer-to-peer Dateisystem Synchronisation Studiendepartment Informatik Hochschule für Angewandte Wissenschaften Hamburg 30. November 2007 Ziel Realisierungen

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

Rollen- und Rechtekonzept

Rollen- und Rechtekonzept Inhaltsverzeichnis Rollen- und Rechtekonzept 1. Ziele...1 2. Konzeption zur Realisierung durch Access Control List und im Management-Interface...2 2.1. Ansatz...2 2.2. Safety oder Security...2 2.3. User-

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

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

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

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

Finaler Testbericht. Finaler Testbericht. 1 Einführung 2. 1.1 Warum Softwaretests?... 2

Finaler Testbericht. Finaler Testbericht. 1 Einführung 2. 1.1 Warum Softwaretests?... 2 Inhaltsverzeichnis 1 Einführung 2 1.1 Warum Softwaretests?.................................... 2 2 Durchgeführte Tests 2 2.1 Test: allgemeine Funktionalität............................... 2 2.1.1 Beschreibung.....................................

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

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

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

4 Produktspezifische Ausfallwahrscheinlichkeit und Ausbeute

4 Produktspezifische Ausfallwahrscheinlichkeit und Ausbeute 4.1 Grundlagen 4 Produktspezifische Ausfallwahrscheinlichkeit und Ausbeute 4.1 Grundlagen In den bisherigen Ausführungen wurden die Grundlagen der Ausbeuteberechnung behandelt. So wurde bereits im Abschnitt

Mehr

1 Einleitung. 1.1 Motivation

1 Einleitung. 1.1 Motivation 1 Einleitung 1.1 Motivation Eine zunehmende Globalisierung in Verbindung mit der Verbreitung des elektronischen Handels, stets kürzer werdende Produktlebenszyklen und eine hohe Variantenvielfalt konstituieren

Mehr

Ereignisbehandlung 21

Ereignisbehandlung 21 Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen

Mehr

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten

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

Seite: 1 Revisionssichere Firewalls mit Tufin SecureTrack. NUBIT 2006 Kiel, 17. Februar 2006. Martin Seeger NetUSE AG ms@netuse.de

Seite: 1 Revisionssichere Firewalls mit Tufin SecureTrack. NUBIT 2006 Kiel, 17. Februar 2006. Martin Seeger NetUSE AG ms@netuse.de Seite: 1 mit Tufin SecureTrack NUBIT 2006 Kiel, 17. Februar 2006 Martin Seeger NetUSE AG ms@netuse.de Seite: 2 mit Tufin SecureTrack Agenda Herausforderungen Aufbau und Funktionsweise Versionsstände Vergleiche

Mehr

Multivariate Tests mit Google Analytics

Multivariate Tests mit Google Analytics Table of Contents 1. Einleitung 2. Ziele festlegen 3. Einrichtung eines Multivariate Tests in Google Analytics 4. Das JavaScript 5. Die Auswertung der Ergebnisse Multivariate Tests mit Google Analytics

Mehr

Befragung und empirische Einschätzung der Praxisrelevanz

Befragung und empirische Einschätzung der Praxisrelevanz Befragung und empirische Einschätzung der Praxisrelevanz eines Vorgehensmodells zur Auswahl von CRM-Systemen D I P L O M A R B E I T zur Erlangung des Grades eines Diplom-Ökonomen der Wirtschaftswissenschaftlichen

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

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

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

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede

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

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

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

6 Produktqualität Systeme: Integrationstest [sehr stark gekürzt]

6 Produktqualität Systeme: Integrationstest [sehr stark gekürzt] 1 Software-Qualitätssicherung 2 Integrationsstrategien big bang 6 Produktqualität Systeme: Integrationstest [sehr stark gekürzt] nicht-inkrementell geschäftsprozeßorientiert Prof. Dr. Helmut Balzert Lehrstuhl

Mehr

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs Der Aufbau der MS Outlook Integration orientiert sich stark an den SmarTeam Integrationen zu den MS Office Produkten, wobei

Mehr

DynFire. An Architecture for Dynamic Firewalling. Alexander Vensmer Alexander.Vensmer@ikr.uni-stuttgart.de 28.11.2011

DynFire. An Architecture for Dynamic Firewalling. Alexander Vensmer Alexander.Vensmer@ikr.uni-stuttgart.de 28.11.2011 DynFire An Architecture for Dynamic Firewalling Alexander Vensmer Alexander.Vensmer@ikr.uni-stuttgart.de 28.11.2011 Universität Stuttgart Institut für Kommunikationsnetze und Rechnersysteme (IKR) Prof.

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

Erfassung von Umgebungskontext und Kontextmanagement

Erfassung von Umgebungskontext und Kontextmanagement Erfassung von Umgebungskontext und Kontextmanagement Jörg Schneider, Christian Mannweiler, Andreas Klein, Hans D. Schotten 13.05.2009 Inhalt 1. Einleitung 2. Anforderungen 3. Kontext Erfassung und Verteilung

Mehr

Bedienungsanleitung EasyStechuhr

Bedienungsanleitung EasyStechuhr Thomas Schiffler Langestrasse 4 65366 Geisenheim http://www.thomasschiffler.de info@thomasschiffler.de Version 1.2 Inhaltsverzeichnis Inhaltsverzeichnis... 2 Einleitung... 3 Datenspeicherung... 3 Grundvoraussetzung...

Mehr

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Installationshandbuch

Installationshandbuch Installationshandbuch Erforderliche Konfiguration Installation und Aktivierung - 1 - Erforderliche Konfiguration Programme der 4D v15 Produktreihe benötigen folgende Mindestkonfiguration: Windows OS X

Mehr

SMC Integrationsserver 5.0 Versionsinformationen

SMC Integrationsserver 5.0 Versionsinformationen SMC Integrationsserver 5.0 Versionsinformationen SMC IT AG Pröllstraße 24 86157 Augsburg Tel. (0821) 720 62-0 Fax. (0821) 720 62-62 smc-it.de info@smc-it.de Geschäftsstelle Ettlingen Pforzheimer Straße

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

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

Data Mining-Projekte

Data Mining-Projekte Data Mining-Projekte Data Mining-Projekte Data Mining stellt normalerweise kein ei nmaliges Projekt dar, welches Erkenntnisse liefert, die dann nur einmal verwendet werden, sondern es soll gewöhnlich ein

Mehr

V-locity 3. Virtuelle Optimierung wird Realität

V-locity 3. Virtuelle Optimierung wird Realität V-locity 3 Virtuelle Optimierung wird Realität Kurzfassung Die heutigen virtuellen Umgebungen erfordern einen hohen Aufwand, um ohne Overhead einen bestmöglichen Service gewährleisten zu können. Bestehender

Mehr

Aufbau einer Testumgebung mit VMware Server

Aufbau einer Testumgebung mit VMware Server Aufbau einer Testumgebung mit VMware Server 1. Download des kostenlosen VMware Servers / Registrierung... 2 2. Installation der Software... 2 2.1 VMware Server Windows client package... 3 3. Einrichten

Mehr

Ein Scan basierter Seitenangriff auf DES

Ein Scan basierter Seitenangriff auf DES Ein Scan basierter Seitenangriff auf DES Seminar Codes & Kryptographie SS04 Tobias Witteler 29.06.2004 Struktur des Vortrags 1. Einführung / Motivation 2. Struktur von DES 3. Die Attacke Begriffsklärung:

Mehr

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing. www.egiz.gv.at E-Mail: post@egiz.gv.at Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria Beschreibung und Bedienungsanleitung Werkzeug für verschlüsselte bpks

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

Ein einfaches Modell zur Fehlerfortpflanzung

Ein einfaches Modell zur Fehlerfortpflanzung Ein einfaches Modell zur Fehlerfortpflanzung Jens Chr. Lisner lisner@dc.uni-due.de ICB / Universität Duisburg-Essen AK Fehlertoleranz 11/2006 p. Problemstellung Üblich bei der Formalisierung von Systemen:

Mehr

Nutzerhandbuch Softwaresystem Inspirata. Benutzerhandbuch Softwaresystem Inspirata

Nutzerhandbuch Softwaresystem Inspirata. Benutzerhandbuch Softwaresystem Inspirata Benutzerhandbuch Softwaresystem Inspirata 1 Inhaltsverzeichnis 1. Login und Logout... 3 2. Kalender/Buchungen auswählen... 5 3. Betreuer... 7 3.1 Buchung anlegen... 7 3.2 Betreuer zuordnen... 8 3.3 Notiz

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

Analyse und Maintenance als Grundlage zur Konversionserhöhung.

Analyse und Maintenance als Grundlage zur Konversionserhöhung. Webmarketing Analyse und Maintenance als Grundlage zur Konversionserhöhung. 3-2-1-keins wie performant sind Ihre Webmarketing Kampagnen? Wie hoch ist Ihre Cost-per-Sale über den Webmarketing-Kanal? Die

Mehr

IMPORT ZEITBUCHUNGEN. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

IMPORT ZEITBUCHUNGEN. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! 10/07/28, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD! INHALT 1. ALLGEMEINES... 4 2. PROGRAMMEINSTELLUNGEN... 4 3. VORAUSSETZUNGEN... 5 4. PROGRAMMABLAUF... 5 4.1. Manuelle

Mehr

Antwortzeitverhalten von Online Storage Services im Vergleich

Antwortzeitverhalten von Online Storage Services im Vergleich EPOD Encrypted Private Online Disc Antwortzeitverhalten von Online Storage Services im Vergleich Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee

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

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

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

Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen

Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen Christian Wawersich Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Universität Erlangen-Nürnberg

Mehr

Gefahren aus dem Internet 1 Grundwissen April 2010

Gefahren aus dem Internet 1 Grundwissen April 2010 1 Grundwissen Voraussetzungen Sie haben das Internet bereits zuhause oder an der Schule genutzt. Sie wissen, was ein Provider ist. Sie wissen, was eine URL ist. Lernziele Sie wissen, was es braucht, damit

Mehr

Funktionskapselung in Steuergeräten

Funktionskapselung in Steuergeräten Funktionskapselung in Steuergeräten Mobilität und Echtzeit Boppard am Rhein, 07.12.2007 Stand: 07.12.2007 1 Funktionskapselung in Steuergeräten Inhalt Ausgangssituation und Motivation Begriff "Kapselung"

Mehr

Jump Helpdesk. Softwarelösungen für professionelles Servicemanagement

Jump Helpdesk. Softwarelösungen für professionelles Servicemanagement Jump Helpdesk Softwarelösungen für professionelles Servicemanagement Jump Network GmbH 2004-2006 Jump Helpdesk Office Übersichtliche Dokumentenstruktur und schneller Zugriff auf alle wichtigen Funktionen.

Mehr

4 Planung von Anwendungsund

4 Planung von Anwendungsund Einführung 4 Planung von Anwendungsund Datenbereitstellung Prüfungsanforderungen von Microsoft: Planning Application and Data Provisioning o Provision applications o Provision data Lernziele: Anwendungen

Mehr

Leitfaden zur Installation von Bitbyters.WinShutdown

Leitfaden zur Installation von Bitbyters.WinShutdown Leitfaden zur Installation von Bitbyters.WinShutdown für Windows 32 Bit 98/NT/2000/XP/2003/2008 Der BitByters.WinShutDown ist ein Tool mit dem Sie Programme beim Herunterfahren Ihres Systems ausführen

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