Item Type: |
Ph.D. Thesis |
Type of entry: |
Primary publication |
Title: |
Operational Profiling of OS Drivers |
Language: |
English |
Referees: |
Suri, Prof. Neeraj ; Fetzer, Prof. Christof |
Date: |
27 May 2009 |
Place of Publication: |
Darmstadt |
Date of oral examination: |
25 May 2009 |
Corresponding Links: |
|
Abstract: |
Operating Systems (OS's) constitute the operational core for computing devices. In order to facilitate their applicability to a variety of hardware platforms, OS's have evolved into complex componentized software entities whose key function is to provide applications access to the system resources. Fundamentally, the provided system services inherently depend on the stability of the underlying OS. Within the OS, the key components that dominate the cause of OS failures are the device drivers (DDs), precisely the OS parts designed to enhance the OS's support for hardware. Despite intensive efforts to elevate the DDs' robustness level by employing varied test paradigms, the existing testing approaches still exhibit very high failure rates. Hence, the central premise behind this thesis involves the characterization of the DD's operational profile, and using it for focusing subsequent testing to the functionality areas likely to be exercised over the DD deployment. This thesis develops two novel and distinct methodologies to capture and analyze the operational profile of DDs. The first - termed as the operational profile (OP) - is based on the characterization of the I/O traffic between a selected DD and the rest of the OS kernel. The second - termed execution path profile (EPP) - observes the functional calls made by the respective DD in the operational phase, thus revealing the code paths followed at runtime. Both presented approaches are directly applicable to DD binaries as they do not require source-code level access to any of the involved OS components. This thesis develops the concepts and methodology for effectively profiling the operational behavior of DDs. First, a state model is introduced for describing a DD and its complete state space. Experimentally, we show that the DD's operational state space (OSS) - the subset of states visited at runtime - represents only a small fraction of the total state space, thus highlighting the areas to be tested. Subsequently, occurrence- and duration-based quantifiers are defined for each of the DD states belonging to the OSS. This enables test prioritization and workload comparisons which are the key factors for testing. This conceptual process's effectiveness is tested using extensive case studies including over fifty Windows XP and Vista DDs. The developed EPP is complementary to the OP as it discovers execution hotspots as frequently traversed DD code paths. To highlight the execution hotspots, a DD monitoring and code path analysis methodology is presented and tested using actual Windows DD's. Code paths are identified as call sequences to kernel functions implemented externally to the selected DD. String similarity metrics are used to compute the relative similarity among the inferred code paths. Based on likeness, the code paths are grouped into equivalence classes helping identify execution hotspots. These hotspots constitute primary targets for testing. Overall the thesis develops novel proling approaches for testing generalized OS's. The research is also validated on actual Windows XP and Vista OSs. |
Alternative Abstract: |
Alternative Abstract | Language |
---|
Betriebssysteme (BS) bilden den operativen Kern eines jeden Computers. Für eine einfache Anwendbarkeit auf verschiedenen Hardware-Plattformen haben sich BS zu complexen, aus Komponenten bestehenden Software-Einheiten entwickelt, deren Hauptaufgabe darin besteht Anwendungen Zugriff auf Systemressourcen zu ermöglichen. Grundsätzlich hängen die bereitgestellten Systemdienste inhärent von der Stabilität des unterliegenden BSs ab. Die Komponenten, die innerhalb eines BSs die dominierenden Verursacher von Ausfällen des BSs sind, sind die Gerätetreiber, genauer gesagt die Teile des BSs, die entwickelt wurden um die Hardware-Unterstützung des BSs zu verbessern. Trotz intensiver Anstrengungen das Robustheitsniveau von Gerätetreibern durch Anwendung verschiedener Testparadigmen zu heben, zeigen existierende Testmethoden nach wie vor äußerst hohe Fehlerraten. Die Charakterisierung des operativen Profils von Gerätetreibern und dessen Anwendung während der Entwicklung von Gerätetreibern zum zielgerichteten Testen von mit hoher Wahrscheinlichkeit aufgerufenen Funktionen bildet den Kernbeitrag der vorliegenden Arbeit. Die vorliegende Arbeit beschreibt zwei neue Methoden um ein operatives Profil von Gerätetreibern zu erstellen und zu analysieren. Die erste Methode - Operational Profile (OP) genannt - basiert auf der Charakterisierung der Ein-/Ausgabe-Kommunikation zwischen einem ausgewählten Gerätetreiber und dem Rest des BS-Kerns. Die zweite Methode - Execution Path Profile (EPP) genannt - verfolgt die vom entsprechenden Gerätetreiber während der Betriebsphase gemachten Funktionsaufrufe, wobei die zur Laufzeit durchschrittenen Pfade im Code aufgezeigt werden. Beide vorgestellten Ansätze können direkt auf die ausführbaren Dateien von Gerätetreibern angewendet werden, weil kein Zugriff auf den Quellcode einer beteiligten BS-Komponente benötigt wird. Die vorliegende Arbeit präsentiert Konzepte und Methoden zur effektiven Profilierung des operativen Verhaltens von Gerätetreibern. Zunächst wird ein Zustandsmodell eingeführt um einen Gerätetreiber und den kompletten Zustandsraum zu beschreiben. Wir zeigen mit Hilfe von Experimenten, dass der operative Zustandsraum (die Teilmenge von Zuständen, die zur Laufzeit besucht werden) eines Gerätetreibers nur einen kleinen Anteil des gesamten Zustandsraums ausmacht und somit die Gebiete im Zustandsraum hervorhebt, die vornehmlich durch Tests abgedeckt werden müssen. Anschließend werden für jeden Zustand des Gerätetreibers Quantifizierer, basierend auf dem (zeitlichen) Auftreten des Zustandes, definiert. Dies ermöglicht Priorisierung von Tests und den Vergleich von Arbeitslasten, welche die Schlüsselfaktoren für genaues und angemessenes Testen sind. Die generelle Effektivität des gesamten Prozesses wird anhand von ausführlichen Fallstudien, die mehr als fünfzig Windows XP und Vista Gerätetreiber umfassen, erprobt. Das EPP, welches ebenso in dieser Arbeit vorgestellt wird, ist komplementär zum OP weil es Ausführungs-Hotspots in Form von häufig durchschrittenen Pfaden im Code auffindet. Um solche Ausführungs-Hotspots hervorzuheben wird eine Methode zum Monitoring von Gerätetreibern und zur Code-Pfad-Analyse präsentiert und an echten Windows-Gerätetreibern getestet. Code-Pfade werden als Sequenzen von BS-Kern-Funktionsaufrufen charakterisiert, die außerhalb des gewählten Gerätetreibers implementiert sind. String-Ähnlichkeitsmetriken werden herangezogen um die relative Ähnlichkeit zwischen den abgeleiteten Code-Pfaden zu bestimmen. Die Code-Pfade werden, basierend auf Wahrscheinlichkeiten, in Äquivalenzklassen unterteilt um das Identifizieren von Ausführungs-Hotspots zu erleichtern. Solche Hotspots bilden primäre Ziele für das Testen. Zusammenfassend entwickelt die vorliegende Arbeit neue Profilierungsansätze zum Testen allgemeiner BS. Die Forschungsarbeit wird an den realen Betriebssystemen Windows XP und Windows Vista validiert. | German |
|
Uncontrolled Keywords: |
Operational profile, Execution path, Device driver, Operating system, Testing, Black box |
Alternative keywords: |
Alternative keywords | Language |
---|
Operational profile, Execution path, Device driver, Operating system, Testing, Black box | English |
|
URN: |
urn:nbn:de:tuda-tuprints-13940 |
Classification DDC: |
000 Generalities, computers, information > 004 Computer science |
Divisions: |
20 Department of Computer Science > Dependable Embedded Systems & Software |
Date Deposited: |
03 Jun 2009 10:05 |
Last Modified: |
08 Jul 2020 23:19 |
URI: |
https://tuprints.ulb.tu-darmstadt.de/id/eprint/1394 |
PPN: |
21276814X |
Export: |
|