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