CSE 221: Graduate Operating Systems
Date and Time:
Mondays and Wednesdays, 3:30-4:50, Room CSE 4140
Course Instructor: Prof. Joseph Pasquale
- Office hours: Mondays 2-3, in CSE 3112
Teaching Assistant: Erin McGinnis
- Office hours: 8:00-9:50am, Mon/Wed in EBU3B B250A, and by appt
This is a graduate class on operating systems where we critically review
some of the more influential
As a result of taking this class, you will learn the following:
Major principles of operating system design from original sources.
We will be reviewing a number of classic papers in
For many of you, this is your introduction to reading papers where key
ideas were first presented, as opposed to textbooks which generally
contain distilled summaries of these ideas.
How to analyze a technical paper.
This involves critical reading, driven by questions you formulate prior to,
during, and after reading (and rereading).
How to communicate effectively.
The class format is question/answer, "Socratic" style. It may feel
at first, but you will quickly get accustomed (and it will serve you
well outside of this class).
You will learn how to think and respond in real time.
The prerequisite for the class is CSE 120 (Principles of Computer Operating Systems), or the equivalent offered at other universities. This class ASSUMES you have this background; if you do not, I strongly recommend you reconsider taking this class and first take CSE 120, as it will be very difficult for you without this background.
As will be discussed in our first meeting, class attendance is very important. If you have a conflict and can't make class, you'll need to drop, as this is not the kind of class where you can simply do the work outside of class. If you cannot make a particular class meeting, it will be your responsibility to find out what happened from other students.
30% Class attendance/participation
30% Final paper
40% Final exam (Wed 03/20/19, 3:00PM-5:59PM, CSE Bldg room 2154)
Reading List (tentative)
E. W. Dijkstra,
The Structure of the "THE"-Multiprogramming System,
Communications of the ACM, Vol. 11, No. 5, May 1968, pp. 341-346.
P. B. Hansen,
The Nucleus of a Multiprogramming System,
Communications of the ACM, Vol. 13, No. 4, April 1970, pp. 238-241, 250.
A. Bensoussan, C. T. Clingen and R. C. Daley,
The Multics Virtual Memory: Concepts and Design,
Communications of the ACM 15, 5 (May 1972), 308-318.
D. G. Bobrow, J. D. Burchfiel, D. L. Murphy, and R. S. Tomlinson,
TENEX, a Paged Time Sharing System for the PDP-10,
Communications of the ACM, Vol. 15, No. 3, March 1972, pp. 135-143.
J. H. Saltzer,
Protection and the Control of Information Sharing in Multics,
Communications of the ACM, Vol. 17, No. 7, July 1974, pp. 388-402.
Operating Systems Review, Vol. 8, No. 1, January 1974, pp. 18-24.
W. Wulf, E. Cohen, W. Corwin, A. Jones, R. Levin, C. Pierson, and F. Pollack,
HYDRA: The Kernel of a Multiprocessor Operating System,
Communications of the ACM, Vol. 17, No. 6, June 1974, pp. 337-345.
A. N. Habermann , L. Flon , L. Cooprider,
Modularization and hierarchy in a family of operating systems,
Communications of the ACM, v.19 n.5, p.266-272, May 1976.
C. A. R. Hoare,
Monitors: An Operating System Structuring Concept,
Communications of the ACM, Vol 17, No 10,, October 1974, pp 549-557.
H. C. Lauer and R. M. Needham,
On the Duality of Operating System Structures,
Proc. Second International Symposium on Operating Systems,
IR1A, Oct. 1978
(reprinted in Operating Systems Review, Vol. 13, No. 2, April 1979, pp. 3-19).
D. D. Redell, Y. K. Dalal, T. R. Horsley, H. C. Lauer, W. C. Lynch, P. R. McJones, H. G. Murray, and S. C. Purcell,
Pilot: An Operating System for a Personal Computer,
Communications of the ACM, Vol. 23, No. 2, February 1980, pp. 81-92.
B. W. Lampson and D. D. Redell,
Experience with Processes and Monitors in Mesa,
Communications of the ACM, Vol. 23, No. 2, February 1980, pp. 105-117.
D. R. Cheriton, M. A. Malcolm, L. S. Melen, G. R. Sager,
Thoth, a portable real-time operating system
Communications of the ACM, Vol. 22, Issue 2, Feb 1979, pp. 105-115.
R. F. Rashid and G. G. Robertson,
Accent: A communication oriented network operating system kernel,
Proc. Eighth ACM Symposium on Operating Systems Principles (SOSP),
Pacific Grove, CA, 1981, pp. 64-75.
G. J. Popek, B. Walker, J. Chow, D. Edwards, C. Kline, G. Rudisin, and G. Theil,
LOCUS: A Network Transparent, High Reliability Distributed System,
Proc. Eighth Symposium on Operating Systems Principles, pp. 160-168, December 1981.
D. R. Cheriton and W. Zwaenepoel,
The Distributed V Kernel and its Performance for Diskless Workstations,
Proc. Ninth Symposium on Operating Systems Principles (SOSP),
A D Birrell and B J Nelson,
Implementing Remote Procedure Calls,
ACM Transactions on Computer Systems (TOCS),
Vol 2, No 1, February 1984, pp 39-59.
D. D. Clark,
The Structuring of Systems using Upcalls,
Proc. Tenth Symposium on Operating Systems Principles,
Operating Systems Review, 19, 5, pp. 171-180, December 1985.
Marshall K. McKusick, William N. Joy, Samuel J. Leffler, and Robert S. Fabry,
A Fast File System for Unix,
ACM Transactions on Computer Systems (TOCS),
Vol. 2, No. 3, August 1984, pp. 181-197.
R Sandberg, D. Goldberg, S. Kleiman, D. Walsh, B. Lyon,
Design and Implementation of the Sun Network Filesystem,
Proc. Summer 1985 USENIX Conference, June 1985.
M. Accetta et al.,
Mach: A new kernel foundation for UNIX development,
Proc. USENIX Summer Conference, Atlanta, GA, 1986, pp. 93-112.
D. Golub , R. Dean , A. Forin , A. Dean , R. Forin , R. Rashid,
Unix as an Application Program.
In USENIX 1990 Summer Conference, 1990, pp. 87-95.
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,
Proc. Nineteenth Symposium on Operating System Principles (SOSP),
October 2003, pp. 164-177.
You are expected to follow the UCSD Academic Integrity guidelines,
which you can find