|
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
PoCSD 2.1
|
1/21
PoCSD 2.2.1 - 2.2.4
|
| Week 3 |
1/26
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
PoCSD 4.1
|
2/25
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
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
|
|