Systems Programming

cs 241 Fall 2012

Course materials

Getting help

Schedule

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
Memory:malloc
Understanding fragmentation:
08-fragtest.c
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():
12-forks.c
Wed Sep 26
Processes: System view  
Thu Sep 27
Discussion section (zip)

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

Fri Oct 5
Scheduling

Mon Oct 8
Scheduling

Understanding time quanta:
18-quanta.c
Wed Oct 10
Synchronization
Simple synchronization problems:
18-counter.c
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
22-rw1.c
Readers-writers solution with condition variables
22-rw2.c
Readers-writers solution with condition variables and no starvation
22-rw3.c
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
Deadlock

Mon Oct 29
Deadlock

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:
26-shm.c
Reader/writer using memory mapped files:
26-mmap.c
Memory mapping pages:
26-mmap-test.c
Wed Nov 7
IPC: Pipes, FIFOs   Pipe example:
27-pipe.c
Piped commands:
27-ls_wc.c
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 http://beej.us/guide/bgnet/output/html/multipage/index.html
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
Security
MPx Due

Wed Dec 5
Disks

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
Location:
Last names A - K: RAL 116
Last names L - Z: SC 1404