Course: Multi Threaded Architecture and Programming using POSIX Threads:



Objectives:


  1. Need for Thread programming and Introduction to Micro Processor Architecture (single/Multi Core).
  2. Understanding Memory Organization, Caches, Memory layout of Unix Process.
  3. Understanding Threads, User Level Threads, Kernel Threads, Multi Process versus Multi Thread Architecture
  4. Introduction to POSIX Threads, Thread Creation, Termination, Thread Attributes, Joinable and Detached Threads.
  5. Thread Scheduling Priorities, Cancellation States, Thread Cleanup, Thread Local Storage (TLS/TSD), Thread Signal Masking and Signal Handling.
  6. Understanding Race Condition and need of Thread Synchronization and Mutual Exclusion using Mutex.
  7. Need and Usage of Condition Variables
  8. Understanding Read Write Locks, Starvation, Live Locks, Dead Locks.
  9. Understanding Atomic Locks/Operations, Compare And Swap (CAS), And the Double Edge Sword Spin Locks.
  10. Debugging Multi Threaded Code using a Thread aware debugger.

Duration: 30 hours Theory, 90 hours Practical (Recommended)