CSPP 51081 Home Page
CSPP 51081 Unix Systems Programming
(aka The Unix Programming Environment)
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
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)
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.
J. Mark Shacklette,
NOTE: ALL non-confidential email should be addressed to the
(Office hours listed on the syllabus )
Details of the course can be found in the course syllabus
Students are required to know basic C programming. Prior
minimal exposure to Unix is recommended.
Lecture 1 html format pdf
Lecture 2 html format pdf
Lecture 3 html format pdf
Lecture 4 html format pdf
Lecture 5 html format pdfLecture 6 No Lecture--Mid Term Exam
Lecture 7 html format pdf
Lecture 8 html format pdf
Lecture 9 html format pdf
Midterm Live Solutions
Online Sources of Relevant Information:
To join the Listserv for this course, go to:
I can be reached at several email addresses, among them: