Профессиональная конференция для Go-разработчиков

Deep-dive в планировщик Go, или Зачем мне воровать горутины?

Golang Conf: Обзор текущего состояния языка

Go: Обзор текущего состояния языка

GO

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Познакомимся с тонкостями работы планировщика Go, включая ассемблер Go, препроцессорные директивы компилятора и способы нарушения инкапсуляции. Расскажем, как «украсть» горутину у планировщика и зачем это может быть нужно.

Целевая аудитория

Люди, которые не первый год программируют на Go, знают устройство операционных систем и примерно представляют, как работает scheduling.

Тезисы

Инженерам свойственно разбираться во внутреннем устройстве систем и залезать туда, куда не просили: кто в детстве не разбирал будильник или в молодости не дампил базу через SQL-инъекцию. Не так давно я наткнулся на термин, который используется внутри планировщиков — work stealing. Конечно же, меня больше всего заинтересовал глагол «stealing» и возник вопрос: «А можно ли влезть в планировщик снаружи и украсть, например, горутину?».

В докладе мы затронем особенности имплементации кода планировщика, ассемблер Go, препроцессорные директивы компилятора, нарушение инкапсуляции через переопределение и рассмотрим, как же своровать горутину у планировщика и зачем же это делать?

Доклад будет особенно полезен, если вас интересует устройство модели многопоточности в Go. Вы поймете, какие методики используют разработчики самого Go, включая неочевидные возможности языка, которые могут помочь вам решить специфические проблемы.

Интересуется облачными технологиями, специализируется на Go и Kubernetes. Около четырех лет программирует на Go, успел поработать в Dell Technologies и YADRO.

YADRO

YADRO известна как разработчик и производитель всего, что можно увидеть в серверной и ЦОД: систем хранения данных, серверов, коммутаторов. С недавних пор компания также создает телеком-оборудование операторского класса. Go-разработчики заняты как в развитии СХД, так и в телеком-направлении.

Видео

Другие доклады секции

Golang Conf: Обзор текущего состояния языка