|
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
- Students should have advanced experience programming in a language
of their choice
- Familiarity with socket programming is helpful (we will review in
class)
- Underlying system architecture support functionality, including memory
system, cache, virtual memory, TLB, I/O, interrupts, context switching,
etc. (we will review in class)
- Familiarity with concurrent programming constructs is helpful (we
will review in class)
What Students will be able to do upon Successfully Completing this
Course
- Students will understand the services and functionality provided by
an operating system
- Students will be able to design and implement core operating system
functionality
- 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
- Required: Operating System Concepts (8th Edition) by Silberschatz,
Galvin, Gagne. John Wiley and Sons, 2008. ISBN 0-470-12872-0.
- 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
- Review of System Architecture
- Introduction and Review of Processes and Threading
- Process Scheduling
- File Systems
- Memory System
Grading
- Written and Programming Assignments 20%
- Midterm Exam 15%
- Project 45%
- Final Exam 20%
- 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 |