| Week |
Date |
Topic |
Slides |
Print |
| 1 |
23.09 |
Course intro |
 |
 |
| 1,2 |
23,30.09 |
Programming L4 |
 |
 |
| 2 |
30.09 |
Page tables |
 |
 |
| 3 |
7.10 |
Cancelled (OSDI) |
| 4 |
14.10 |
Caches and TLBs |
 |
 |
|
Readings:
|
| 5 |
21.10 |
Microkernels, L4 |
 |
 |
|
Readings:
- Edsger W. Dijkstra. The structure of the
``THE'' multiprogramming system. Communications of the ACM,
11:341–346, 1968.
- Per Brinch Hansen. The nucleus of a
multiprogramming operating system. Communications of the ACM,
13:238–250, 1970.
- R. Levin, E. Cohen, W. Corwin, F. Pollack and W. Wulf. Policy/mechanism
separation in Hydra. In proceedings of the fifth ACM symposium on
Operating systems principles, pages 132–140, 1975.
- Richard Rashid, Avadis Tevanian Jr., Michael Young, David Golub,
Robert Baron, David Black, William J. Bolosky and Jonathan Chew. Machine-Independent Virtual
Memory Management for Paged Uniprocessor and Multiprocessor
Architectures. In IEEE Transactions on Computers, 37:896—908,
1988.
- Recommended: J. Bradley Chen and Brian N. Bershad. The impact of operating
system structure on memory system performance. In proceedings of
the 14th ACM symposium on Operating systems principles, pages 120–133,
1993.
- Jochen Liedtke. Improving IPC by kernel
design. In proceedings of the 14th ACM symposium on Operating
systems principles, pages 175–188, 1993.
- Recommended: Jochen Liedtke. On μ-kernel
construction. In proceedings of the 15th ACM symposium on Operating
systems principles, pages 237–250, 1995.
|
| 6 |
28.10 |
Kernel construction; Exokernel |
 |
 |
|
Readings:
- Richard P. Draves, Brian N. Bershad, Richard F. Rashid, and Randall
W. Dean. Using
continuations to implement thread management and communication in
operating systems. In proceedings of the 13th ACM symposium on
Operating systems principles, pages 122–136, 1991.
- Bryan Ford, Mike Hibler, Jay Lepreau, Roland McGrath, and Patrick
Tullmann.
Interface and execution models in the Fluke kernel. In proceedings
of the third symposium on Operating systems design and implementation,
pages 101–115, 1999.
- Recommended: Dawson R. Engler, M. Frans Kaashoek, and James
O'Toole Jr Exokernel: An operating
system architecture for application-level resource management In
proceedings of the 15th ACM symposium on Operating systems principles,
pages 251–266, 1995.
- M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, Héctor M.
Briceno, Russell Hunt, David Mazières, Thomas Pinckney, Robert Grimm,
John Jannotti, and Kenneth Mackenzie. Application performance
and flexibility on exokernel systems. In proceedings of the 16th
ACM symposium on Operating systems principles, pages 52–65, 1997.
|
| 7 |
04.11 |
IPC and Dispatch |
 |
 |
|
Readings:
- Recommended: Thomas E. Anderson, Brian N. Bershad, Edward D.
Lazowska, and Henry M. Levy. Scheduler activations:
effective kernel support for the user-level management of
parallelism. ACM Transactions on Computer Systems, 10(1):53–79,
February 1992.
- Brian D. Marsh, Michael L. Scott, Thomas J. LeBlanc, and Evangelos
P. Markatos. First-class user-level
threads. In proceedings of the 13th ACM symposium on Operating
systems principles, pages 110–121, 1991.
- Recommended: Brian N. Bershad, Thomas E. Anderson, Edward D.
Lazowska, and Henry M. Levy. Lightweight remote
procedure call. ACM Transactions on Computer Systems, 8(1):37–55,
February 1990.
- Graham Hamilton and Panos Kougiouris. The
Spring Nucleus: A microkernel for objects. Technical Report SMLI
TR-93-14, Sun Microsystems Laboratories, April 1993.
- Henry Massalin and Calton Pu. Threads and input/output
in the Synthesis kernel. In proceedings of the 12th ACM symposium
on Operating systems principles, pages 191–201, 1989.
- Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry
M. Levy. User-level
interprocess communication for shared memory multiprocessors. ACM
Transactions on Computer Systems, 9(2):175–198, May 1991.
|
| 8 |
11.11 |
Bulk data transport |
 |
 |
