Main Page

Announcements

Lectures

Project

Assignments &
Study Guides

Course
Guidelines

Programs

Resources

Syllabus

Grading Policy

 

CS 370 Operating Systems Syllabus

Course Description

This course covers topics including process management, process synchronization and interprocess communication, memory management, virtual memory, interrupt handling, processor scheduling, device management, I/O, and file systems.

Course Objective

  • Understand the concepts that underlie Operating Systems (what is an Operating System, what it does, how it is designed and constructed).
  • Discuss the algorithms and techniques used in Operating Systems (e.g. scheduling, synchronization, file system organization, virtual memory, etc.).
  • Dispel the impression that an Operating System is something special, and understand that the OS is a software system sharing many common characteristics with the other applications that we are more familiar with.
  • Develop analysis-evaluation techniques. An important aspect of OS design is the process of determining the effectiveness of changes or modifications (e.g. the use of a new algorithm). One aspect of one of the projects will be to evaluate a few alternative mechanisms and rank them according to some assigned criterion.

Audience

This is a track computer science course required by Computer Science students taking the Systems Track. It should be taken in the 3rd year.

What Students Should Know Prior to this Course

  1. Students should have advanced experience programming in a language of their choice
  2. Familiarity with socket programming is helpful (we will review in class)
  3. Underlying system architecture support functionality, including memory system, cache, virtual memory, TLB, I/O, interrupts, context switching, etc. (we will review in class)
  4. Familiarity with concurrent programming constructs is helpful (we will review in class)

What Students will be able to do upon Successfully Completing this Course

  1. Students will understand the services and functionality provided by an operating system
  2. Students will be able to design and implement core operating system functionality
  3. Students will be able to manipulate processes running in a system

Prerequisites

  • CS282 (instruction set design, assembly language programming, computer arithmetic, processor datapath and control)
  • CS361 Concurrent Programming

Textbooks

  1. Required: Operating System Concepts (8th Edition) by Silberschatz, Galvin, Gagne. John Wiley and Sons, 2008. ISBN 0-470-12872-0.
  2. Optional but Recommended: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, John S. Quarterman, The Design and Implementation of the 4.4BSD Operating System, Addison Wesley, 1996. ISBN 0-201-54979-4.

Topics

  1. Review of System Architecture
  2. Introduction and Review of Processes and Threading
  3. Process Scheduling
  4. File Systems
  5. Memory System

Grading

  1. Written and Programming Assignments 20% 
  2. Midterm Exam 15%
  3. Project 45%
  4. Final Exam 20%
  5. Weekly quizzes and group assignments will augment the above breakdown by plus or minus one letter grade

Last edited: 09/19/2005 anatole@cs.drexel.edu