SCS Recruiting Seminar: Pedro Fonseca
TITLE: Building Reliable Software Systems
Applications critically depend on the reliability of underlying software layers, such as distributed systems, operating systems, and hypervisors. Building reliable systems is a challenging task in this context, not only because of their large scale but also because their development often requires correctly reasoning about concurrency, complex hardware semantics, and non-intuitive fault models. Combined, these hurdles make the already challenging task of developing software significantly more difficult.
In this talk, I will discuss systematic and principled approaches to help developers build correct systems. First, I will present a technique for testing operating system kernels that systematically explores their thread interleaving space, thereby effectively exposing hard-to-find kernel concurrency bugs. Next, I will introduce a systematic testing technique for modern, hardware-accelerated hypervisors that leverages symbolic execution to automatically construct effective hypervisor test cases. Finally, I will show how to complement formal verification techniques with testing approaches to bridge the gap between the two fields and help developers build reliable systems.
Pedro Fonseca is a postdoctoral researcher in the systems lab at the Paul G. Allen School of Computer Science and Engineering of the University of Washington, where he works with Arvind Krishnamurthy, Hank Levy, and Xi Wang. He completed his Ph.D. in 2015 at the Max Planck Institute and the University of Saarland, where he worked with Rodrigo Rodrigues. He is interested in principled and systematic approaches to build reliable software systems, and he tackles this research problem by gathering insights about emerging trends, building systematic testing tools, and designing and redesigning software systems.
- Workflow Status: Published
- Created By: Tess Malone
- Created: 03/28/2018
- Modified By: Tess Malone
- Modified: 03/28/2018