|
Readings:
- Peter Druschel and Larry L. Peterson. Fbufs: a high-bandwidth
cross-domain transfer facility. In proceedings of the 14th ACM
symposium on Operating systems principles, pages 189–202, 1994.
- Ian M. Leslie, Derek McAuley, Richard Black, Timothy Roscoe, Paul
Barham, David Evers, Robin Fairbairns and Eoin Hyden.
The design and implementation of an operating system to support
distributed multimedia applications. IEEE Journal on Selected Areas
in Communications, 14(7), 1997.
- David R. Cheriton. The V distributed
system. Communications of the ACM, 31(3), 1988.
- Joseph S. Barrera III. A fast Mach network
IPC implementation. In Proceedings of the Usenix Mach Symposium,
1991.
- Michael D. Schroeder and Michael Burrows. Performance of the
Firefly RPC. ACM Transactions on Computer Systems, 8(1):1–17,
February 1990.
- Keir Fraser, Steven Hand, Rolf Neugebauer, Ian Pratt, Andrew
Warfield and Mark Williamson.
Safe Hardware Access with the Xen Virtual Machine Monitor. In
Proceedings of the 1st OASIS workshop, 2004.
|
| 9 |
18.11 |
Networking |
 |
 |
|
Readings:
- David L. Tennenhouse. Layered
multiplexing considered harmful. In Proceedings of the 1st
International Workshop on High-Speed Networks, 1989.
- Peter Druschel and Gaurav Banga.
Lazy receiver processing (LRP): a network subsystem architecture for
server systems. In Proceedings of the 2nd Symposium on OS Design
and Implementation (OSDI), 1996.
- Jeffrey C. Mogul and K. K. Ramakrishnan. Eliminating receive
livelock in an interrupt-driven kernel. ACM Transactions on
Computer Systems, 15(3):217–252, August 1997.
- Ian Pratt and Keir Fraser. Arsenic: A
user-accessible gigabit ethernet interface. In Proceedings of
INFOCOM 2001, IEEE Computer Society.
- Richard Black, Paul T. Barham, Austin Donnelly and Neil Stratford.
Procotol
implementation in a vertically structured operating system. In 22nd
Annual IEEE International Conference on Local Computer Networks,
1997.
- Gregory R. Ganger, Dawson R. Engler, M. Frans Kaashoek, Hector M.
Briceño, Russell Hunt, and Thomas Pinckney. Fast and flexible
application-level networking on exokernel systems. ACM Transactions
on Computer Systems, 20(1):49–83, February 2002.
- David Mosberger and Larry L. Peterson.
Making Paths Explicit in the Scout Operating System. In Proceedings
of the 2nd Symposium on OS Design and Implementation (OSDI), 1996.
|
| 10 |
25.11 |
Multiprocessing and multicore |
 |
 |
|
Readings:
- John M. Mellor-Crummey and Michael L. Scott. Algorithms for scalable
synchronization on shared-memory multiprocessors. ACM Transactions
on Computer Systems 9(1):21–65, February 1991.
- Paul E. McKenney and John D. Slingwine. Read-copy
update: Using execution history to solve concurrency problems. In
Proceedings of the 10th IASTED International Conference on Parallel and
Distributed Computing and Systems, October 1998.
- Silas Boyd-Wickizer, Haibo Chen, Rong Chen, Yandong Mao, Frans
Kaashoek, Robert Morris, Aleksey Pesterev, Lex Stein, Ming Wu, Yuehua
Dai, Yang Zhang and Zheng Zhang.
Corey: An operating system for many cores. In Proceedings of the
8th Symposium on OS Design and Implementation (OSDI), 2008.
- Jonathan Appavoo, Dilma Da Silva, Orran Krieger, Marc Auslander,
Michal Ostrowski, Bryan Rosenburg, Amos Waterland, Robert W.
Wisniewski, Jimi Xenidis, Michael Stumm and Livio Soares. Experience
distributing objects in an SMMP OS. ACM Transactions on Computer
Systems 25(3), August 2007.
- Edouard Bugnion, Scott Devine, Kinshuk Govil and Mendel Rosenblum.
Disco: running
commodity operating systems on scalable multiprocessors. ACM
Transactions on Computer Systems 15(4):412–447, November 1997.
- Andrew Baumann, Simon Peter, Adrian Schüpbach, Akhilesh Singhania,
Timothy Roscoe, Paul Barham and Rebecca Isaacs.
Your computer is already a distributed system. Why isn't your OS?
In Proceedings of the 12th Workshop on Hot Topics in Operating Systems
(HotOS), May 2009.
- Andrew Baumann, Paul Barham, Pierre-Evariste Dagand, Tim Harris,
Rebecca Isaacs, Simon Peter, Timothy Roscoe, Adrian Schüpbach and
Akhilesh Singhania. The Multikernel: A
new OS architecture for scalable multicore systems. In Proceedings
of the 22nd ACM Symposium on Operating Systems Principles (SOSP),
October 2009.
|
| 11 |
02.12 |
Security |
 |
 |
