This course is a bottom up construction of a layered operating system beginning with the hardware interface and ending with the user interface. Specific topics covered include concurrent processes, process management, I/O, virtual memory, file management, resource scheduling, and performance measurement. Students are assumed to be familiar with general machine architecture, functions of system software (compilers, loaders, editors, etc.), data structures, and to have some experience with UNIX or another multiprogramming operating system.

Image of textbook cover

About This Semester

Welcome to the Fall 2018 Operating Systems course, COS 450 and COS 550. The start of the semester is only few weeks away which means I’m spending these very hot and humid days inside on my computer preparing course materials for you. During the first class we will be covering the syllabus and our schedule for the semester. If you are considering adding the course, please be in-class on the first day.

This semester will be quite exciting, we are going to work on several operating system projects in the Pintos operating system. Pintos was designed specifically for operating systems courses. It’s small and the code is more easily understood than recent versions of Linux which we have used in the past. There are three projects and they can be quite difficult. To best prepare yourself, review the materials in the Resources section of the course. Specifically make sure you start reading through the Pintos Documentation.

Where’s The Stuff?

There are four critical sites associated with the course that you will use frequently:

  • Blackboard: for weekly quizzes, exams, and grades.
  • Course Materials: for the schedule, project documentation, reading, lecture materials, and to submit your project work.
  • Pintos Source: The Pintos Source code available via git. Read the documentation to see how to clone your copy.
  • Pintos Documentation: The documentation and project specitications.

Before our first meeting on Wednesday, September 5th, you should review the Syllabus for the course (on the Course Materials site). There you will find the schedule, grading, and other information. You should also login to [Blackboard][usm-blackboard]. There you will find an Orientation Survey. Please take a few minutes to fill out the survey. It will help me in making sure you are best equipped to get through the course successfully.

Lastly, you should start working on getting Pintos up and running on one of the CS Linux machines or your own computer using the Linux virtual machine I’ve configured for you (see the docs). Pintos is a complete operating system that will run inside a virtual machine on Linux using bochs and qemu. We will cover the setup in the first class.

Cheaper Textbook!

This semester we are using a condensed (less expensive) version of the textbook. Operating System Concepts Essentials, by Silberschatz, Galvin, and Gange. The USM Bookstore should have them in shortly. The [Authors’ website][os-book]. contains some helpful additional materials including a study guide.

Enjoy what time remains of your summer, I’m looking forward to seeing you in class next week.