CS591
Operating Systems II
Spring 2002



Prerequisites:

Overview:

Grading

Grading is based on:
In-class presentation(s) 15%
Semester project proposal, milestone* and final report 30%
Class projects and end of semester presentation / demonstration 50%
Class participation 5%

* The project milestone is a mid-semester report that will act as a skeleton for the final report. It should be similar to the final report with any preliminary results included, where appropriate. You should try to write your final report in the same format as the papers we will read and discuss in the course. The best papers will be selected as candidates for potential conference papers.

General Notes

Syllabus (subject to change)

Date

Topic

Reading

Notes

Presenter

January 15 Introduction (discussion of course outline)     Instructor
January 17 The Linux kernel, Part 1   Writing system calls.
Kernel-loadable modules
Instructor
         
January 22 The Linux kernel, Part 1 & 2   Debugging the kernel.
Tracking time in the kernel.
Task queues, timer queues, top/bottom half handlers
Instructor
January 24 The Linux kernel, Part 2 (continued)   See above Instructor
         
January 29 The Linux kernel,
Part 3
  Signals and interrupts Instructor
January 31 The Linux kernel, Part 3 (continued)   A Linux primer assignment Instructor
         
February 5 OS Structures [1]-[3]   Fadwa Al-Bawardi (paper [1])
February 7 OS Structures [1]-[3]   Will Drewry (paper [3])
         
February 12 Scheduling [4]-[12]   Gerald Fry (paper [4])
February 14 Scheduling [4]-[12] Project Proposals due
 
Sean Chen (paper [8])
         
February 19 - Monday Schedule -   - No Class -  
February 21 Scheduling / resource management [4]-[12],[35] Thread/packet scheduling issues Instructor
         
February 26 QoS Management [13]-[15]   Arpan Jhaveri (paper [15])
February 28 Scheduling [9]   Xun Yuan (paper [9])
         
March 5 - Spring Recess -   - No Class -  
March 7 - Spring Recess -   - No Class -  
         
March 12  
 
   
March 14 Control-Based Service Management
[16]-[18]
 
Mina Guirguis (paper[17])
         
March 19 Threads
[19]-[21]
Linux thread/process model Instructor
March 21  Threads
[19]-[21]  
Yijun Wang (paper [20])
         
March 26 Memory Management   Project milestone
Discussion of Linux memory management , virtual memory, address spaces

Instructor
March 28 Memory Management  

Slab allocation memory systems

 
Ernest Kim
         
April 2 Communication Mechanisms [26]-[27] (Optimistic) Active messages Yuting Zhang (paper [27])
April 4 Communication Mechanisms
[26]-[27]
  Instructor
         
April 9 High Performance Communications
[28]-[30]    Jacob Blumberg (paper [30])
April 11 Extensible Systems [36]-[38]   Instructor
         
April 16 Extensible Systems [36]-[38]   Ernest Kim (paper [37])
April 18 Event-based mechanisms [39]   Gabriel Parmer (paper [39])
         
April 23 The state of OS research [40]   Instructor
April 25 Project Presentations (Part 1)      
         
April 30 Project Presentations (Part 2)   Projects due  

Reading List

Books and Documentation Sources

OS Structures

[1] J. Liedtke, `` On Micro-Kernel Construction' ', Proceedings of the 15th ACM Symposium on Operating System Principles, ACM, December 1995.

[2] Dawson R. Engler, Frans Kaashoek and James O'Toole, `` Exokernel: An Operating System Architecture for Application-Level Resource Management '', Proceedings of the 15th ACM Symposium on Operating System Principles, ACM, December 1995.

[3] Brian Bershad et al., `` Extensibility, Safety and Performance in the SPIN Operating System '', Proceedings of the 15th ACM Symposium on Operating System Principles, December 1995.

Scheduling

[4] 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 ", 13 ACM Symposium on Operating System Principles, Oct. 1991, ACM SIGOPS Notices, 25, 5, December 1991.

