ECE7995: Computer
Storage and Operating System Design Fall 2009 Instructor: Dr. Song Jiang
Location: 0199 MANO
![]()
Time: Tuesday/Thursday 10:00am
- 11:50am
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
ü 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.