Instructor:
Dr. Shieu-Hong Lin
Email:
shieu-hong.lin@bubbs.biola.edu
Class:
Tuesday & Thursday
Office
Hours: Tuesday & Thursday
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.
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.
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.