Course: Multi Threaded Architecture and Programming using POSIX Threads:
Thread programming, Mutexe, Semphore, Spin Lock, Condition Variables, Atomic Variables, Concept of Memory Fences, Compare And Swap (CAS)
Objectives:
- Need for Thread programming and Introduction to Micro Processor Architecture (single/Multi Core).
- Understanding Memory Organization, Caches, Memory layout of Unix Process.
- Understanding Threads, User Level Threads, Kernel Threads, Multi Process versus Multi Thread Architecture
- Introduction to POSIX Threads, Thread Creation, Termination, Thread Attributes, Joinable and Detached Threads.
- Thread Scheduling Priorities, Cancellation States, Thread Cleanup, Thread Local Storage (TLS/TSD), Thread Signal Masking and Signal Handling.
- Understanding Race Condition and need of Thread Synchronization and Mutual Exclusion using Mutex.
- Need and Usage of Condition Variables
- Understanding Read Write Locks, Starvation, Live Locks, Dead Locks.
- Understanding Atomic Locks/Operations, Compare And Swap (CAS), And the Double Edge Sword Spin Locks.
- Debugging Multi Threaded Code using a Thread aware debugger.
Duration: 30 hours Theory, 90 hours Practical (Recommended)
|