CS 350 - Computer System Concepts - Spring 2010

Class Information

Instructor: Nicholas Coleman
Time: Tue/Thu
9:30 am - 10:45 am
Classroom: ELAB 243
Text: Principles of Computer System Design
First Edition
by Jerome H. Salzer &
M. Franz Kaashoek
ISBN 978-0-12-374957-4
Textbook cover

Links

Lectures, Assignments, and Exams

Tuesday Thursday
Week 1 1/12
  • Introduction
  • Syllabus
  • Systems and Complexity
PoCSD 1.1
1/14
  • Sources of Complexity
  • Coping with Complexity
PoCSD 1.2-1.3
Week 2 1/19
  • Fundamental Abstractions
PoCSD 2.1
1/21
  • Naming
PoCSD 2.2.1 - 2.2.4
Week 3 1/26
  • Names and Layers
PoCSD 2.3
1/28
  • UNIX File System Part 1
    • UNIX File System API
    • The Block Layer
    • The File Layer
PoCSD 2.5.1 - 2.5.3
Week 4 2/2
  • UNIX File System Part 2
    • The Inode Number Layer
    • The File Name Layer
    • The Path Name Layer
PoCSD 2.5.4 - 2.5.6
Homework Assignment 1
2/4
  • UNIX File System Part 3
    • Links and Renaming
    • The Absolute Path Name Layer
    • The Symbolic Link Layer
PoCSD 2.5.7 - 2.5.10
Week 5 2/9
  • Implementing the File System API
  • The Shell
PoCSD 2.5.11 - 2.5.12
Homework 1 due
2/11
Exam 1 Review
Week 6 2/16
Exam 1
2/18
  • Designing Naming Schemes
    • Modular Sharing
    • Metadata
    • Addresses
    • Unique Names
    • Lifetimes of Names, Values, and Bindings
PoCSD 3.1
Week 7 2/23
  • Clients and Servers
PoCSD 4.1
2/25
  • Virtualization
PoCSD 5.1
Programming Assignment 1
Week 8 3/2
  • Bounded Buffers
    • SEND and RECEIVE
    • Sequence Coordination
    • Race Conditions
    • Locks
PoCSD 5.2.1 - 5.2.4
3/4
  • Bounded Buffers
    • Deadlock
    • Implementing ACQUIRE and RELEASE
    • Implementing Locks
    • Asynchronous Connections
PoCSD 5.2.5 - 5.2.8
Week 9 3/9
  • Enforcing Modularity in Memory
    • Domains
    • Controlled Sharing
    • Kernel and User Modes
    • Gates and Changing Modes
    • The Kernel
PoCSD 5.3
3/11
NO CLASS - SIGCSE
Week 10 3/16
  • Virtualizing Memory
PoCSD 5.4
3/18
  • Virtualizing Memory Continued
PoCSD 5.4 Programming Assignment 1 due
Week 11 3/23
Exam 2 Review
3/25
Exam 2
Spring
Break
3/30
NO CLASS
4/1
NO CLASS
Week 12 4/6
  • Threads
    • Processor Sharing
    • Implementing YIELD
PoCSD 5.5.1 - 5.5.2
4/8
  • Threads
    • Creating and Terminating Threads
    • Preemptive Scheduling
    • Threads and Address Spaces
    • Layering Threads
PoCSD 5.5.3 - 5.5.6
Week 13 4/13
  • Threads and Sequence Coordination
    • The Lost Notification Problem
    • Eventcounts and Sequencers
    • Polling, Interrupts, and Sequence Coordination
PoCSD 5.6.1 - 5.6.2, 5.6.4
4/15
  • Designing for Performance
    • Performance Metrics
    • Workloads
    • Concurrency
PoCSD 6.1.1 - 6.1.5
Week 14 4/20
  • Designing for Performance
    • Queuing and Overload
    • Bottlenecks
PoCSD 6.1.6 - 6.1.8
4/22
  • Multilevel Memories
    • Multilevel Memories and Virtual Memory
    • Locality and Working Sets
PoCSD 6.2.1 - 6.2.5
Week 15 4/27
  • Multilevel Memories
    • Memory Managment Policies
    • Page-Removal Algorithms
    • Demand Paging and Prepaging
    • Swapping
PoCSD 6.2.6 - 6.2.9
4/29
  • Scheduling
    • Resources
    • Metrics
    • Policies
PoCSD 6.3
Finals 5/4
Final Exam
8:00 - 9:50 am