Friday, Oct 4, 2024
Readings
The Linux Programming Interface:
- Ch 24: Process Creation
- 24.1: Process Creation
- 24.2: Creating a New Process: fork()
- 24.4: Race Conditions After fork()
- 24.5: Avoiding Race Conditions by Synchronizing with Signals
- Ch 25: Process Termination
- 25.1: Terminating a Process: _exit() and exit()
- 25.2: Details of Process Termination
- 25.3: Exit Handlers
- 25.4: Interations Between fork(), stdio Buffers, and _exit()
Materials
Monday, Oct 7, 2024
Readings
The Linux Programming Interface:
- Ch 26: Monitoring Child Processes
- 26.1: Waiting on a Child Process
- 26.2: Orphans and Zombies
- 26.3: The SIGCHLD Signal
- Ch 27: Program Execution
- 27.1: Executing a New Program: execve()
- 27.2: The exec() Library Functions
- 27.4: File Descriptors and exec()
- 27.5: Signals and exec()
- 27.6: Executing a Shell Command: system()
- 27.7: Implementing system()
Materials
Wednesday, Oct 9, 2024
Readings
The Linux Programming Interface:
- Ch 44: Pipes and FIFOs
- 44.1: Overview
- 44.2: Creating and Using Pipes
- 44.3: Pipes as a Method of Process Synchronization
- 44.4: Using Pipes to Connect Filters
- 44.5: Talking to a Shell Command via a Pipe: popen()
- 44.6: Pipes and stdio Buffering
Materials
Monday, Oct 14, 2024
Readings
The Linux Programming Interface:
- Ch 28: Process Creation and Program Execution in More Detail
- 28.4: Effect of exec() and fork() on Process Attributes
- Ch 6: Processes