Concurrency, Synchronization and Consistency. 🔹Основы. Железо - Архитектура Фон-Неймана - Узкое место архитектуры Фон-Неймана - Когерентность кеша. Основы - Контроллеры когерентности - Протокол когерентности MSI - Блокировки, атомарные операции - Выводы по аппаратной части 🔹Модель памяти / Барьеры памяти - Что такое модель памяти? Sequential Consistency. - Барьеры памяти - Модель памяти X86 - Модель памяти ARM - Выводы по моделям памяти + материалы 🔹Прикладной уровень. Операционная система - Spinlocks с примерами на stdatomic.h + pthread.h - Race Condition + Mutex - Mutex Internals. Fast Userspace Mutex - Semaphores. Основы. Сферы применения. - Read-Write Mutexes - Масштабируемость RW Mutex - Mutex vs RWMutex - Bonus: Проблема False Sharing - Приоритеты потоков на примере Linux - Ключевое слово volatile в C - Реентерабелные функции в C 🔹Вызовы конкурентного программирования - Проблема обедающих философов. Взаимная блокировка (Deadlock) - Priority Inversion или баг случившийся на Марсе - Синхронизация не бесплатна. Иерархия накладных расходов Golang - Пишем собственный Mutex - sync.Mutex Internals