School of Computer Science

Module 06-23636 (2011)

Operating Systems with C/C++

Level 3/H

Matthew Smart Eike Ritter Semester 1 20 credits
Co-ordinator: Eike Ritter
Reviewer: Antoni Diller

The Module Description is a strict subset of this Syllabus Page.


The aims of this module are to:

  • describe the role of an operating system
  • show how resource management is done in an OS
  • explain the fundamentals of system-level programming in C/C++ (e.g. pointers, structures, and the build process)
  • evaluate security mechanisms in OS
  • explore, through theory and practical exercises, techniques of memory management, scheduling, synchronisation, inter-process communication, file-systems and hardware I/O
  • explore trends in virtualisation, emulation and the increasing use of sophisticated OS in embedded/mobile systems

Learning Outcomes

On successful completion of this module, the student should be able to:

  • describe the general role of an OS and understand prevalent OS architectures
  • for a given set of problems, conduct a suitable decomposition into processes and threads
  • comprehend, write, build, and package system- and kernel-level code written in C/C++
  • demonstrate an understanding of the process of kernel development, such as kernel compilation and module development
  • devise appropriate security mechanisms in a given situation and demonstrate an understanding of the role an operating system can and should play in establishing security

Taught with

  • 06-23635 - Operating Systems with C/C++ (Extended)

Teaching methods

3 hours of lectures per week, 2 hours of lab work per week


  • Sessional: 1.5 hour examination (80%), coursework (20%)
  • Supplementary: 100% examination

Detailed Syllabus

  1. Role of Operating System
  2. Processes
  3. Scheduling
  4. Memory Management
  5. File Systems
  6. Pointers
  7. Libraries in C
  8. C++
  9. Linux Kernel Programming

Programmes containing this module