Секреты Concurrency: от процессора до атомиков в Go | Полное руководство

Аватар автора
igoroutine
В этом видео мы шаг за шагом разбираем секреты Concurrency в Go - от работы процессора и кэшей до атомарных операций и теории консенсуса. Начнём с истории вычислительных систем - от пакетной и однозадачной обработки до появления многозадачных и многопроцессорных систем, на фоне которых закон Мура и рост числа ядер изменили подход к проектированию программ. Переходим к базовой теории операционных систем, обсуждаем различия между CPU bound и IO bound задачами, показываем реальные демонстрации производительности. Далее исследуем, почему возникают data race, как работают протоколы когерентности кэшей MESI, и какие существуют многопоточные инструкции на уровне процессора. На ассемблере Go показываем, как реализовать многопоточный Add, а затем поднимаемся к уровню атомиков (atomic), включая операцию CompareAndSwap (CAS) и её роль в консенсусе. Разбираем ускорение матричных вычислений с атомиками, закон Амдала, cache contention, и завершаем анализом модели памяти в Go. Таймкоды: 00:00:00 - Введение 00:00:26 - Мотивация 00:00:36 - История. Batch Processing (пакетная обработка) 00:02:13 - История. Single-task Systems (однозадачные системы) 00:03:42 - История. Multitasking Systems (многозадачные системы) 00:05:17 - Закон Мура (Moore&law) 00:10:46 - Multiprocessor/multicore systems 00:16:35 - Немного теории из операционных систем 00:21:01 - Виды задач. CPU bound задачи 00:22:01 - Виды задач. IO bound задачи 00:24:38 - CPU bound задача (DEMO) 00:26:20 - Кэши у ядер. Почему возникает...

0/0


0/0

0/0

0/0