CS 370 Operating Systems

 Announcments  Lectures  Programs  Course Resources  Assignments & Solutions  Grading Policy
Course Description
Explores the internal algorithms and structures of operating systems:  CPU scheduling, memory management, file systems, and device management.  Considers the operating system as a collection of cooperating sequential processes (servers) providing an extended or virtual machine that is easier to program than the underlying hardware.  Topics include virtual memory, input/output devices, disk request scheduling, deadlocks, file allocation, and security and protection.
Course Objective
For students to be familiar with the services an OS provides.  Students should be able to use system calls for managing processes, memory and the file system.  Students should understand and the structure and design of an OS along with being able to compare and contrast different design choices.  Students should understand the data structures and algorithms used to implement an OS.  Students will have the opportunity to study the implementation of the Linux kernel, and will be able to understand the source code and make modifications to it.
Prerequisites
(CS361 Concurrent Programming), (CS282 Systems Architecture II) or equivalent courses.
Instructor
Jeremy Johnson
Office: 206C Korman Center
Phone: (215) 895-2893
E-mail: jjohnson@mcs.drexel.edu
Office hours: M 3:00-6:00 and W 12-2.
Teaching Assistant (grader)
Ishan Mandrekar
Office: Korman Center
Phone: (215) 895-0256
E-mail: ishan@drexel.edu
Office hours: R 2:00-4:00 (in MCS Resource Center).
Meeting Time
MWF 2:00-2:50 in Matheson 307
Textbook
  1. Silberschatz, Gavin, and Gagne, Operating Systems Concepts, 6th Edition, Wiley 2003.
  2. Bovet and Cesati, Understanding the Linux Kernel, O'Reilly, 2001.  This is available online through the library (note there is a second edition, but an electronic version is not available yet).
  3. Linux sourcecode (see  http://www.kernel.org).


Grading

  1. Assignments (four) 40% (4 at 10%)
  2. Class participation 10%
  3. Midterm Exam 25%
  4. Final Exam 25%


Final grades will be determined by your total points weighted according to this distribution. Grades will be curved based on relative student performance.  Students who successfully complete all of the homework and do reasonably well on the exams should receive a B.  Students with high exams scores and who do well on the assignments will receive an A. The instructor reserves the right to modify the curve to meet minimum competency requirements.

All assignments must be completed alone unless otherwise stated. No Late assignments will be accepted without prior approval.  Students are expected to keep up with the assigned reading.  The class participation component will measure whether this is done or not.

On the first incident, students who share their work (even with best intentions) will receive no credit for that work -- both the giver and the receiver will receive no credit. On the second violation, I will strongly consider failing them in the course.


Resources

Reference Books
  1. Bach, The Design of the Unix Operating System, Prentice Hall, 1986.
Web Pages


Look Here for Important Announcements

Announcements (Mar. 12 @ 9:00 pm)


Lectures

This list is tentative and may be modified at the instructor's discretion.
 
  1. Week 1 (Overview)
    1. Jan. 6, 2003 (Introduction - Chapter 1)
    2. Jan. 8, 2003 (Unix Overview - File System and Processes)
    3. Jan. 10, 2003 (Unix System Calls)
  2. Week 2 (File System)
    1. Jan. 13, 2003 (Operating System Structures - Chapter 3)
    2. Jan. 15, 2003 (File-System Interface - Chapter 11)
    3. Jan. 17, 2003 (File-System Implementation - Chapter 12)
  3. Week 3 (Processes)
    1. Jan. 20, 2003 (University Holiday - no class)
    2. Jan. 22, 2003 (Processes - Chapters 4)
    3. Jan. 24, 2003 (Threads - Chapters 5)
  4. Week 4 (Processes Continued)
    1. Jan. 27, 2003 (Unix Signals and IPC)
    2. Jan. 29, 2003 (Synchronization and Deadlock - Chapters 7 and 8)
    3. Jan. 31, 2003 (CPU Scheduling Chapters 6)
  5. Week 5 (Memory Management & Virtual memory)
    1. Feb. 3, 2003 (The abyss - Chapter 9)
    2. Feb. 5, 2003 (Dynamic Storage Allocation - Chapter 9)
    3. Feb. 7, 2003 (No class due to snow)
  6. Week 6 (Midterm)
    1. Feb. 10, 2003 (Review for Midterm)
    2. Feb. 12, 2003 (Midterm)
    3. Feb. 14, 2003 (Midterm Solution)
  7. Week 7 (Memory Management)
    1. Feb. 17, 2003 (University Holiday - no class)
    2. Feb. 19, 2003 (Paging and Segmentation - Chapters 9)
    3. Feb. 21, 2003 (Virtual Memory - Chapters 10)
  8. Week 8 (Memory management)
    1. Feb. 24, 2003 (Virtual Memory - Chapters 10)
    2. Feb. 26, 2003. No class.
    3. Feb. 28, 2003 (Dynamic Storage Allocation Simulation Solution)
  9. Week 9 (Nachos)
    1. Mar. 3, 2003 (Introduction to Nachos - Appendix C)
    2. Mar. 5, 2003 (Nachos Session in the lab)
    3. Mar. 7, 2003 (Nachos Threads Implementation)
  10. Week 10 (Nachos)
    1. Mar. 10, 2003 (Nachos Memory Management)
    2. Mar. 12, 2003 (Nachos Virtual Memory Implementation)
    3. Mar. 14, 2003 (Review for Final)
  11. Mar. 17, 2003 from 1 to 3 (Final Exam)


Programs


Assignments

Exam Studyguide

Solutions


Created: 1/04/03 by jjohnson@mcs.drexel.edu