CS110
Principles of Computer Systems
Spring 2020
Calendar
|
Staff
|
Piazza
|
Slack
|
Lecture Videos
|
Labs
|
Slides & Handouts
|
Gradebook
Handouts
Handout 01:
CS110 Course Information
Handout 02:
CS110 Course Outline
Handout 03:
Assignment 1: Six Degrees of Kevin Bacon
[
hints
] [
redux
]
Handout 04:
Assignment 2: Unix File Systems
[
hints
] [
redux
]
Handout 05:
Assignment 3: All Things Multiprocessing
[
redux
]
Handout 06:
Assignment 4:
stsh
—Stanford Shell
Handout 07:
Multithreading and Synchronization Redux
Handout 08:
Assignment 5: RSS News Feed Aggregation
Handout 09:
Assignment 6: HTTP Proxy and Cache
[
for fun: chaining
] [
for fun: https
]
Handout 10:
Summer Fun: MapReduce
Self-Assessments
Self-Assessment:
Filesystems
[
solution
]
Self-Assessment:
Multiprocessing
[
solution
]
Self-Assessment:
Multithreading
[
solution
]
Lab Handouts
Lab 01:
File Systems and System Calls
[
solution
]
Lab 02:
Multiprocessing and Unix Tools
[
solution
]
Lab 03:
Parallel Programming
[
solution
]
Lab 04:
assign3
Redux, Threads
[
solution
]
Lab 05:
Threads and Read-Write Locks
[
solution
]
Lab 06:
Threads, Processes, and Servers
[
solution
]
Lab 07:
labs did not meet this week
Lab 08:
proxy
Thought Questions
[
solution
]
Slides
Lecture 01:
Introductions and Course Syllabus
[
pdf
]
Lecture 02:
Filesystems, APIs, and System Calls
[
pdf
]
Lecture 03:
More on Filesystems APIs
[
pdf
]
Lecture 04:
Filesystems
[
pdf
]
Lecture 04:
System Calls
[
pdf
]
Lecture 04:
Multiprocessing
[
pdf
]
Lecture 05:
Understanding
execvp
[
pdf
]
Lecture 06:
Shells and Pipes
[
pdf
]
Lecture 06:
Signals and Signal Handlers
[
pdf
]
Lecture 07:
Signals and Signal Masks
[
pdf
]
Lecture 07:
Races and Deadlock
[
pdf
]
Lecture 08:
Multiprocessing Wrap, Introduction to Threads
[
pdf
]
Lecture 09:
Threads, Race Conditions, and Mutexes
[
pdf
]
Lecture 10:
Multithreading, Condition Variables, and Semaphores
[
pdf
]
Lecture 11:
Multithreading and Networking
[
pdf
]
Lecture 12:
Multithreading Wrap
[
pdf
]
Lecture 13:
Introduction to Networking Servers
[
pdf
]
Lecture 13:
Networks and Clients:
time-client
and
wget
[
pdf
]
Lecture 14:
Networks and Servers
[
pdf
]
Lecture 15:
Networking and System Calls
[
pdf
]
Lecture 16:
Networking Wrap, MapReduce Overview
[
pdf
]
Lecture 17:
Principles of System Design
[
pdf
]
Lecture 18:
Introduction to Nonblocking I/O
[
pdf
]
Lecture 19:
Event-Driven Programming
[
pdf
]
Errata
C++ Refresher:
C++ Refresher