CS3393 Unix Systems Programming
Course Outline - 2015 Fall
This is a tentative schedule of topics, intended to give you a heads
up on what you will want to study. If there are other topics you
would like to see covered, please let me know.
Lecture Topics
- Course overview, Unix History, Intro to C.
- More C
- Finish C
Using Unix Environment (basics): command line, globbing, I/O redirection, piping,
basic commands.
-
Memory layout. Debugging.
-
Process control: Fork, exec, wait.
-
Process status, bit manipulation, sending signals
-
Unix I/O
-
Implementing I/O redirection, piping
-
Directories and files. Walking a directory tree, exploring
attributes.
-
More on file systems: Implementing ls -l. Permissions, file owner / group,
time-stamps.
- Signals and signal handling
- More signals: Design / implementation of sleep
- Implementing pipes, popen / pclose.
- Process Relationships
- Backgrounding.
- Midterm
- Terminal handling
- Review midterm
- Networking
- Client / Server. I/O multiplexing.
- Multi-threading: Pthread basics, mutual exclusion
- Multi-threading: bounded buffers, condition variables
- Multi-threading: deadlocks
- More Multi-threading
- Advanced thread / mutex / condition variable attributes
- Non-blocking I/O.
- Sys V IPC. Semaphores and shared memory.
- Other: Shell scripting, kernel modules special files, ...