11 research outputs found
Towards the pervasive formal verification of multi-core operating systems and hypervisors implemented in C
This thesis deals with a semantic model stack for verification of functional correctness of multi-core hypervisors or operating systems. In contrast to implementations based on single-core architectures, there are additional features and resulting challenges for verifying correctness properties in the multi-core case, e.g. weak memory models (store buffers), or an inter processor interrupt mechanism.
The Verisoft XT project had the goal of verifying correctness of the Microsoft Hyper-V hypervisor and achieved great code verification results using the concurrent C verification tool VCC developed by our project partners during the project. A sound mathematical theory to support code verification was not established.
To remedy this shortcoming, we sketch a model stack for a simplified multi-core architecture based on a simplified MIPS model for system programmers and illustrate on a high level of abstraction how to obtain a simulation between neighboring models. A hardware model for this architecture is formalized at a detailed level of abstraction of the model stack. In addition, this thesis provides operational semantics for a quite simple intermediate language for C as well as an extension of this semantics with specification (ghost) state and code which can serve as a basis for arguing the soundness of VCC. Due to the powerful nature of specification code, a simulation between annotated and original program is not trivial. Thus, we give a pencil and paper proof.Die Arbeit befasst sich mit einem semantischen Modell-Stack fĂŒr die Verifikation der Korrektheit von Multi-Core Hypervisoren oder Betriebssystemen. Im Gegensatz zu auf Implementierungen auf Single-Core Architekturen stellen sich im Multi-Core Fall zusĂ€tzliche Herausforderungen fĂŒr die Verifikation von Korrektheitseigenschaften, z.B. durch schwache Speichermodelle, Speicherzugriffsmodi welche in begrenztem Rahmen kompatibel sind, Cache-Konsistenz-Protokolle welche (bei korrekter Benutzung der Speicherzugriffsmodi) ein einheitliches Bild des Speichers fĂŒr alle Maschinen garantieren, oder die Nutzung eines Inter-Prozessor-Interrupt Mechanismus (sowohl zum Starten der Maschine nach Reset als auch zum Zweck der Kommunikation zwischen Programmcode der auf verschiedenen Prozessoren ausgefĂŒhrt wird).
Im Verisoft Projekt (gefördert durch bmbf, 2003-2007) wurde die Korrektheit eines Betriebssystemes welches auf einem sequentiellen VAMP Prozessor mit nebenlĂ€ufigen Devices ausgefĂŒhrt wird durchgĂ€ngig formal verifiziert -- von Gatterebene der Hardwarekonstruktion bis hin zur korrekten AusfĂŒhrung des Betriebssystemes auf eben dieser Hardware. Das Nachfolgerprojekt Verisoft XT (2007-2010), welches unter anderem zum Ziel hatte die Korrektheit des Microsoft Hyper-V Hypervisors zu verifizieren, erreichte unter Benutzung des Verifikationstools VCC (welches im VerisoftXT Projekt durch den Projektpartner Microsoft Research entwickelt wurde) hervorragende Resultate im Bereich der Codeverifikation. Die Erstellung einer durchgĂ€ngigen mathematischen Theorie um diese Resultate zu untermauern wurde jedoch vernachlĂ€ssigt.
Um diesen Mangel zu beheben, skizzieren wir in der Dissertation einen Modell-Stack fĂŒr eine Multi-Core Architektur basierend auf einem vereinfachten MIPS-Modell fĂŒr Systemprogrammierer und illustrieren wie eine Simulation zwischen benachbarten Modellen erreicht wird. Teilweise ist die Erweiterung sequentieller Resultate auf die Multi-Core Architektur möglich indem man durch geeignete Software-Bedingungen (z.B. ZugriffsbeschrĂ€nkungen fĂŒr den gemeinsamen Speicher der Prozessoren gegeben durch ein Ownership-Modell) die AusfĂŒhrungsreihenfolgen der nebenlĂ€ufigen Maschine gerade soweit sequentialisiert dass eine Anwendung der alten Resultate möglich wird.
In der Dissertation wird ein formales Hardwaremodell fĂŒr die Multi-Core-MIPS-Architektur auf einer detaillierten Abstraktionsebene prĂ€sentiert. ZusĂ€tzlich enthĂ€lt die Arbeit die operationale Semantik einer fĂŒr die Hypervisor- und Betriebssystemverifikation geeignete Zwischensprache fĂŒr C und deren Erweiterung um Spezifikationszustand und -code. Die um Spezifikationszustand und -code erweiterte Zwischensprache kann als Basis fĂŒr einen Korrektheitsbeweis des Tools VCC dienen. Da aufgrund der mĂ€chtigen Spezifikationssprache von VCC (welche es z.B. erlaubt Spezifikationscode zu schreiben der nicht terminiert) eine Simulation zwischen annotiertem und originalem Programm nicht trivial ist, fĂŒhren wir den Beweis auf Papier
RadiationâInduced Signaling Results in Mitochondrial Impairment in Mouse Heart at 4 Weeks after Exposure to X-Rays
BACKGROUND: Radiation therapy treatment of breast cancer, Hodgkin's disease or childhood cancers expose the heart to high local radiation doses, causing an increased risk of cardiovascular disease in the survivors decades after the treatment. The mechanisms that underlie the radiation damage remain poorly understood so far. Previous data show that impairment of mitochondrial oxidative metabolism is directly linked to the development of cardiovascular disease. METHODOLOGY/PRINCIPAL FINDINGS: In this study, the radiation-induced in vivo effects on cardiac mitochondrial proteome and function were investigated. C57BL/6N mice were exposed to local irradiation of the heart with doses of 0.2 Gy or 2 Gy (X-ray, 200 kV) at the age of eight weeks, the control mice were sham-irradiated. After four weeks the cardiac mitochondria were isolated and tested for proteomic and functional alterations. Two complementary proteomics approaches using both peptide and protein quantification strategies showed radiation-induced deregulation of 25 proteins in total. Three main biological categories were affected: the oxidative phophorylation, the pyruvate metabolism, and the cytoskeletal structure. The mitochondria exposed to high-dose irradiation showed functional impairment reflected as partial deactivation of Complex I (32%) and Complex III (11%), decreased succinate-driven respiratory capacity (13%), increased level of reactive oxygen species and enhanced oxidation of mitochondrial proteins. The changes in the pyruvate metabolism and structural proteins were seen with both low and high radiation doses. CONCLUSION/SIGNIFICANCE: This is the first study showing the biological alterations in the murine heart mitochondria several weeks after the exposure to low- and high-dose of ionizing radiation. Our results show that doses, equivalent to a single dose in radiotherapy, cause long-lasting changes in mitochondrial oxidative metabolism and mitochondria-associated cytoskeleton. This prompts us to propose that these first pathological changes lead to an increased risk of cardiovascular disease after radiation exposure
In Richtung durchgÀngige formale Verifikation von in C implementierten Mehrkern-Betriebssystemen und -Hypervisoren
This thesis deals with a semantic model stack for verification of functional correctness of multi-core hypervisors or operating systems. In contrast to implementations based on single-core architectures, there are additional features and resulting challenges for verifying correctness properties in the multi-core case, e.g. weak memory models (store buffers), or an inter processor interrupt mechanism.
The Verisoft XT project had the goal of verifying correctness of the Microsoft Hyper-V hypervisor and achieved great code verification results using the concurrent C verification tool VCC developed by our project partners during the project. A sound mathematical theory to support code verification was not established.
To remedy this shortcoming, we sketch a model stack for a simplified multi-core architecture based on a simplified MIPS model for system programmers and illustrate on a high level of abstraction how to obtain a simulation between neighboring models. A hardware model for this architecture is formalized at a detailed level of abstraction of the model stack. In addition, this thesis provides operational semantics for a quite simple intermediate language for C as well as an extension of this semantics with specification (ghost) state and code which can serve as a basis for arguing the soundness of VCC. Due to the powerful nature of specification code, a simulation between annotated and original program is not trivial. Thus, we give a pencil and paper proof.Die Arbeit befasst sich mit einem semantischen Modell-Stack fĂŒr die Verifikation der Korrektheit von Multi-Core Hypervisoren oder Betriebssystemen. Im Gegensatz zu auf Implementierungen auf Single-Core Architekturen stellen sich im Multi-Core Fall zusĂ€tzliche Herausforderungen fĂŒr die Verifikation von Korrektheitseigenschaften, z.B. durch schwache Speichermodelle, Speicherzugriffsmodi welche in begrenztem Rahmen kompatibel sind, Cache-Konsistenz-Protokolle welche (bei korrekter Benutzung der Speicherzugriffsmodi) ein einheitliches Bild des Speichers fĂŒr alle Maschinen garantieren, oder die Nutzung eines Inter-Prozessor-Interrupt Mechanismus (sowohl zum Starten der Maschine nach Reset als auch zum Zweck der Kommunikation zwischen Programmcode der auf verschiedenen Prozessoren ausgefĂŒhrt wird).
Im Verisoft Projekt (gefördert durch bmbf, 2003-2007) wurde die Korrektheit eines Betriebssystemes welches auf einem sequentiellen VAMP Prozessor mit nebenlĂ€ufigen Devices ausgefĂŒhrt wird durchgĂ€ngig formal verifiziert -- von Gatterebene der Hardwarekonstruktion bis hin zur korrekten AusfĂŒhrung des Betriebssystemes auf eben dieser Hardware. Das Nachfolgerprojekt Verisoft XT (2007-2010), welches unter anderem zum Ziel hatte die Korrektheit des Microsoft Hyper-V Hypervisors zu verifizieren, erreichte unter Benutzung des Verifikationstools VCC (welches im VerisoftXT Projekt durch den Projektpartner Microsoft Research entwickelt wurde) hervorragende Resultate im Bereich der Codeverifikation. Die Erstellung einer durchgĂ€ngigen mathematischen Theorie um diese Resultate zu untermauern wurde jedoch vernachlĂ€ssigt.
Um diesen Mangel zu beheben, skizzieren wir in der Dissertation einen Modell-Stack fĂŒr eine Multi-Core Architektur basierend auf einem vereinfachten MIPS-Modell fĂŒr Systemprogrammierer und illustrieren wie eine Simulation zwischen benachbarten Modellen erreicht wird. Teilweise ist die Erweiterung sequentieller Resultate auf die Multi-Core Architektur möglich indem man durch geeignete Software-Bedingungen (z.B. ZugriffsbeschrĂ€nkungen fĂŒr den gemeinsamen Speicher der Prozessoren gegeben durch ein Ownership-Modell) die AusfĂŒhrungsreihenfolgen der nebenlĂ€ufigen Maschine gerade soweit sequentialisiert dass eine Anwendung der alten Resultate möglich wird.
In der Dissertation wird ein formales Hardwaremodell fĂŒr die Multi-Core-MIPS-Architektur auf einer detaillierten Abstraktionsebene prĂ€sentiert. ZusĂ€tzlich enthĂ€lt die Arbeit die operationale Semantik einer fĂŒr die Hypervisor- und Betriebssystemverifikation geeignete Zwischensprache fĂŒr C und deren Erweiterung um Spezifikationszustand und -code. Die um Spezifikationszustand und -code erweiterte Zwischensprache kann als Basis fĂŒr einen Korrektheitsbeweis des Tools VCC dienen. Da aufgrund der mĂ€chtigen Spezifikationssprache von VCC (welche es z.B. erlaubt Spezifikationscode zu schreiben der nicht terminiert) eine Simulation zwischen annotiertem und originalem Programm nicht trivial ist, fĂŒhren wir den Beweis auf Papier
Integrated Semantics of Intermediate-Language C and Macro-Assembler for Pervasive Formal Verification of Operating Systems and Hypervisors from VerisoftXT
Abstract. Pervasive formal verification of operating systems and hypervisors is, due to their safety-critical aspects, a highly relevant area of research. Many im-plementations consist of both assembler and C functions. Formal verification of their correctness must consider the correct interaction of code written in these languages, which is, in practice, ensured by using matching application binary interfaces (ABIs). Also, these programs must be able to interact with hardware. We present an integrated operational small-step semantics model of intermediate-language C and Macro-Assembler code execution for pervasive operating systems and hypervisor verification. Our semantics is based on a compiler calling conven-tion that defines callee- and caller-save registers. We sketch a theory connecting this semantic layer with an ISA-model executing the compiled code for use in a pervasive verification context. This forms a basis for soundness proofs of tools used in the VerisoftXT project and is a crucial step towards arguing formal cor-rectness of execution of the verified code on a gate-level hardware model.
Invariants, Modularity, and Rights
The quest for modular concurrency reasoning has led to recent proposals that extend program assertions to include not just knowledge about the state, but rights to access the state. We argue that these rights are really just sugar for knowledge that certain updates preserve certain invariants
Strategies to improve the explanatory power of a dynamic slope stability model by enhancing land cover parameterisation and model complexity
Despite the importance of land cover on landscape hydrology and slope stability, the representation of land cover dynamics in physically based models and their associated ecohydrological effects on slope stability is rather scarce. In this study, we assess the impact of different levels of complexity in land cover parameterisation on the explanatory power of a dynamic and processâbased spatial slope stability model. Firstly, we present available and collected data sets and account for the stepwise parameterisation of the model. Secondly, we present approaches to simulate land cover: 1) a grassland landscape without forest coverage; 2) spatially static forest conditions, in which we assume limited knowledge about forest composition; 3) more detailed information of forested areas based on the computation of leaf area development and the implementation of vegetationârelated processes; 4) similar to the third approach but with the additional consideration of the spatial expansion and vertical growth of vegetation. Lastly, the model is calibrated based on meteorological data sets and groundwater measurements. The model results are quantitatively validated for two landslideâtriggering events that occurred in Western Austria. Predictive performances are estimated using the Area Under the receiver operating characteristic Curve (AUC). Our findings indicate that the performance of the slope stability model was strongly determined by model complexity and land cover parameterisation. The implementation of leaf area development and land cover dynamics further yield an acceptable predictive performance (AUC ~0.71â0.75) and a better conservativeness of the predicted unstable areas (FoC ~0.71). The consideration of dynamic land cover expansion provided better performances than the solely consideration of leaf area development. The results of this study highlight that an increase of effort in the land cover parameterisation of a dynamic slope stability model can increase the explanatory power of the model.© 2018 The Author