Multithreading and Memory Management
Time & Location
About the Event
1 Data parallelism and data races. Synchronisation primitives (mutex and it's variations, critical section, semaphore, condition variables). Usage and RAII wrappers - lock_guard, unique_lock.
2 Synchronized data structures - node based (list, stack, queue, hash table) and linear - vector, tiered vector, hash table.
3 Atomic operations - read, modify, write. Compare-exchange. C++ memory order model.
4 Atomics in node based data structures. Interface changes, implementation problems. Task based parallelism, task managers and thread managers.
5 Allocators and types (free list, segregated list, hierarchical, others). Allocation strategies - stack allocator, linear, pool, composable types. Reference counting and automatic de-allocation.
6 Memory tracking and tagging - use and implementation. Windows memory allocator and runtime.