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

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

Advanced Systems Topics

Lecturer: Dr S.M. Hand, Dr K.A. Fraser and Professor J.A. Crowcroft

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 reading

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.). ISBN 1-55860-523-1
Hennessy, J. & Patterson, D. (2003). Computer architecture: a quantitative approach (Chapter 6 in particular). Morgan Kaufmann (3rd ed.).

Background reading:
Oram, A. (ed.) (2001). Peer-to-peer: harnessing the power of disruptive technologies. O'Reilly. ISBN 059600110X

next up previous contents
Next: Bioinformatics Up: Lent Term 2006: Part Previous: Additional Topics   Contents
Christine Northeast
Sun Sep 11 15:46:50 BST 2005