Concurrent and Parallel Programming

  1. Fundamental Concepts
    1. Processes and Threads
      1. The Process
        1. Process Definition and Properties
          1. Process Memory Space Isolation
            1. Process Creation
              1. Process Termination
                1. Inter-Process Communication
                  1. Pipes
                    1. Message Queues
                      1. Shared Memory
                        1. Sockets
                      2. The Thread
                        1. Thread Definition and Properties
                          1. Lightweight Process Concept
                            1. Shared Memory Model Within Process
                              1. Thread Creation
                                1. Thread Termination
                                  1. Thread Lifecycle
                                    1. Thread Context Switching
                                    2. Kernel-Level vs. User-Level Threads
                                      1. Kernel-Level Threads
                                        1. User-Level Threads
                                          1. Hybrid Threading Models
                                            1. Trade-Offs and Performance Implications
                                          2. Models of Computation
                                            1. Shared Memory Model
                                              1. Thread Communication via Shared Variables
                                                1. Synchronization Requirements
                                                  1. Shared Memory Advantages
                                                    1. Shared Memory Challenges
                                                      1. Data Races
                                                        1. False Sharing
                                                      2. Message Passing Model
                                                        1. Process Communication via Explicit Messages
                                                          1. Synchronous Messaging
                                                            1. Asynchronous Messaging
                                                              1. Message Passing Advantages
                                                                1. Message Passing Challenges
                                                                  1. Message Ordering
                                                                    1. Deadlocks in Message Passing
                                                                2. Challenges in Concurrent Programming
                                                                  1. Race Conditions
                                                                    1. Race Condition Definition
                                                                      1. Race Condition Examples
                                                                        1. Race Condition Detection
                                                                          1. Race Condition Prevention
                                                                          2. Deadlocks
                                                                            1. Deadlock Necessary Conditions
                                                                              1. Deadlock Detection
                                                                                1. Deadlock Avoidance
                                                                                  1. Deadlock Prevention Strategies
                                                                                  2. Livelocks
                                                                                    1. Livelock Definition
                                                                                      1. Livelock Examples
                                                                                        1. Differences from Deadlocks
                                                                                        2. Starvation
                                                                                          1. Starvation Causes
                                                                                            1. Starvation Prevention
                                                                                            2. Data Corruption
                                                                                              1. Data Corruption Causes in Concurrent Systems
                                                                                                1. Data Corruption Prevention Techniques