Department of Computer Science 

CS 4410/4411: Fall 2008

Systems Programming and Operating Systems

Course Details
 Course Staff/Help
 Academic Integrity
 How to Lose in CS 4410
 Lecture Notes
 CS4411 Sections
 C for Java programmers
 Suggested Readings
On Operating Systems Implementation:
On writing concurrent programs:
  • An introduction to programming with threads.
    Andrew Birrel

    Research Report 35, Digital Equipment Corporation Systems Research Center, 1989.
  • On networking:
  • End-to-End Arguments in System Design.
    Jerome H. Saltzer, David P. Reed, and David D. Clark.
    Second International Conference on Distributed Computing Systems, pages 509-512.
    ACM Transactions in Computer Systems 2, 4, November 1984, pages 277-288.

  • Ethernet: Distributed Packet Switching for Local Computer Networks
    Robert M. Metcalfe and David R. Boggs
    Communications of the ACM, 7, Volume 9, July 1976

  • Development of the Domain Name System
    Paul V. Mockapetris, and Kevin J. Dunlap
    ACM SIGCOMM 1988, Pages 123-133

  • On the Effectiveness of DNS-based Server Selection
    Anees Shaikh, Renu Tewari, Mukesh Agrawal

  • On Memory Allocation
  • A Memory Allocator
    Doug Lea
    A short documentation on the implementation his malloc routines, April 2000
  • On P2P File Systems
  • Storage Management and Caching in PAST, A Large-scale, Persistent Peer-to-peer Storage Utility
    Antony Rowstron and Peter Druschel
    18th Symposium on Operating Systems Principles, October 2001

  • Wide-Area Cooperative Storage with CFS
    Frank Dabek, M. Frans Kaashoek, David Karger, Robert Morris and Ion Stoica
    18th Symposium on Operating Systems Principles, October 2001
  • On Distributed Systems
  • Impossibility of distributed consensus with one faulty process
    Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson
    Journal of the ACM, 32(2):374-382, April 1985

  • The Byzantine Generals Problem
    Leslie Lamport, Robert Shostak and Marshall Pease
    ACM Transactions on Programming Languages and Systems 4(3):382-401, July 1982