Schedule, Readings, and Assignments

Date Topic Assignments
Wed
 Jan 18
Overview: Unix and C
  Unix and its Philosophy
CSAPP - pp. xix - xxv, Chapter 1
Mon
 Jan 23
Tools for Systems Programming
   Using GCC, Make, and git
HW 1  - Due Feb 01
Running examples
Wed  Jan 25
Multiprocessing I - LAB
  FYI: Bruce Jacob's Crash Course in C
Lab 1 Addendum
Mon
 Jan 30
Multiprocessing II CSAPP Sections 8.1-8.4
Wed  Feb 01
Exceptions and Processes HW 2  - Due Feb 15
Mon
 Feb 06 System Calls for Managing Processes
  Fork, Wait, and Zombies
Linux man pages - bookmark!
Example: wait(2) man page
Wed
 Feb 08 Executing New Processes .
Fri Feb 10 HW 2 Design Discussion .
Mon
 Feb 13 Signals and the Shell CSAPP Section 8.5-8.8
Wed  Feb 15 Signals - Lab HW 3 - Due Mar 06
Mon
 Feb 20
A Simple Shell
Example Code
Wed  Feb 22 System-level I/O and RIO Functions CS:APP Chapter 10
Fri Feb 24 HW 3 Design Discussion .
Mon
 Feb 27 Fun with File Descriptors Numbers every programmer should know
Wed
 Mar 01 More Fun with File Descriptors .
Fri Mar 03 ALT HW 3 Design Discussion .
Mon  Mar 06
Virtual Memory Concepts CS:APP Sections 9.1 - 9.6
Wed  Mar 08 Virtual Memory Systems
Midterm Exam OUT - Due Mar 13
Exam Key
Mon  Mar 13 Internetworking & Domain Name Servers CS:APP Sections 11.1 - 11.3
Wed  Mar 15 Big "I" Internet Lab 3 
Mon
 Mar 20
Spring Break - no class
Wed
 Mar 22
Spring Break - no class
Mon
 Mar 27 Sockets Programming: Clients CS:APP Sections 11.4
Wed
 Mar 29 Sockets Programming: Servers - Lab 4 HW 4 - Due April 05
Mon  Apr 03 Web Services CS:APP 11.5-11.6
Wed  Apr 05 TINY Web Server - Lab 5
   IPv6? Yeah Right
HW 5 - Due Apr 12
Mon  Apr 10 Serving Dynamic Content
.
Wed  Apr 12 Concurrency: Process and Thread Models
  Are Threads Evil?
CS:APP Sections 12.1-12.3
Fri  14 Apr  Fourth Annual CNS Server Tour
  meet in WL 136
11:00 am
Mon  Apr 17 Concurrency: Process and Thread Models
  Are Threads Evil?
Final Project  - due May 03
Project Notes / startercode
Wed  Apr 19 Thread synchronization
  Another Thread vs Process Debate

CSAPP Sections 12.4

Exam Two - Due Apr 17

Mon  Apr 24 Advanced Synchonization CSAPP Sections 12.5
Wed  Apr 26 Semaphore models CSAPP - Section 12.6
Mon  May 01 Thread-level Parallelism .
Wed  May 03 TLP and Multicore Processors Final Review
Sat
 May 06 Final Exam @ 2:00 PM .