198:519 section 01 -- CS 519: Operating System Theory
Time and location for first lecture (9/6): Wednesday 6:40-9:30pm at SEC 202
Tentative time and location for all other lectures: Wednesdays and Fridays
6:40-8:10pm at CoRE 301 (aka CoRE A)
Instructor: Ricardo Bianchini
Email: ricardob@cs.rutgers.edu
Office Hours: By appointment
TA: Kien Le
Email: lekien@cs.rutgers.edu
Office Hours: Wed 10 -- 11 am in CoRE 340
Mailing list: dcs_519@email.rutgers.edu (for instructor and TA use only)
Announcements
- 12/01 -- No class on Dec. 13. Next two lectures will be longer to
compensate.
- 11/17 -- The final exam will be on Dec. 15 during the lecture time.
- 11/13 -- The default project is on-line
here.
It has been there for a couple of days actually.
- 10/18 -- No lecture on Oct. 25.
- 10/18 -- The lecture on Nov. 1 will be in Hill 254, instead of CoRE A.
The time will be the same as usual.
- 10/18 -- Please check out the 2nd assignment web page for the
correct kernel version on the VoS Lab machines.
- 10/12 -- The midterm will be on Nov 8 during the lecture time.
- 10/12 -- Second assignment is on-line
here.
- 09/27 -- Please go to the assignments Web page for handin
instructions.
- 09/13 -- First assignment is on-line
here.
- 08/22 -- I will entertain requests for special permission right
after the first lecture on Wednesday 09/06.
Course Overview
CS 519 is a graduate course in operating systems. This semester's
offering of CS 519 blends basic concepts with recent developments in
operating systems research. We will cover traditional OS topics such
as processes, threads, virtual memory, file systems, and communication
protocols. Each topic will have two parts: (i) a review of the basic
mechanisms and policies, and (ii) more advanced issues. If time
permits, we'll also cover advanced topics such as fault-tolerance and
other current research issues.
This course is based on Liviu Iftode's and Thu Nguyen's CS 519 courses.
Pre-requisites
Students must have taken an undergraduate-level operating systems and
computer architecture course. The project requires good knowledge of C
and UNIX. Note that these requirements are
serious; you may not be able to keep up with this course's load, if
you don't have the suggested background and programming skills. Even
if you do have the background and the skills, the course is heavy on
reading and programming assignments, so come motivated!
Course Material
- Required book: William Stallings. Operating Systems - Internals and
Design Principles, Prentice Hall.
- Required papers: most papers will be available on the course home page.
- Suggested book: Andrew Tanenbaum. Distributed Operating Systems,
Prentice Hall or Randy Chow and Theodore Johnson. Distributed
Operating Systems and Algorithms, Addison Wesley.
The text books are available at the Reserve Desk in MSL (Math and
Science Library), Hill Center.
Evaluation
Research project option
- 20% midterm
- 20% homeworks (and possibly presentations)
- 30% research project
- 30% final exam
Default option
- 20% midterm
- 20% homeworks (and possibly presentations)
- 20% default project
- 40% final exam
List of Assignments
Tentative Lecture Notes and List of Papers
-
Introduction
Stallings Chapters 1-2
- H. Hartig, M. Hohmuth, J. Liedtke, S. Schonberg, and J. Wolter.
The Performance of Micro-Kernel Based Systems.
Proceedings of the ACM Symposium On Operating System Principles
(SOSP), December 1997.
- P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho,
R. Neugebauer, I. Pratt, and A. Warfield.
Xen and the Art of Virtualization. Proceedings of the 19th
Symposium on Operating System Principles, October 2003.
-
Processes, Threads, and Synchronization Mechanisms
Stallings Chapters 3-6
-
Virtual Memory
Stallings Chapters 7-8
- P. Cao, E. Felten, A. Karlin, and K. Li.
Implementation and Performance of Integrated Application-Controlled Caching,
Prefetching and Disk Scheduling. ACM Transaction on Computer Systems
(TOCS), November 1996.
- J. S. Chase, H. M. Levy, M. J. Feeley, and E. D. Lazowska.
Sharing and Protection in a Single-Address-Space Operating
System. ACM Transactions on Computer Systems, Vol. 12, No. 4,
November 1994.
-
Uniprocessor and Multiprocessor Scheduling
Stallings Chapter 9-10 and Chow/Johnson Chapter 5
- T. Anderson, B. Bershad, E. Lazowska, and H. Levy.
Scheduler Activations: Effective Kernel Support for the User-Level
Management of Parallelism. ACM Transactions on Computer
Systems, Vol. 10, No. 1, February 1992, pp. 53-79.
- C. Waldspurger and W. Weihl.
Lottery Scheduling: Flexible Proportional-Share Resource Mangement.
Proceedings of the First Symposium on Operating Systems Design
and Implementation, November 1994.
- A. Gupta, A. Tucker, and S. Urushibara.
The Impact of Operating
System Scheduling Policies and Synchronization Methods on the
Performance of Parallel Applications. Proceedings of the
1991 ACM SIGMETRICS Conference, May 1991.
-
I/O and File Management
Stallings Chapters 11-12
- V. S. Pai, P. Druschel, and W. Zwaenepoel.
IO-Lite: A Unified Buffering and Caching System. Proceedings of
the Third Symposium on Operating Systems Design and Implementation,
February 1999.
- M. Rosenblum and J. K. Ousterhout.
The Design and Implementation of a Log-Structured File System.
ACM Trans. on Computer Systems, Vol. 10, No. 1, February 1992.
- Douglas S. Santry, Michael J. Feeley, Norman C. Hutchinson,
Alistair C. Veitch, Ross W. Carton, and Jacob Ofir.
Deciding when to forget in the Elephant file system.
Proceedings of the 17th ACM Symposium on Operating Systems
Principles (SOSP), 1999.
- Midterm
-
Protection and Security
Stallings Chapter 15 and Chow/Johnson Chapter 8
-
Communication in Tightly Coupled Systems
-
Introduction to Distributed Systems & Mechanisms for Building Distributed
Systems
Stallings Chapter 13 and (Tanenbaum Chapter 3 or Chow/Johnson Chapter 4)
- F. Douglis, J. Ousterhout, M. F. Kaashoek, and A. Tanenbaum.
A Comparison of Two Distributed Systems: Amoeba and Sprite.
Computing Systems, Vol. 4, No. 4, Fall 1991.
- B. Bershad, T. Anderson, E. Lazowska, and H. Levy.
Lightweight Remote Procedure Call.
ACM Transactions on Computer Systems Vol. 8, No. 1, February 1990.
- J. Yin, J.P. Martin, A. Venkataramani, L. Alvisi, and M. Dahlin.
Separating Agreement from Execution in Byzantine Fault-Tolerant
Services. Proceedings of the 19th ACM Symposium on Operating
Systems Principles (SOSP 2003), October 2003.
-
Distributed File Systems
Tanenbaum Chapter 5 or Chow/Johnson Chapter 6
-
Distributed Shared Memory
Tanenbaum Chapter 6 or Chow/Johnson Chapter 7
- C. Amza, A. L. Cox, S. Dwarkadas, P. Keleher, H. Lu, R. Rajamony,
W. Yu, and W. Zwaenepoel.
TreadMarks: Shared Memory Computing on Networks of Workstations.
IEEE Computer, Vol. 29, No. 2, February 1996.
- L. Iftode and J. P. Singh.
Shared Virtual Memory: Progress and Challenges. Proceedings
of the IEEE, Vol. 87, No. 3, March 1999.
-
Cluster Memory, Energy, and Availability Management
- G. Voelker, E. Anderson, T. Kimbrel, M. Feeley, J. Chase,
A. Karlin, and H. Levy.
Implementing Cooperative Prefetching and Caching in a Global
Memory System. Proceedings of the International Conference
on Performance Measurement, Modeling, and Evaluation, June
1998.
- E. Pinheiro, R. Bianchini, E. V. Carrera, and T. Heath.
Dynamic Cluster Reconfiguration for Power and Performance.
Compilers and Operating Systems for Low Power, Luca Benini,
Mahmut Kandemir, and J. Ramanujam (eds.), Kluwer Academic
Publishers, September 2003.
- Y. Saito, B. Bershad, and H. Levy.
Manageability, Availability and Performance in Porcupine: A Highly
Scalable Internet Mail Service. ACM Transactions on Computer
Systems, Aug 2000.
- Final