Understanding and Improving Device Access Complexity ==================================================== Peripheral devices extend the functionality of computers and make them more interesting to use. However, their tremendous growth and evolution over the years has led to significant hardware and software complexity. Hardware complexity makes the devices unreliable and slows OS operations that require re-loading drivers like reboot and failure recovery. Furthermore, little is known about the more than 5 million lines of driver code. This limits our ability to improve device access code and understand future research directions. In this talk, I will address the challenges arising from device and OS complexity. First, I will present the first research consideration of peripheral device failures. I describe Carburizer, a code-rewriting tool and associated runtime, that handles the problems arising due to device failures and automatically recovers using restart/replay. I will then demonstrate the broad implications of these recovery techniques in modern drivers by showing some results from a study of drivers. Finally, I will describe how driver recovery can be improved by introducing a novel checkpoint/restore mechanism for drivers. Bio: Asim Kadav is a PhD student at the University of Wisconsin-Madison. He has been working with Prof. Michael M. Swift since 2008. He is interested in the broad area of systems. During his graduate career, he has worked on I/O virtualization, device drivers, and storage systems. Prior to graduate school, he worked at IBM and Oracle on distributed file systems (GPFS) and databases, respectively. He is expected to receive his PhD in 2013.