|
Readings:
- Recommended: Ken Thompson. Reflections on Trusting
Trust. Communications of the ACM, 27(8):761–763, August 1984.
- Recommended: Norm Hardy. The Confused
Deputy: (or why capabilities might have been invented). ACM SIGOPS
Operating Systems Review 22(4):36–38, October 1988.
- Norm Hardy. The
KeyKOS architecture. ACM SIGOPS Operating Systems Review
19(4):8–25, October 1985.
- Jonathan S. Shapiro, Jonathan M. Smith and David J. Farber. EROS: a fast capability
system. In Proceedings of the 17th ACM Symposium on Operating
Systems Principles (SOSP), 1999.
- Gernot Heiser, Kevin Elphinstone, Jerry Vochteloo and Stephen
Russell.
The Mungi Single-Address-Space Operating System. In Software:
Practice and Experience, 18(9), July 1998.
- Dhammika Elkaduwe, Philip Derrin and Kevin Elphinstone.
Kernel design for isolation and assurance of physical memory. In
Proceedings of 1st Workshop on Isolation and Integration in Embedded
Systems, April 2008.
- Steve Vandebogart, Petros Efstathopoulos, Eddie Kohler, Maxwell
Krohn, Cliff Frey, David Ziegler, Frans Kaashoek, Robert Morris and
David Mazières. Labels and event
processes in the Asbestos operating system. ACM Transactions on
Computer Systems 25(4), December 2007.
- Recommended: Nickolai Zeldovich, Silas Boyd-Wickizer, Eddie
Kohler and David Mazières. Making
Information Flow Explicit in HiStar. In Proceedings of the 7th
Symposium on Operating Systems Design and Implementation (OSDI'06),
November 2006.
|
| 12 |
09.12 |
DSLs in OS construction |
 |
 |
|
Readings:
- Fabrice Mérillon, Laurent Réveillère, Charles Consel, Renaud
Marlet, and Gilles Muller. Devil: An IDL
for Hardware Programming In Proceedings of the 4th Symposium on
Operating Systems Design and Implementation (OSDI'00), October
2000.
- Andreas Haeberlen, Jochen Liedtke, Yoonho Park, Lars Reuther, and
Volkmar Uhlig. Stub-Code
Performance is Becoming Important. In Proceedings of the 1st
Workshop on Industrial Experiences with Systems Software, 2000.
- Michael D. Schroeder and Michael Burrows. Performance of the
Firefly RPC. ACM Transactions on Computer Systems 8(1), February
1990.
|
| 13 |
16.12 |
Scheduling |
 |
 |
|
Readings:
- Gaurav Banga, Peter Druschel and Jeffrey C. Mogul. Resource
containers: a new facility for resource management in server
systems. In Proceedings of the 3rd Symposium on Operating Systems
Design and Implementation (OSDI'99), February 1999.
- Carl A. Waldspurger and William E. Weihl.
Lottery Scheduling: Flexible Proportional-Share Resource Management
In Proceedings of the 1st Symposium on Operating Systems Design and
Implementation (OSDI'94), November 1994.
- Pawan Goyal, Xingang Guo and Harrick M. Vin.
A Hierarchical CPU Scheduler for Multimedia Operating Systems. In
Proceedings of the 2nd Symposium on Operating Systems Design and
Implementation (OSDI'96), October 1996.
- Kenneth J. Duda and David R. Cheriton. Borrowed-virtual-time
(BVT) scheduling: supporting latency-sensitive threads in a
general-purpose scheduler. In Proceedings of the 17th ACM Symposium
on Operating Systems Principles (SOSP), 1999.
- Scott A. Brandt, Scott Banachowski, Caixue Lin and Timothy Bisson.
Dynamic
integrated scheduling of hard real-time, soft real-time and
non-real-time processes. In Proceedings of the 24th IEEE
International Real-Time Systems Symposium (RTSS), 2003.
|
| 14 |
23.12 |
Cancelled |