Systems Programming

cs 241 Fall 2012

Course materials

Getting help


Date Event Assignments Readings and Notes
Mon Aug 27
Course introduction Homework 1 How to study: a brief guide
Wed Aug 29
Introduction to C
Chapters 1, 2
C tutorial
Fri Aug 31
C No Evil

Mon Sep 3
Labor Day
Wed Sep 5
Operating systems Homework 1 due
MP1: C basics (zip)

Thu Sep 6
Discussion section (Solution) Files
Fri Sep 7
System calls
I/O Syscall tutorial
Chapter 3: UNIX survival skills for reference as needed
Mon Sep 10
Memory intro MP1 due
MP2: malloc (zip)
Chapter 21 (7.1-7.2)
Wed Sep 12
Memory Allocation
  Chapter 21 (7.1-7.3)
Thu Sep 13
Discussion section

Fri Sep 14
Understanding fragmentation:
Mon Sep 17
Memory: Heap Allocation

Wed Sep 19
Memory: Paging
Chapter 22 (8.1,8.2)
Thu Sep 20
Discussion section

Fri Sep 21
Memory: Page Tables

Mon Sep 24
Processes MP2 due
MP3: shell (zip)
Many examples of fork():
Wed Sep 26
Processes: System view  
Thu Sep 27
Discussion section (zip)

Fri Sep 28
Processes: System view and Threads intro
Simple pthreads examples:
Mon Oct 1
Threads: pthreads MP3 due
MP4: Multi-threaded Merge Sort (zip)
More pthreads examples:
Wed Oct 3
Threads: systems view  
Thu Oct 4
Discussion section (zip)

Fri Oct 5

Mon Oct 8

Understanding time quanta:
Wed Oct 10
Simple synchronization problems:
Thu Oct 11
Discussion section

Fri Oct 12
Synchronization Mechanisms
MP4 due
Mon Oct 15
Lecture: Midterm review

Midterm Exam
7:00pm - 9:00pm
Location: (by last name)
  A-L: 1404 SC
  M-Z: 1320 DCL
MP5: scheduling
Midterm Study Guide: pdf,docx
Wed Oct 17
Semaphores, Mutexes and Condition Variables  

Thu Oct 18
Discussion Section

Fri Oct 19
Semaphores, Mutexes and Condition Variables
Classic Synchronization Problems

Producer-consumer solution with condition variables: 22-pc.c
Readers-writers solution with reader priority
Readers-writers solution with condition variables
Readers-writers solution with condition variables and no starvation
Mon Oct 22
Classic Synchronization Problems MP5 due
MP6: parmake (zip)
MPx: extra credit MP (zip)

Wed Oct 24
Classic Synchronization Problems II
Thu Oct 25
Discussion Section

Fri Oct 26

Mon Oct 29

Wed Oct 31
Deadlock solutions

Thu Nov 1
Discussion Section

Fri Nov 2
Deadlock solutions

Mon Nov 5
Interprocess communication MP6 due
MP7: MapReduce (zip)
Shared memory example:
Reader/writer using memory mapped files:
Memory mapping pages:
Wed Nov 7
IPC: Pipes, FIFOs   Pipe example:
Piped commands:
Thu Nov 8
Discussion section

Fri Nov 9
Select, poll, signals

Mon Nov 12
Signals, Introduction to Networking

Wed Nov 14
Networking, Network Programming

For a good tutorial and sample code, see
Thu Nov 15
Discussion section

Fri Nov 16
Network programming
Final Study Guide: pdf,docx
Final Practice Exam: pdf, docx
Mon Nov 19
Thanksgiving Break
Wed Nov 21
Fri Nov 23
Mon Nov 26
More network programming
MP7 due
MP8: WebServer (zip)

Wed Nov 28
Network applications  
Thu Nov 29
Discussion section

Fri Nov 30
HTTP example, DNS and more
Sample code for push server
Mon Dec 3
MPx Due

Wed Dec 5

Thu Dec 6
Discussion section

Fri Dec 7
File systems

Mon Dec 10
Filesystems MP8 due

Wed Dec 12
Wrap up and Beyond CS241

Mon Dec 17 Final Exam
8:00am - 11:00am
Last names A - K: RAL 116
Last names L - Z: SC 1404