home search a-z help
University of Cambridge 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 2007: Part Previous: Additional Topics   Contents

Advanced Systems Topics

Lecturers: Dr K.A. Fraser, Dr D. McAuley, Dr S.D. Kounev, Dr M.S. Castro and Dr M.A. Costa

No. of lectures: 16

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


This course will cover a selection of topics in the general area of systems including operating systems, database 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.


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

  • 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. [DM, 6 lectures]

  • Experimental Performance Analysis. Performance metrics. Summarising measured data. Errors in experimental measurements. Comparison of alternatives. Experimental design. Analysis of variance. Case studies. [SDK, 4 lectures]

  • Worm containment. Worm attacks: infection, spreading and hiding. Approaches to containment: host quarantine, throttling, content filtering, Vigilante. Detection with dynamic data-flow/taint analysis and data-flow integrity. Verifiable security alerts; alert distribution. Protection with vulnerability-specific filters. [MSC and MAC, 2 lectures]


On completing the course, students should be able to

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

  • describe three techniques for supporting extensibility
  • argue for and against distributed shared virtual memory

  • quantify errors in experimental measurements
  • compare alternative system configurations based on measurement data
  • design experiments to evaluate the effect of multiple configuration parameters

  • describe how worms infect vulnerable software
  • compare various approaches to worm containment
  • describe worm detection and protection techniques

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.).

next up previous contents
Next: Bioinformatics Up: Lent Term 2007: Part Previous: Additional Topics   Contents
Christine Northeast
Tue Sep 12 09:56:33 BST 2006