Показываю как реализован "вытесняющий планировщик" в Го, который дополняет "кооперативный".

17 подписчиков

12+
12+

3 просмотра

22 дня назад

ПожаловатьсяНарушение авторских прав

17 подписчиков

12+
12+

3 просмотра

22 дня назад

ПожаловатьсяНарушение авторских прав
12+
12+

3 просмотра

22 дня назад

00:00 Вступление. Напоминаю о предыдущем видео: https://www.youtube.com/watch?v=NDToH6PMtk0. Кратко упоминаю "вытесняющие" и "кооперативные" планировщики - вся суть сегодняшнего стрима. 01:42 Повторяю что такое "планировщик", как нужно его воспринимать. 03:58 "stack poisoning" как механизм вытеснения. 11:04 "Пролог" пользовательских функций: управляемая память, приращивание стэка автоматически и связь с механизмом вытеснения. 14:23 Конкретный пример в исходном коде Голенга. Системная функция `preemptone`. 19:35 Системная функция `morestack`: святое место автоматического управления стэком. Очень специальная функция, которую я разбираю в деталях. 25:28 Наконец-то, `func newstack()` - именно то место, где происходит вытеснение! 30:40 Выводы. Продолжаю предыдущие стримы о Голоенг. Наконец-то, коснулся фундаментальной темы - "кооперативных" и "вытесняющих" планировщиков как они есть. Принципиально важная тема, особенно для рантаймов, претендующих на выполнение сотен тысяч горутин одновременно! В этом выпуске я в своей манере хожу по исходному коду и показываю в деталях как на самом деле устроен механизм вытеснения, почему они - best effort, показываю и проговариваю принципиальные подвводные камни и учу быть инженером ПО, а не быдлокодером.

Название:

Показываю как реализован "вытесняющий планировщик" в Го, который дополняет "кооперативный".

Категория:

Разное