Modern computer systems have become tightly intertwined with our daily lives. However, they are failure-prone and difficult to manage and thus hardly dependable. Today, these problems dominate total cost of ownership of computer systems, and unfortunately they have no simple solutions. There is a realization that these problems cannot be decisively solved but are ongoing facts of life that must be dealt with regularly. To do so, systems should be designed to detect, isolate, and recover from these problems.
This advanced graduate-level course focuses on dependability in software systems and examines current research that aims to address challenges caused by software and hardware bugs and software misconfiguration. Students are expected to read and critique recent research papers in operating systems that cover these areas. They are also expected to work on a research project and make class presentations.