[5] Clifford W. Mercer, Stefan Savage and Hideyuki Tokuda, " Processor Capacity Reserves: Operating System Support for Multimedia Applications ", In the Proceedings of the IEEE International Conference on Multimedia Computing and Systems, May 1994, pp. 1-10.

[6] M. Jones, D. Rosu and M. Rosu, " CPU Reservations and Time Constraints: Efficient, Predictable Scheduling of Independent Activities ", Proc. of the 16th ACM symposium on Operating System Principles, St-Malo, France, pp. 198-211, Oct. 1997.

[7] C. Liu and J. Layland, " Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment ", Journal of the ACM, 1973.

[8] Pawan Goyal, Xingang Guo and Harrick M. Vin, " A Hierarchical CPU Scheduler for Multimedia Operating Systems ", 2nd Symposium on Operating Systems Design and Implementation, pp. 107-121, 1996.

[9] Carl A. Waldspurger and William E. Weihl, " Lottery Scheduling: Flexible Proportional-Share Resource Management ", First Symposium on Operating Systems Design
and Implementation (OSDI '94), Monterey, CA, November 1994.

[10] Richard West, Karsten Schwan and Christian Poellabauer, " Scalable Scheduling Support for Loss and Delay Constrained Media Streams ", Proceedings of the 5th IEEE Real-Time Technology and Applications Symposium, June 1999.

[11] Aloysius K. Mok and Weirong Wang, "Window-Constrained Real-Time Periodic Task Scheduling", Proceedings of the 22nd IEEE Real-Time Systems Symposium, December 2001

[12] Kevin Jeffay and Gerardo Lamastra, "A Comparative Study of the Realization of Rate-Based Computing Services in General Purpose Operating Systems" .

QoS Management

[13] http://qos.ittc.ukans.edu/ (see specifically, http://qos.ittc.ukans.edu/howto/index.html ).

[14] J.A. Zinky, D.E. Bakken and R.E. Schantz, " Architectural Support for Quality of Service for CORBA Objects ", Theory and Practice of Object Systems, April, 1997. (See also: http://www.dist-systems.bbn.com/tech/QuO/ ).

[15] Tarek F. Abdelzaher and Kang G. Shin, `` End-host Architecture for QoS-Adaptive Communication '', IEEE Real-Time Technology and Applications Symposium, Denver, Colorado, June 1998.

(Adaptive / Feedback) Control-Based Service Management

[16] Ashvin Goel, David Steere, Calton Pu and Jonathan Walpole, " SWiFT: A Feedback Control and Dynamic Reconfiguration Toolkit ", OGI CSE Technical Report 98-009, poster presented at 2nd Usenix Windows NT Symposium, September 1998. (See also the Quasar project at OGI, http://www.cse.ogi.edu/sysl/ , for a detailed list of related papers).

[17] David C. Steere, Ashvin Goel, Joshua Gruenberg, Dylan McNamee, Calton Pu and Jonathan Walpole, " A Feedback-driven Proportion Allocator for Real-Rate Scheduling "  Operating Systems Design and Implementation (OSDI), Feb 1999.

[18] Chenyang Lu, Tarek F. Abdelzaher, John A. Stankovic, and Sang H. Son, "A Feedback Control Approach for Guaranteeing Relative Delays in Web Servers" .

Threads

[19] B. D. Marsh, M. L. Scott, T. J. LeBlanc, and E. P. Markatos, " First-class User-level Threads ", Proceedings of the Thirteenth Symposium on Operating System Principles (SOSP), October 1991.

[20] S. Oikawa and H. Tokuda, " User-level Real-Time Threads ", Proceedings of the 11th IEEE Workshop on Real-Time Operating Systems and Software, Seattle, WA, May 1994.

[21] R. P. Draves, B.N. Bershad, R.F. Rashid, and R.W. Dean, " Using Continuations to Implement Thread Management and Communication in Operating Systems ", Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles, pages 122--136, October 1991.

Memory Management

[22] M.J. Feeley, W.E. Morgan, F.H. Pighin, A. R. Karlin, H.M. Levy and C.A. Thekkath, `` Implementing Global Memory Management in a Workstation  Cluster '', Fifteenth ACM Symposium on Operating System Principles, Dec. 1995

Distributed System Concepts and Shared Memory

[23] L. Lamport, ``Time, Clocks, and the Ordering of Events in a Distributed System", Communications of the ACM, 21, 7, pgs. 558-565, July 1978.

[24] Mustaque Ahamad, Gil Neiger, Prince Kohli, James Burns and Phil Hutto, " Causal Memory:  Definitions, Implementation and Programming ", Distributed Computing, 9(1):37-49, Aug 1995.

[25] P. Keleher, A. Cox and W. Zwaenepoel, " Lazy Release Consistency for Software Distributed Shared Memory ", Proc. of the Twentieth International Symposium on Computer Architecture, 1993.

Communication Mechanisms

[26] A. Birrell and B. Nelson, "Implementing Remote Procedure Calls", ACM Transactions on Computer Systems, 2, 1, pgs. 39-59, February 1984

[27] D.A. Wallach, W.C. Hsieh, K.K. Johnson, M.F. Kaashoek and W.E. Weihl, " Optimistic Active Messages: A Mechanism for Scheduling Communication with Computation ", Proceedings of ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming (PPOPP), pgs. 217-225, July 1995.

High Performance Communications

[28] A. Montz, D. Mosberger, S.W. O'Malley, L.L. Peterson, T.A. Proebsting and J.H. Hartman, " Scout: A Communications-Oriented Operating System ", The University of Arizona, Department of Computer Science, TR 94-20, June 1994.

[29] N.C. Hutchinson and L.L. Peterson, " The x-Kernel: An Architecture for Implementing Network Protocols ", IEEE Transactions on Software Engineering, 17, 1, pgs. 64-76, January 1991.

[30] Deborah A. Wallach, Dawson R. Engler, and M. Frans Kaashoek, " ASHs: Application-specific Handlers for High-performance Messaging ", ACM Communication Architectures, Protocols, and Applications (SIGCOMM '96).

Linux Projects

[31] RTLinux: http://www.rtlinux.org/

[32] Shrimp: http://www.cs.princeton.edu/shrimp/

[33] Beowulf: http://www.beowulf.org/

[34] QoSockets: http://www.cs.columbia.edu/dcc/qosockets/

[35] DWCS: http://www.cc.gatech.edu/~west/dwcs.html
 

Extensible Systems

NOTE: See also Reference [3] (above) on SPIN.

[36] Chris Small and Margo Seltzer, "A Comparison of OS Extension Technologies" .

[37] Michael Jones, "Interposition Agents: Transparently Interposing User Code at the System Interface" .

[38] Peter Druschel, Vivek Pai and Willy Zwaenepoel, "Extensible Kernels are Leading OS Research Astray" .
 

Miscellaneous

[39] Gaurav Banga, Jeffrey Mogul, & Peter Druschel, "A scalable and explicit event delivery mechanism for UNIX"

[40] Rob Pike, Bell Labs, Lucent Technologies, "Systems Software Research is Irrelevant" .


Additional Readings

Distributed Filesystems

As this is a seminar course and not a conventional advanced operating systems course, we might not cover filesystems issues. However, filesystems is a very important topic, so I have included a couple of references that are useful. This is by no means an extensive list. If anybody is interested in knowing more, please consult me.

Scheduling

This is a network-oriented paper but it covers some interesting algorithms, particularly relevant for packet scheduling.

Threads

QoS Management

The following papers/links provide a more network-oriented view of QoS management.

Communication Mechanisms

Linux-Related Papers

Other Topics for Future Reference


Suggested Projects

NOTE: The following projects are merely suggestions. You are free to chose other projects as long as they have sufficient scope and relevance to the course. Many of the following projects vary substantially in scope and complexity. Exactly how much you achieve with any project will depend on the difficulty of the project and the number of people in your group, if you decide not to work alone. You should try to define what you hope to achieve with your project in the current semester. Projects that may extend beyond the end of the course, thereby forming the basis of a research project, are encouraged.
Last updated: April 7th by Rich West.