Spring 2026, CSCI 347, Test 3 Review
Test date: Wednesday, June 10 2026, 8:00am
Quick Review: Parts of chapters 6(part), 7(part), 8(part), 10, 11, 12, 13 (part)
and your microshell.
This review is produced to help you study. This is
not a guarantee that all topics are listed in the
following topic review list.
Topic Review:
- System Information (Chapter 6)
- /etc, information stored there
- uname(1), uname(3)
- time related functions (time, ctime, strftime, gettimeofday, ...)
- time zone issues
- Environment of UNIX process (Chapter 7)
- main, argc, argv
- exit, _exit
- atexit
- environment, getenv, putenv, setenv, unsetenv
- Memory layout, malloc, alloca, free, realloc, calloc
- automatic (local) variable misuse
- setjmp, longjmp
- resource limits
- Process Control (Chapter 8)
- race conditions
- execve(2) and information that "crosses the execve boundry"
- changing UIDs/GIDs
- #! in scripts
- Signals (Chapter 10)
- signal(3)
- various signals
- interrupted system calls
- kill(2) and raise(3)
- alarm(2) and pause(3)
- use of system/library calls in handlers
- abort(3)
- sigaction(2)
- sigprocmask
- sigsetops
- sigsetjmp/siglongjmp
- Threads (Chapter 11) and other concurrency problems and constructs
- Basic concurrency -- multiple threads
- Concurrency vs. Parallel vs. Distributed
- Multiple CPU
- Use for threads
- Elements of a thread
- POSIX Threads
- PThreads - create, join, cancel, cleanup_push/pop, pthread_detach
- Thread Synchronization
- Race conditions
- Critical sections
- Mutual Exclusion, Mutex (PThread mutexes)
- Mutex create, lock, unlock, destroy
- Deadlock
- Readers/Writers problem, read/write locks, PThread variety
- Bounded Buffer Problem, Semaphores, binary and counting
- Bounded Buffer solution with semaphores
- Monitors, language based solution, condition variables
- PThreads condition variables, implementation of monitors in C
- Dining Philosophers, solution
- Barriers, PThread barriers
- Amdahl's Law
- Thread Control (Chapter 12)
- Thread Attributes
- Reentrancy, reentrant system calls, "thread safe"
- Thread Specific Data
- PThread thread specific data, keys and get/set routines
- Threads and signals
- Threads and fork
- Threads and I/O, pread(2) and pwrite(2)
- Daemon Processes (Chapter 13)
- fork(), parent exit
- daemon(3)
- disassociates from controlling terminal
- closes 0, 1, 2, may open log file
- micro shell and thread assignments
- command expansion
- pipeline implementation
Last modified: June 5, 2026