- Process - Task - Thread - Interrupt
- Inter Process Communication
- Shared Memory - Message Based
- Scheduling
- Interleaving
- Serialization
- Context Switch
- Preemption
- Deadlock
- Starving
- Priority Inversion - a low priority task holds a shared
resource that is required by a high priority task, which causes the high
priority task to be blocked
- Priority Inheritance
- Resource
- Event/Signal/Message
- Atomic action
- Synchronous/Asynchronous interface
- Blocking/nonblocking
- Synchronization
- Lock
- Reentrant Mutex - The same thread can acruire the lock multiple times
- Semaphores
- Condition Variables
- Dekker's algorithm
- Peterson's algorithm
- Lamport's bakery algorithm
- Monitor
- Reentrancy
- Critical Section
- Mutual Exclusion - avoid the concurrent use of shared resources by pieces critical sections
- Busy Waiting (spinning)
- Race Condition - dependence on relative timing of events