Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

David Costanzo

dblp:84/11041 · DBLP profile ↗
← Back
5ranked-venue papers
2as first author
0since 2021 · last 2020
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 2 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
4 papers
Program verification · 80% Operating systems · 12% Concurrent programming · 8%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Embedded and real-time systems · 100%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 14 heaviest of 14, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program verification › system verification › systems code verification
operating system verification
0.412020
Virtual timeline: a formal abstraction for verifying preemptive schedulers with temporal isolation · Proc. ACM Program. Lang. 2020
Embedded and real-time systems › real-time scheduling
preemptive scheduling
0.412020
Virtual timeline: a formal abstraction for verifying preemptive schedulers with temporal isolation · Proc. ACM Program. Lang. 2020
Embedded and real-time systems
real-time scheduling
0.412020
Virtual timeline: a formal abstraction for verifying preemptive schedulers with temporal isolation · Proc. ACM Program. Lang. 2020
Program verification
abstraction refinement
0.312018
Certified concurrent abstraction layers · PLDI 2018
Program verification
concurrent program verification
0.312018
Certified concurrent abstraction layers · PLDI 2018
Systems and software security
information flow control
0.212016
End-to-end verification of information-flow security for C and assembly programs · PLDI 2016
Systems and software security › information flow control
noninterference
0.212016
End-to-end verification of information-flow security for C and assembly programs · PLDI 2016
Program verification › system verification
end-to-end verification
0.212016
End-to-end verification of information-flow security for C and assembly programs · PLDI 2016
Program verification › security property verification
information flow verification
0.212016
End-to-end verification of information-flow security for C and assembly programs · PLDI 2016
Operating systems › kernel
kernel design
0.212016
CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels · OSDI 2016
Embedded and real-time systems › real-time virtualization
temporal isolation
0.112020
Virtual timeline: a formal abstraction for verifying preemptive schedulers with temporal isolation · Proc. ACM Program. Lang. 2020
Concurrent programming
concurrency verification
0.112018
Certified concurrent abstraction layers · PLDI 2018
Concurrent programming
concurrency bugs
0.112016
CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels · OSDI 2016
Program verification › system verification
kernel verification
0.112016
End-to-end verification of information-flow security for C and assembly programs · PLDI 2016

Methods — techniques the papers use, named apart from their topics

virtual timeline · 0.9supply bound function · 0.9coq · 0.9formal verification · 0.6simulation · 0.5coq proof assistant · 0.5layer-based verification · 0.3certified programming · 0.2
YearPublicationVenuePosition
2020 Virtual timeline: a formal abstraction for verifying preemptive schedulers with temporal isolation
abstract
The reliability and security of safety-critical real-time systems are of utmost importance because the failure of these systems could incur severe consequences (e.g., loss of lives or failure of a mission). Such properties require strong isolation between components and they rely on enforcement mechanisms provided by the underlying operating system (OS) kernel. In addition to spatial isolation which is commonly provided by OS kernels to various extents, it also requires temporal isolation, that is, properties on the schedule of one component (e.g., schedulability) are independent of behaviors of other components. The strict isolation between components relies critically on algorithmic properties of the concrete implementation of the scheduler, such as timely provision of time slots, obliviousness to preemption, etc. However, existing work either only reasons about an abstract model of the scheduler, or proves properties of the scheduler implementation that are not rich enough to establish the isolation between different components. In this paper, we present a novel compositional framework for reasoning about algorithmic properties of the concrete implementation of preemptive schedulers. In particular, we use virtual timeline , a variant of the supply bound function used in real-time scheduling analysis, to specify and reason about the scheduling of each component in isolation. We show that the properties proved on this abstraction carry down to the generated assembly code of the OS kernel. Using this framework, we successfully verify a real-time OS kernel, which extends mCertiKOS, a single-processor non-preemptive kernel, with user-level preemption, a verified timer interrupt handler, and a verified real-time scheduler. We prove that in the absence of microarchitectural-level timing channels, this new kernel enjoys temporal and spatial isolation on top of the functional correctness guarantee. All the proofs are implemented in the Coq proof assistant.
Mengqi Liu 0001, Lionel Rieg, Zhong Shao 0001, Ronghui Gu, David Costanzo, Jung-Eun Kim, Man-Ki Yoon
Proc. ACM Program. Lang.5
2018 Certified concurrent abstraction layers
abstract
Concurrent abstraction layers are ubiquitous in modern computer systems because of the pervasiveness of multithreaded programming and multicore hardware. Abstraction layers are used to hide the implementation details (e.g., fine-grained synchronization) and reduce the complex dependencies among components at different levels of abstraction. Despite their obvious importance, concurrent abstraction layers have not been treated formally. This severely limits the applicability of layer-based techniques and makes it difficult to scale verification across multiple concurrent layers.
Ronghui Gu, Zhong Shao 0001, Jieung Kim, Xiongnan (Newman) Wu, Jérémie Koenig, Vilhelm Sjöberg, Hao Chen 0023, David Costanzo, Tahina Ramananandro
PLDI8
2016 CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels
Ronghui Gu, Zhong Shao 0001, Hao Chen 0023, Xiongnan (Newman) Wu, Jieung Kim, Vilhelm Sjöberg, David Costanzo
OSDI7
2016 End-to-end verification of information-flow security for C and assembly programs
abstract
Protecting the confidentiality of information manipulated by a computing system is one of the most important challenges facing today's cybersecurity community. A promising step toward conquering this challenge is to formally verify that the end-to-end behavior of the computing system really satisfies various information-flow policies. Unfortunately, because today's system software still consists of both C and assembly programs, the end-to-end verification necessarily requires that we not only prove the security properties of individual components, but also carefully preserve these properties through compilation and cross-language linking. In this paper, we present a novel methodology for formally verifying end-to-end security of a software system that consists of both C and assembly programs. We introduce a general definition of observation function that unifies the concepts of policy specification, state indistinguishability, and whole-execution behaviors. We show how to use different observation functions for different levels of abstraction, and how to link different security proofs across abstraction levels using a special kind of simulation that is guaranteed to preserve state indistinguishability. To demonstrate the effectiveness of our new methodology, we have successfully constructed an end-to-end security proof, fully formalized in the Coq proof assistant, of a nontrivial operating system kernel (running on an extended CompCert x86 assembly machine model). Some parts of the kernel are written in C and some are written in assembly; we verify all of the code, regardless of language.
David Costanzo, Zhong Shao 0001, Ronghui Gu
PLDI1
2012 A Case for Behavior-Preserving Actions in Separation Logic
David Costanzo, Zhong Shao 0001
APLAS1