CS239 Unix Systems Programming
Course Outline - 2114 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.
- More C
- Unix Environment: command line, globbing, I/O redirection, piping, basic commands.
- Memory layout. Debugging: GDB, valgrind, essential x86.
- 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.
- Implementing ls -l. Permissions, file owner / group, time-stamps.
- Signals and signal handling
- Design / implementation of sleep
- Process Relationships
- Backgrounding. Popen / pclose
- Midterm
- Terminal handling
- Review midterm
- Networking
- Client / Server. I/O multiplexing.
- Multi-threading: basics, mutual exclusion
- Multi-threading: bounded buffers, condition variables
- Multi-threading: deadlocks
- Non-blocking I/O. Regular expressions.
- Sys V IPC. Semaphores and shared memory.
- Shell scripting
- TBD