Operating Systems

Module aims

 To provide a thorough understanding of modern operating system design and implementation.

Learning outcomes

Learning Outcomes

By the end of the course students will be able to describe the basic principles used in the design of modern operating systems. In particular, they will:

- be able to distinguish different styles of operating system design.

- understand device and I/O management functions in operating systems
as part of a uniform device abstraction.

- have an understanding of disk organisation and file system
structure.

- be able to give the rationale for virtual memory abstractions in
operating systems.

- understand the main principles and techniques used to implement
processes and threads as well as the different algorithms for
process scheduling.

- understand the main mechanisms used for inter-process communication.

- understand the main problems related to concurrency and the
different synchronization mechanisms available.

- have the ability to evaluate security risks in operating systems and
understand the role operating systems can and should play in
establishing security.

Module syllabus

Content:

OS structure: kernel organisation, OS functionality

Device management: I/O layers, device independence, device drivers, I/O APIs

Disk management: disk storage devices, hardware layout, disk performance, disk scheduling, RAID, caching

File systems: files, file system organisation, directories

Memory management: logical/physical address spaces, virtual memory, paging, demand paging, page replacement

OS virtualisation: virtual machines, type 1/2 hypervisors, paravirtualisation, memory and I/O virtualisation

Processes: basic concepts and motivation, process creation and execution, implementation issues, process scheduling

Threads: basic concepts and motivation, user-level threads vs. kernel threads

Inter-process communication: signals. pipes, sockets, shared memory

Process synchronization: critical sections and mutual exclusion, race conditions, locks and semaphores, deadlocks

Security: basic concepts, security attacks, access control, automatic techniques for detecting security vulnerabilities

Teaching methods

 Teaching is based on lectures and tutorials. There is also a strong lab component.

Reading list

Module leaders

Professor Peter Pietzuch

Further course information