2014/Schedule

From CS61
Jump to: navigation, search
Computer Science 61 and E61
Systems Programming and Machine Organization

Schedule

The schedule will remain tentative all term.

“Scribe notes” were produced by students (note taking schedule), and may be incomplete or wrong (although we certainly hope they're awesome). “Thoughts” are instructors’ supplementary notes on the lecture; these will not necessarily be comprehensible on their own (they might build on, or go beyond, actual lecture material). You can view the schedule for scribe note assignments here.

Recommended readings are generally from the textbook, CS:APP2e. The first edition often has comparable readings; we give section titles to help you match them up.

Videotaped lectures

Date # Topic Recommended reading Notes
T 9/2 1 Course overview: Robustness
W 9/3 Assignment 1 released
R 9/4 2 UNIT I. FUNDAMENTALS
Abstract machines & real machines
Memory layout
1 A Tour of Computer Systems- Scribe notes
T 9/9 3 Data representation 2.1 Information Storage (2.1–2.1.6)
2.2 Integer Representations
3.8 Array Allocation and Access (skip 3.8.5)
3.9 Heterogeneous Data Structures
3.10 Putting It Together: Understanding Pointers
In 3.8 and 3.9, skip the assembly code.
Scribe notes
R 9/11 4 Representation of collections
Alignment
9.9 Dynamic Memory Allocation, through 9.9.4 Fragmentation
9.11 Common Memory-Related Bugs in C Programs
(3.12 Out-of-Bounds Memory References and Buffer Overflow)
(Skip assembly in 3.12.)
Scribe notes
F 9/12 Assignment 1 intermediate due date
T 9/16 5 Storage duration and dynamic allocation 9.9 Dynamic Memory Allocation, from 9.9.5 Implementation Issues Scribe notes
R 9/18 6 Fixed-size arena allocation
Conservative garbage collection
9.10 Garbage Collection Scribe notes
F 9/19 Assignment 1 due
T 9/23 7 Garbage collection II
UNIT II. STORAGE AND CACHING
Storage technologies
strace
2.1.7–2.1.10 Introduction to Boolean Algebra, etc.
2.3 Integer Arithmetic
2.4 Floating Point (skim)
Scribe notes A
Scribe notes B
W 9/3 Assignment 2 released
R 9/25 8 Caching, prefetching, buffer cache 6.1 Storage technologies
6.2 Locality
6.3 The memory hierarchy
Scribe notes
T 9/30 9 Cache model
Processor cache
10 System I/O (but not 10.4) Scribe notes
R 10/2 10 Eviction policies
Memory-mapped IO
6.4 Cache Memories
6.5 Writing Cache-Friendly Code
6.6 Putting it together
Scribe notes A
Scribe notes B
F 10/3 Assignment 2 intermediate checkin
T 10/7 No class
R 10/9 11 UNIT III. MACHINE PROGRAMMING
Data movement and arithmetic instructions
3 through 3.5 Arithmetic and Logical Operations
3.6–3.7 Control and Procedures
8 Exceptional Control Flow: 8.1 Exceptions
8.4 Process Control through 8.4.2
Scribe notes
F 10/10 Assignment 2 due
T 10/14 12 Control flow instructions and calling convention 3.12 Out-of-Bounds Memory References
9 Virtual Memory: 9.1 Physical and Virtual Addressing
9.2 Address Spaces
9.3.2 Page Tables
9.5 VM as a Tool for Memory Protection
Scribe notes A
Scribe notes B
R 10/16 Midterm (in class)
T 10/21 13 Control flow instructions 8.2 Processes
8.4 Process Control (all)
9.6 Address Translation
(Additional Unix information: 8.3 System Call Error Handling
8.7 Tools for Manipulating Processes)
Scribe notes A
Scribe notes B
R 10/23 14 Calling convention 9.3 VM as a Tool for Caching
9.4 VM as a Tool for Memory Management
9.8 Memory Mapping
Scribe notes A
Scribe notes B
Scribe notes C
F 10/24 Assignment 3 due
T 10/28 15 UNIT IV. KERNEL PROGRAMMING
Kernel programming and process isolation
Scribe notes
R 10/30 16 Privilege, exceptional control flow, virtual memory I Scribe notes
T 11/4 17 Virtual memory II Scribe notes
R 11/6 18 Fork, advanced virtual memory N/A Scribe notes A
Scribe notes B
F 11/7 Assignment 4 due
T 11/11 19 UNIT V. PROCESS MANAGEMENT
Application process management
5 Optimizing Program Performance, particularly 5.1-5.6, 5.13-5.14 Scribe notes A
Scribe notes B
R 11/13 20 Inter-process communication, pipes N/A Scribe notes A
Scribe notes B
T 11/18 21 Process interruption: signals 11 Network Programming through 11.2 Scribe notes A
Scribe notes B
R 11/20 22 UNIT VI. CONCURRENCY
Application concurrency: servers, threads
12 Concurrent Programming through 12.2 Scribe notes A
Scribe notes B
F 11/21 Assignment 5 due
T 11/25 23 Threaded parallelism 12.3 Concurrent Programming with Threads, 12.4, 12.6, 12.7 Scribe notes A
Scribe notes B
Scribe notes C
R 11/27 Thanksgiving holiday
T 12/2 24 Advanced concurrency N/A Scribe notes
W 12/3 Assignment 6 “due” (in reading week)