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.

Launch the Computer Systems course →

Topics

  1. Computer architecture (information processor, memory, embedded systems, peripherals such as sensors and actuators) and what distinguishes software/hardware, codes/programs/algorithms, chips/modules/boards/boxes.

  2. Information processor (Von Neumann architecture, instructions, instruction pointer, RISC/CISC, CPU/GPU, CGRA/FPGA/ASIC, self-modifying programs/circuits, input/output, interrupts).

  3. Assembly programs (registers, operation mnemonics, labels and jumps, time-sensitivity, faults and bitflips, errors such as overflow, error masking).

  4. Data structures (arrays, linked lists, pointer structures), memory layout (order, alignment, padding), and automatic/dynamic memory allocation (stacks, heaps).

  5. Procedural programming (stack operations, expressions, procedures, recursion, interrupt routines).

  6. Operating systems (POST, BIOS/UEFI firmware, kernel drivers and privilege separation, virtual memory, file systems, event logs, users, authentication and authorisation, delegation).

  7. The functions and local/global properties of layered computer architectures in the context of cyber operations.

  8. Concurrent and distributed systems (cooperative/preemtive multitasking, threads/warps, streaming multiprocessing, racing, conflict, synchronization, message passing).

  9. High-level versus low-level programming and assembly, compilation, interpretation processes (complex data structures, advanced control flow, fault tolerance, classes/objects/reflection/ontologies, passive/reactive/active objects, emergence/reification/invariance/Gestalt properties).

  10. Advanced concepts in computer systems (deterministic networking, cache coherency, hypervisors, cluster computing, live migration).

  11. Hardware/software asset management, security risks in hardware/software supply chains and deployment environments.

  12. The importance of separating specification/implementation/verification and how small errors in computer systems can lead to catastrophic outcomes.

  13. Practical experience with the ARM processor, including low-level programming and firmware flashing.

Schedule (2026)

Week 35:

  • August 25, 8:10 – 8:55
  • August 25, 9:00 – 9:45
  • August 28, 10:10 – 10:55
  • August 28, 11:00 – 11:45

Week 37:

  • September 8, 12:40 – 13:25
  • September 8, 13:30 – 14:15
  • September 11, 10:10 – 10:55
  • September 11, 11:00 – 11:45

Week 38:

  • September 15, 14:30 – 15:15
  • September 15, 15:20 – 16:05

Week 39:

  • September 23, 14:30 – 15:15
  • September 23, 15:20 – 16:05

Week 40:

  • September 30, 14:30 – 15:15
  • September 30, 15:20 – 16:05
  • October 1, 14:30 – 15:15
  • October 1, 15:20 – 16:05

Week 43:

  • October 20, 12:40 – 13:25
  • October 20, 13:30 – 14:15

Week 44:

  • October 30, 8:10 – 8:55
  • October 30, 9:00 – 9:45

Week 45:

  • November 3, 10:10 – 10:55
  • November 3, 11:00 – 11:45
  • November 6, 8:10 – 8:55
  • November 6, 9:00 – 9:45

Week 46:

  • November 10, 8:10 – 8:55
  • November 10, 9:00 – 9:45

Week 47:

  • November 17, 10:10 – 10:55
  • November 17, 11:00 – 11:45
  • November 20, 8:10 – 8:55
  • November 20, 9:00 – 9:45

Week 48:

  • November 24, 10:10 – 10:55
  • November 24, 11:00 – 11:45

Materials

  • Logic Gates, Circuits, Processors, Compilers and Computers
    Jan Friso Groote, Rolf Morel, Julien Schmaltz, Adam Watkins
    ISBN: 9783030685522

References

Assessment

Placeholder text for the assessment scheme.

Miscellaneous

Cover image: Aileen Devlin, Jefferson Lab

Back to top