Multithreading and Memory Management
This course has been tailored for the team of Ubisoft Sofia.
Time & Location
08.01.2020 г., 09:00 ч.
Ubisoft Sofia, Office Center Polygraphia, 5th floor, бул. „Цариградско шосе“ 47, 1124 ж.к. Яворов, София, Bulgaria
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.