Operating Systems Course, Winter 2005/2006

Prof. Kirsch, Department of Computer Sciences, University of Salzburg


Time, Location: Tue 10-12, Th 3-4 in T02, Techno-Z. First lecture on Tue, Oct 4, 10-12.

Brief Overview:

This course provides an introduction to operating system concepts: processes and threads, deadlocks, memory management, input/output, file systems, and multiple processor systems. The course follows in part the textbook on modern operating systems by A. Tanenbaum. The goal of the course is to have students understand and appreciate principled engineering of operating systems through a focus on fundamental rather than advanced concepts in class in combination with creative freedom in class projects. Teams of 2-3 students will be asked to design and implement (in user space) their own operating system in a programming language of their choice. The operating system must at least include some form of concurrency support, memory management, device abstraction, and file handling.

Goal of the course:

Learn, through hands-on operating system design and implementation, how concurrency support, memory management, device abstraction, and file handling works.

Assignments:

  • There will be occasional homework assignments.
  • Teams of 2-3 students will design and implement (in user space) their own operating system in a programming language of their choice. At the end of the semester, each operating system will be demonstrated to execute a non-trivial concurrent application. Each team creates a wiki page that describes the project. See the requirements in the above overview.

Required Textbook:

Recommended Textbooks:
  • Lubomir F. Bic, Alan C. Shaw: Operating Systems Principles. Prentice Hall, 2003.
  • William Stallings: Operating Systems: Internals and Design Principles. Prentice Hall, 4th Edition, 2002.
Web sources:


Grading: in-person project presentation (necessary for Vorlesungsschein), project source code and executable (necessary for Proseminarschein).

Prerequisites: programming experience, basic knowledge of operating system concepts.

Technical contact: Harald . Roeck @ cs . uni-salzburg . at
Administrative contact: Petra . Kirchweger @ cs . uni-salzburg . at