Storage systems are among the most fascinating and the most important parts of computer systems.
They often dominate the performance of a system, and their components' inner workings require amazing feats of engineering. Within the field of computer systems and computer engineering, there is no area whose demand for bright people and better solutions is growing more rapidly. This course will cover the design, implementation, and use of storage systems, from the characteristics and operation of individual storage devices to the OS, database, and networking approaches involved in tying them together and making them useful. Along the way, we will examine several case studies of real systems, demands placed on storage systems by important applications, and impacts of trends and emerging technologies on future storage systems. Spring 2001 will be the first offering of this course, and it will be developed largely on the fly.