Winter 2025, CSCI 347, Test 3 Review
Test date: Thursday March 20, 2025, 8:00am
Quick Review: Parts of chapters 8(part), 9, 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:
- Process Control (Chapter 8)
- execve(2) and information that "crosses the execve boundry"
- changing UIDs/GIDs
- #! in scripts
- Process Relationships (Chapter 9) (What is covered in class)
- Terminal Logins
- init & terminal jobs
- Process Groups
- getpgrp(2)/setpgrp(2)
- Sessions
- Controlling Terminals
- Job control
- 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: Mar 12, 2025