ECE7995: Computer Storage and Operating System Design

Fall 2009

 

 

Instructor:   Dr. Song Jiang

                    

                    
Time:       Tuesday/Thursday 10:00am - 11:50am

 

Location:   0199 MANO 

 
Office Hours:    Tuesday/Thursday 1:00pm---2:00pm or by appointment
                           3150 Engineering Building

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 


Course Description

 

Storage system is among the most fascinating and the most important components in the computer system. It often dominates the performance of a system, and their components' inner workings require amazing feats of engineering. Whenever you run your MATLAB, backup your data, check your Yahoo! Email, or shop at Amazon.com, storage systems are working behind the scene. 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. While the market for high-performance, ease-to-management storage systems is broadening, the demand for scientists and engineers who have expertise in this area from the industry is ever-growing. For the effective use of storage systems, operating system is the most crucial layer of system software that makes I/O requests from users/applications be efficiently fulfilled at storage devices.    

 

This course will cover the design, implementation, and use of storage systems, from the characteristics and operation of individual storage devices to the operating system 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.

 

 

Download lecture notes and handouts

 

 ü Lecture 1

 ü Lecture 2

 ü Lecture 3

 ü Homework1

 ü Lecture 4

 ü Lecture 5

 

    ü Lab 1 description and source code

    ü Lab 2 description

 

 

Tentative Syllabus

This course will cover a wide spectrum of system-level topics in the design, implementation, and use of storage systems. Topics to be covered include:

 

Components

 

 

Students have the opportunities to touch the kernel of a real operating system – Linux. They will be provided step-by-step instructions on how to create their own sys-calls, build their own kernels, and use the kernel to reboot a (virtual) machine.  They can learn how to fix bugs in a kernel even when the bugs can crash the system. They can explore how to make a better memory buffer management or a better strategy for disk data layout to improve storage system performance.  To enjoy the process, students only need to keep their curiosity and a basic understanding of C programming and commands of Linux (or any Unix) systems.  Detailed instructions will be provided. The skills and experiences to be learned in the class would be a highly-demanded asset for ECE students in industry.

 

 

 

The final project will be a synthesis paper. Students will research an area by selecting and reading two or three related works from highly selective conference or journal venues. The student will then construct a taxonomy and use the taxonomy as an organizing principle for his/her thoughts and for the paper. The paper can be a comprehensive survey with their insightful comments, or a research paper with their innovative ideas, designs, possibly, implementations and evaluations. It is strongly encouraged to demonstrate the correctness/advantages of their algorithm designs via a Linux implementation using kernel hacking skills learned in the course. The project can prepare students with independent research experience, resulting in publishable material suitable for a workshop or conference.

 

Course Prerequisites

 

Though not required, a background of computer architecture and operating system would definitely help in understanding the concepts and designs presented in the classes. Familiar with C programming is desirable. If your background is lacking in some of these aspects, more time and efforts shall be invested.

 

 

Course Textbook:

 

There are no required textbooks. The materials to be presented in the course will be posted on the course website.  Some introductory materials of the course about basic concepts of operating system (including file system), distributed file system, storage system are from the following textbook. If you have only minimal understanding of these concepts, it is suggested to have the book on hand.

 

Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Operating System Concepts (7 edition) John Wiley & Sons;

 

 

Grading Policy

 

The course grade will be determined by the student's performance over three areas: projects, readings, and problem solving. Discussion is instrumental to effective learning, so the student is expected to read papers outside of class. Homework includes writing abstracts and comments for papers that are assigned. While this is a more research-oriented class, students are expected to be actively involved in the classes through raising questions, answering questions from instructor and other students, and offering their own opinions.

 

End-of-semester numeric scores will be weighted as follows:

 

ü      30% homework assignments

§         10% writing homework

§         20% Linux kernel programming

ü      20% Midterm

ü      35% Final project

§         10% presentation 1

§         10% presentation 2

§         15% project report

ü      15% class participation and discussions.

 

The final will be distributed as A (100-90), A- (89-85), B+(84-80) B (79-75), B-(74-70), C+(69-65), C(64-60), C-(59-55) F (below 55).

 

Academic integrity

 

Learning is a collaborative process. However, plagiarism, copyright infringement, and other types of academic dishonesty will NOT be tolerated. As a rule of thumb, cite the source (of both written and verbal contributions to your ideas and products).

 

 

Disability

 

If you have a documented disability that requires accommodations, you will need to register with Student Disability Services for coordination of your academic accommodations.  The Student Disability Services (SDS) office is located at 1600 David Adamany Undergraduate Library in the Student Academic Success Services department.  SDS telephone number is 313-577-1851 or 313-577-3365 (TDD only).  Once you have your accommodations in place, I will be glad to meet with you privately during my office hours to discuss your special needs.  Student Disability Services’ mission is to assist the university in creating an accessible community where students with disabilities have an equal opportunity to fully participate in their educational experience at Wayne State University.