CIS 415    

    Operating Systems    

Course Description

Operating systems are undergoing a renaissance of interest within computer science. With the rise of open-source operating systems such as Linux and the BSD distributions, the commodification of operating system functionality through cloud computing, and the new approaches to device management from smartphone and tablet-based operating systems such as Android and Apple iOS, an understanding of operating system fundamentals is perhaps more important than ever. Knowledge of the theory and practice of operating system design is also a fundamental prerequisite for understanding critical systems issues such as networking and security.

This course is an introduction to the theory and practice behind modern computer operating systems. Topics will include what an operating system does (and doesn't) do, system calls and interfaces, processes, concurrent programming, resource scheduling and management (e.g., CPU, memory, devices), virtual memory, deadlocks, and security. We will approach the subject from both a theoretical perspective (what are the abstractions and algorithms?) as well as a practical one (what are the mechanisms and how are they built?). A detailed list of lecture by lecture contents, assignments, and due dates (subject to change as the term evolves) is available from the Canvas syllabus.

Instructor

Joe Sventek, jsventek@uoregon.edu

Lectures and Labs

Two 80-minute lectures are delivered each week. Mandatory attendance at a 50-minute lab each week is also required.

Prerequisites

Textbooks and Readings

Slack invitation

  • We will be using a Slack workspace for asynchronous discussion of course topics. Please use this link to join the workspace. The only channel we will use there is #cs-415.
  • DebianLinux download links

    Download the following files onto your Windows, MacOS, or Linux host system.

    Note that there is a document available here that describes VirtualBox (for Intel-based host machines), Debian GNU/Linux, UTM for M1-based Macintosh host machines, BitBucket as a server for private source repositories, and the set of Git programs to use to access source repositories.

    If you possess an M1-based Macintosh host machine, you must follow the directions in the UTM chapter of this document to install and configure your Debian GNU/Linux virtual machine.

    Major Topics

    Expected Learning Outcomes

    Upon successful completion of the course, students will understand:

    Acquired Skills

    Upon successful completion of the course, students will have acquired the following skills:

    Course Requirements and Grading

    This course will be taught as two 80-minute live lectures and one 50-minute lab each week. Aside from the required textbook, all course materials (project assignments, lab assignments, tutorial videos, sample exam material) will be available from Canvas. We will be using Slack for asynchronous questions and answers.

    Grading will be based on the following criteria:

    Percentage Component
    30programming projects (3 projects @ 10%)
    10lab attendance and submission (10 labs @ 1%)
    20midterm exam
    40final exam

    CIS majors and minors, and DSCI majors, must take CIS 415 graded; others may take it graded or P/N.

    Grading Scale

      +   -
    A ≥ 100.00 93.34-99.99 90.00-93.33
    B 86.67-89.99 83.34-86.66 80.00-83.33
    C 76.67-79.99 73.34-76.66 70.00-73.33
    D 66.67-69.99 63.34-66.66 60.00-63.33
    F 0.00-59.99