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)
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 pmLAB 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:
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: