• 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)
    • Spinlock
  • Race Condition - dependence on relative timing of events