Operating System

September 2005 – November 2005

Switching processes

Inter-process communication

The Project

Our term project in CPSC 415: Operating Systems was an ambitious one; we were to create a multi-threaded, unix-like operating system. Bootstrap code and input/output libraries were provided — the rest of the OS was up to us.

My Role

On a team of three, I co-developed the necessary features of the OS, including memory management, context-switching, inter-process communication, blocking IO, sleeping, and process scheduling. Our OS could run up to 32 simultaneous process, switching between them using a round-robin algorithm.

To ease collaboration, I set up a Subversion source control repository and a Trac project tracking system for our team.

Key Technologies

  • C
  • 8086 Assembler
  • UNIX
  • Subversion
  • Trac

Source

Download Operating System source code