Operating Systems

CSCI 311, Fall semester, 2006

 

Instructor:   Dr. Shieu-Hong Lin

Email: shieu-hong.lin@bubbs.biola.edu

Class: Tuesday & Thursday 3:00-4:15 pm at LIB 141

Office Hours: Tuesday & Thursday 3:00-5:00 pm, Math&CS department

Online Course Website:   http://csci.biola.edu/csci311

 

Course objectives: 

˛  Explore the key components of modern operating systems: process management, memory management, file-system management, and networking services to understand in depth how the modern operating systems work and the underlying mechanisms to provide all the system services.

˛  Understand the key concepts of concurrent programming using semaphores and other mechanisms to deal with concurrency and synchronization and be able to reason and write correct concurrent programs

˛  Gain hands-on experiences of operating systems through a term project by experimenting with OS system APIs, constructing a prototype OS, tracing source code, or managing a prototype networking environment.

˛  Learn to be competent power users of both Windows and Linux platforms.

 

Textbook:

˛  Andrew S. Tanenbaum & Albert S. Woodhull,. Operating Systems: Design and Implementation (3rd Edition), Prentice-Hall, 2005.

 

Grading structure

1.      Attendance & participation                                                    10%

2.      Weekly reading assignments                                                   10%

3.      Written & programming assignments                                   15%

4.      Term research project                                                        35%

5.      Mid-term                                                                                 15%

6.      Final                                                                                        15%

 

Your comments on reading assignments

For each reading assignment, please send me a paragraph of informal comments like new insight, confusion, questions, or else on the subject.

 

Term research project

For the project, you should conduct in-depth research on subjects like process management, memory management, the file system, or some other operating system issues by studying related articles or books, doing code tracing, system programming, and/or installations. By default, you’ll be assigned to trace a portion of the MINIX implementation, but you can also search for a topic and propose your plan by the end of September. In the remainder of the semester, you shall give a couple of short presentations of your study and in the end of the semester and submit a term report documenting what you have done and learned.

 

Schedule

˛  Aug. 24               Overview & Background

˛  Sept. 1-15            Processes and Process management

˛  Sept. 16-30          Memory management

˛  Oct. 1-15             File system & I/O management

˛  Oct. 16-31          Project proposal, Take-home Midterm

˛  Nov.1-15             Concurrency: mutual exclusion & synchronization

˛  Nov. 16-30          Deadlock & starvation

˛  Dec.1-10              Threads & micro-kernels; Distributed Systems

˛  Dec.11-20            Term project presentation; Take-home final

 

References

1.      Daniel P. Bovet & Marco Cesati, Understanding the LINUX Kernel (3rd Edition), O’Reilly, 2005.

2.      Johnson M. Hart, Win32 System Programming (2nd Edition), Addoson-Wesley, 2001.

3.      David A. Solomon & Mark E. Russinovich, Windows Internals (4th Edition), Microsoft Press, 2005

4.      Online Information & distribution of the MINIX operating system:  http://www.cs.vu.nl/~ast/minix.html

5.       Online Linux website: http://www.linux.org.