Course Overview

An operating system is a layer of software that manages hardware resources and that provides user programs with a simple and consistent interface to the computer. In this course, we will examine services and abstractions commonly provided by operating systems, and we will study the underlying mechanisms used to implement them. Topics will include processes and threads, synchronization, CPU scheduling, deadlocks, memory management, segmentation and paging, storage and file systems, security, and virtualization.

The concepts presented in class will be explored through a series of several intensive programming assignments. The assignments will make use of the C proramming language, which is the univeral language for implementing and accessing operating systems at the lowest level. The projects will give students ample practice in manipulating pointers, managing memory, invoking system services, and dealing with error conditions. Although the course will offer some technical guidance on these matters, students should expect to spend significant time debugging, consulting reference materials, and revising the projects until they work properly.

The goals for each student in this course are:
  • To understand the abstractions and services provided by an operating system.
  • To understand the mechanisms and algorithms used to implement these services.
  • To get practical experiences using and implementing operating system services.
The course materials will test each student's achievement of these goals at several levels. For each topic in the course, students must be able to:
  • Describe traditional operating system structures and algorithms.
  • Demonstrate in detail how they apply to various programs and data.
  • Evaluate the strengths and weaknesses of related structures and algorithms.
  • Propose and evaluate a variety of improvements upon traditional methods.
  • Implement basic methods in a working computing system.

Classroom Recording

Notre Dame has implemented an Echo360 classroom recording system. This system allows us to record and distribute lectures to you in a secure environment. You can watch these recordings on your computer, tablet, or smartphone. The recordings can be accessed within Sakai. Look for the tool labeled "Echo360 ALP" on the left hand side of the course. Because we will be recording in the classroom and/or using an active learning environment, your questions and comments may be recorded. (Video recordings typically only capture the front of the classroom.) If you have any concerns about your voice or image being recorded, please speak to me to determine an alternative means of participating. No content will be shared with individuals outside of your course without your permission except for faculty and staff that need access for support or specific academic purposes. These recordings are jointly copyrighted by the University of Notre Dame and your instructor. Posting them to other websites, including YouTube, Facebook, Vimeo, or elsewhere without express, written permission may result in disciplinary action and possible civil prosecution.

Textbook

  • Operating System Concepts, A. Silberschatz, P. B. Galvin, G. Gagne, Wiley, 7th, 8th, or 9th edition. Textbook Website
  • Note: The slides used in class will be posted on this website; it is not essential to purchase the book (i.e., students should be able to follow the course with the slides only)!

Recommended Book for C Programming

  • The C Programming Language, B. W. Kernighan, D. M. Ritchie, Prentice Hall, 2nd edition.

Course Information:

  • Instructor: Christian Poellabauer
  • - Office hours: Mon 9-10, Tue 12-1
  • - Office: 323B Cushing Hall
  • - Email: cpoellab@nd.edu

  • TAs: Jian Yang (jyang9@nd.edu), Josh Siva (joshua.t.siva.1@nd.edu), Qiyu Zhi (qzhi@nd.edu), Louis Daudet (ldaudet@nd.edu)
  • - Office hours: Louis: Wed 12-2 (212 Cushing), Jian: Mon 3-5 (212 Cushing), Josh: Tue & Thu 3.30-4.30 (213 Cushing), Qiyu: Wed 5-7 (212 Cushing)

  • Class location: DeBartolo 101
  • Lecture times: Tuesday/Thursday 9.30-10.45am

News Items:

  • - TA Josh's office hour on 4/21 is cancelled; instead he will have an office hour on 4/20 9-10am!
  • - The fourth project is now available (deadline: 4/21/16)!
  • - TA Qiyu's office hours on 3/23 have been cancelled!
  • - TA Josh's office hours on 2/18 have been cancelled!
  • - The third project is now available (deadline: 3/24/16)!
  • - The second project is now available (deadline: 2/18/16)!
  • - The first project is now available (deadline: 2/2/16)!