This course covers a set of advanced topics in data centers. The focus is on principles, architectures, and protocols used in modern data centers. We will cover hardware architectures, networks, operating systems, run-time systems, and applications. The goal of the course is to build on basic computer architecture, networking and operating systems course material to provide an understanding of large, complex networked systems, and provide concrete experience of the challenges through a set of labs.
Prerequisites: This course builds on the computer systems course (CS 439 or equivalent), the contents of which will be assumed knowledge. Proficiency in C programming is assumed.
Readings: Instead of a lecture, the course material is conveyed via a series of research papers and system documentation. Each week, a set of papers is assigned for reading and we will discuss the papers in class. Papers will be posted on the Piazza site. There is no textbook for this course, as no published book covers the material in sufficient depth.
Project: The course is structured around a significant project which builds up, over the course of the semester, a fairly complete operating system for the ARM-based Pandaboard hardware. The OS is based on the Barrelfish open-source multikernel originally developed at ETH Zurich in collaboration with Microsoft Research.
Grading: Grading will be based on the project. Throughout the class, students will be working in groups of 3-4 on the project. The project is sub-divided into milestones that are assigned and graded in weekly intervals (some milestones are multi-week). Each milestone will be individually graded and the final grade is a composition of these grades.
Students with disabilities may request appropriate academic accommodations from the Division of Diversity and Community Engagement, Services for Students with Disabilities, 512-471-6259, http://www.utexas.edu/diversity/ddce/ssd/.