Computer Laboratory Home Page Search A-Z Directory Help
University of Cambridge Home Computer Laboratory
Computer Science Tripos Syllabus - Advanced Systems Topics
Computer Laboratory > Computer Science Tripos Syllabus - Advanced Systems Topics

Advanced Systems Topics next up previous contents
Next: Bioinformatics Up: Lent Term 2005: Part Previous: Additional Topics   Contents

Advanced Systems Topics

Lecturer: Dr S.M. Hand and others

No. of lectures: 16

Prerequisite courses: Concurrent Systems and Applications, Operating Systems II, Digital Communication II


This course will cover a selection of topics in the general area of systems including operating systems, database systems, peer-to-peer systems and parallel and distributed systems. It aims to help students develop and understand complex systems and interactions, and to prepare them for emerging systems architectures.


  • Advanced operating systems. Extensible systems. Capability systems. Distributed operating systems (scheduling, resource control). Distributed and persistent virtual memory. Hypervisors and machine virtualisation. Networked storage architectures (NAS, SAN). Database and filing system topics. [SMH, 6 lectures]

  • Scalable synchronization. Correctness properties. Facilities provided by hardware. Simple spin-locks. Queue-based locks. Lock-free data structures. Memory access ordering. [KAF, 4 lectures]

  • Peer-to-peer systems. Client-server versus P2P. Case studies (napster, gnutella, RON, Freenet, Publius). Middleware (Chord, CAN, Tapestry, JXTA, ESM, Overcast). Applications (Storage, conferencing). [JAC, 6 lectures]


On completing the course, students should be able to

  • describe three techniques for supporting extensibility

  • argue for and against distributed shared virtual memory

  • describe how to build effective concurrency-control primitives for a modern computer

  • compare and contrast various distributed lookup schemes

  • architect a basic peer-to-peer application

Recommended books

Singhal, M. & Shivaratri, N. (1994). Advanced concepts in operating systems: distributed, database, and multiprocessor operating systems. McGraw-Hill.
Stonebraker, M. & Shivaratri, N. (1998). Readings in database systems. Morgan Kaufmann (3rd ed.).
Hennessy, J. & Patterson, D. (2003). Computer architecture: a quantitative approach (Chapter 6 in particular). Morgan Kaufmann (3rd ed.).

next up previous contents
Next: Bioinformatics Up: Lent Term 2005: Part Previous: Additional Topics   Contents
Christine Northeast
Wed Sep 8 11:57:14 BST 2004