Computer Systems

A study of computer systems, information processors and operating systems, and their performance versus information security risks.

Author
Abstract

The course addresses, using logical and mathematical first principles, important hardware and software components within computer technology by means of examples from various military and safety-critical systems, such as air defence systems, air traffic control, the control of nuclear reactors, distributed energy systems, the automation of industrial processes, and from civil infrastructure such as tunnels, bridges, locks, and railway networks. We study the information processor, instruction encoding and data structures, and operating systems and virtualisation. We also cover the Common Criteria and formal methods for evaluating and assuring the quality of (parts of) computer systems, and reflect on the trade-off between performance optimisations and safety and security guarantees.

Learning outcomes. Upon successful completion of this course, the student is able to:

  • Describe the main components and functions of real-time computer systems, and explain the interplay between processor, memory, network, and sensors and actuators.
  • Describe the operation of modern processors, including performance optimisations (such as caching, pipelining, and out-of-order speculative execution) and the risks surrounding system and information security.
  • Analyse the meaning of programs (including data structures and memory layout, and sequential and parallel programs), distinguish between high- and low-level programming languages, and describe the steps in the assembly and compilation process.
  • Explain the basic structure and operation of operating systems, including drivers and privilege separation, memory management and file systems, user authentication and authorisation, and logging.
  • Explain advanced concepts within computer systems, including virtualisation and cluster and cloud environments.
  • Describe the risks of dependencies in the hardware and software supply chain.
  • Survey the potential consequences of design errors in safety-critical systems, and recognise the importance of the separation between specification, implementation, and verification.
  • Program an ARM processor at a low level.

Topics

Placeholder text for the list of topics covered in this course.

Schedule

Placeholder text for the weekly schedule.

Materials

Placeholder text for lecture notes, slides, and reading list.

Assessment

Placeholder text for the assessment scheme.

Back to top