School of Computer Science

Module 06-23636 (2013)

Operating Systems with C/C++

Level 3/H

Eike Ritter Semester 1 20 credits
Co-ordinator: Eike Ritter
Reviewer: John Barnden

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


This module gives a practical insight into modern operating systems, reinforcing the theory (e.g. architecture, scheduling, memory management, synchronisation) through practical exercises (e.g. system-level C/C++ programming, building and packaging software, kernel-level development).


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:

1 describe the general role of an OS and understand prevalent OS architectures
2 for a given set of problems, conduct a suitable decomposition into processes and threads
3 comprehend, write, build, and package system- and kernel-level code written in C/C++
4 demonstrate an understanding of the process of kernel development, such as kernel compilation and module development
5 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


Cannot be taken with

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

Teaching methods

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

Contact Hours: 56


Sessional: 1.5 hour examination (80%), continuous assessment (20%)

Supplementary (where allowed): 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