CSPP 51081 Home Page
 

CSPP 51081  Unix Systems Programming
(aka The Unix Programming Environment)


Course Description

CSPP 51081 is a UNIX systems programming course which explores various and sundry topics in systems programming using the Unix platform. Topics to be covered in detail will include:

Unix History and Philosophy
Awk Programming
Unix File I/O
Static and Shared Libraries
Processes and Signals (fork, etc.)
Pipes (unnamed and FIFOs)
System V IPC (semaphores, message queues, shared memory)
Berkeley Sockets
Sun RPC
POSIX pThreads

In addition to the traditional systems programming topics, this course will also introduce students to a significant level of detail in the use of Sun RPC (Remote Procedure Calls) and multithreaded programming, including operating system support and models (1-1, many-1, many-many).  Students will be exposed to the numerous issues involved in safe and efficient multithreading strategies using the POSIX pThreads API as implemented by Linux's clone() and Solaris threads.  Multithreading architectures will be discussed as well as advanced issues such as mutexes, semaphores, race conditions,  deadlocks, etc.  Berkeley socket programming will be covered in detail, as well as the creation and use of shared libraries.

Various tools used in developing software in C on Unix will be covered, including gcc, gdb, ddd, gprof, cvs, etc.
Because this is a programming course, students will be expected to know the C programming language upon course entry.

Teaching staff:

J. Mark Shacklette, mark@cs.uchicago.edu      ( NOTE:   ALL non-confidential email should be addressed to the list. )
(Office hours listed on the syllabus

Teaching Assistants are listed on the syllabus.

Syllabus:

Details of the course can be found in the course syllabus .
 

Prerequisites:

Students are required to know basic C programming.  Prior minimal exposure to Unix is recommended.
 

Lecture Notes:

Lecture 1 (PowerPoint)

Lecture 2 (PowerPoint)

Lecture 3 (PowerPoint)

Lecture 4 (PowerPoint)

Lecture 5 (PowerPoint)

Lecture 7 (PowerPoint)

Lecture 8 (PowerPoint)

Lecture 9 (PowerPoint)

Posix pthreads slides (pdf)

 

Lab Assignments   (Lab FAQ)

Intro LAB Intro FAQ Due Date Jan. 14, 5:00 pm

LAB 2     FAQ 2    Due Date January 21, 5:00 pm

LAB 3     FAQ 3    Due Date February 4, 5:00 pm

LAB 4     FAQ 4    Due Date February 9, 5:00 pm

LAB 5     FAQ 5    Due Date February 11, 5:00 pm

LAB 7     FAQ 7    Due Date February 25, 5:00 pm

LAB 8     FAQ 8    Due Date March 4, 5:00 pm

LAB 9    FAQ 9     Due Date March 11, 5:00 pm

 

Online Sources of Relevant Information:

Current Info:

Reading List:

To join the Listserv for this course, go to:      http://mailman.cs.uchicago.edu/mailman/listinfo/cspp51081


I can be reached at several email addresses, among them:

mark@cs.uchicago.edu
mshack@post.harvard.edu