GopherCon 2018: Kavya Joshi - The Scheduler Saga

Поделиться
HTML-код
  • Опубликовано: 27 июл 2024
  • he Go scheduler is the behind-the-scenes magical machine that powers Go programs. It efficiently runs goroutines, and also coordinates network IO and memory management.
    Kavya’s talk will explore the inner workings of the scheduler machinery. She will delve into the M:N multiplexing of goroutines on system threads, and the mechanisms to schedule, unschedule, and rebalance goroutines. Kavya will also touch upon how the scheduler supports the netpoller and the memory management systems for goroutine stack resizing and heap garbage collection. Finally, she will evaluate the effectiveness and performance of the scheduler.
  • НаукаНаука

Комментарии • 52

  • @andrewlaw1933
    @andrewlaw1933 Год назад +21

    This really is a great talk. I spent most of the 90s working with task schedulers, and have recently been playing with Go. I'd never seen any explanation of how Go does scheduling, but this talk makes things crystal clear, and maps nicely onto my experience. Kavya clearly knows her stuff, and tries to keep things interesting by changing intonation and using a little stagecraft, rather than letting viewers drift off to sleep. Nice work!

  • @AmarjeetAnandsingh
    @AmarjeetAnandsingh 4 года назад +29

    Absolutely amazing presentation. So organized... Thanks kavya for such a great content

  • @arhyth
    @arhyth 5 лет назад +13

    great presenter. i love her older go channels talk.

  • @blank001
    @blank001 Год назад +4

    Great talk and explanation, I would definitely watch this again to get a better grasp, thanks Kavya for this awesome talk.

  • @jeffliang166
    @jeffliang166 21 день назад

    Amazing and well organized presentation! 👍

  • @aseemsavio6696
    @aseemsavio6696 2 года назад +1

    Amazing presentation! I was linked to this from Gophers Slack. I'm grateful for the guy who did that!

  • @sbef
    @sbef 2 месяца назад

    I've been stuck looking to improve an M:N scheduler for my OS/language... found this video and it answers a TON of design and performance questions I had. (Work stealing run queues were the keyword I was looking for) Excellent talk, thanks a bunch!

  • @OfferoC
    @OfferoC 5 лет назад +8

    Awesome presentation. Thank you!

  • @robgreen13
    @robgreen13 5 лет назад +2

    Excellent content and presentation, thank you.

  • @vladd3172
    @vladd3172 2 месяца назад

    Awesome. Very good explained.

  • @eoj096
    @eoj096 2 месяца назад

    can't upvote this enough!

  • @nowarm
    @nowarm Год назад +1

    this is so awesome and easy to understand. Thank you for sharing!

  • @varshathkumarterli3694
    @varshathkumarterli3694 6 месяцев назад

    Not sure about you guys, But I'm a beginner and had to rewatch this presentation few times to understand it to the depth. Honestly the content is awesome.

  • @maheshkottapalli6945
    @maheshkottapalli6945 3 года назад +1

    Thank you a ton. Awesome presentation.

  • @ishnmu3113
    @ishnmu3113 Год назад

    Wow! Clean Presentation and Nicely explained. Thanks Kavya

  • @asymptotion
    @asymptotion 3 года назад

    Great presentation!

  • @jamshidiyr
    @jamshidiyr 10 дней назад

    Thank you.

  • @axea4554
    @axea4554 3 года назад

    Great presentation

  • @adipratapsinghaps
    @adipratapsinghaps 3 года назад

    Thanks, Kavya!

  • @alex_martishin
    @alex_martishin 6 месяцев назад

    Great talk! Very informative

  • @tanchienhao
    @tanchienhao 3 месяца назад

    Awesome talk

  • @wodeqiangne
    @wodeqiangne 2 года назад

    nice presentation!personally i love her voice

  • @yicai7
    @yicai7 9 месяцев назад

    Awesome!!!!

  • @romankonovalov2588
    @romankonovalov2588 9 месяцев назад

    just the best

  • @user-br5sc9ok4o
    @user-br5sc9ok4o 3 месяца назад

    thanks kavya

  • @nabromov
    @nabromov 3 года назад

    very useful!

  • @user-bu2xf9iq2v
    @user-bu2xf9iq2v 4 года назад

    that is great!!!

  • @cadenzah93
    @cadenzah93 2 года назад

    25:25 nice summary, better watch this few times more

  • @kamalabuhenamostafa
    @kamalabuhenamostafa 5 лет назад

    Stylic Presentation.

  • @cs80211
    @cs80211 Год назад

    thanks

  • @allanguwatudde7623
    @allanguwatudde7623 Год назад

    nice talk

  • @abraham7966
    @abraham7966 3 года назад +1

    9:10 Welcome to Ruby.

  • @seriyanto
    @seriyanto 4 года назад +1

    slices at speakerdeck.com/kavya719/the-scheduler-saga

  • @jmcguckin
    @jmcguckin 6 месяцев назад

    What about performing work stealing first from cores located on the same die so as to minimize cache misses…

  • @richardyang3963
    @richardyang3963 5 лет назад +2

    On 24:22, what if the T1 wake up? there will be 3 threads, which beyond the limitation of CPU cores?

    • @dune499
      @dune499 5 лет назад +1

      It will not "wake up". It notifies the monitor thread when it's runnable(waiting in the parking). And when the go routine running thread count is less than core number (this can happen if Tmain or T2 has a syscall), the monitor thread will take it from parking and allocate it it's run queue.

    • @riankrishandi
      @riankrishandi 2 года назад

      @@dune499 T1 will not wake up? so how about the g1 inside it? how will it continue the goroutine execution?

    • @philipedekobi297
      @philipedekobi297 Год назад +1

      @@riankrishandi once the syscall unblocks, T1 will get parked

    • @tarunpahuja3443
      @tarunpahuja3443 11 месяцев назад

      ​@@philipedekobi297 @tamjidahmed9872
      But lets say if the g1 inside T1 is not yet finished, where would it be placed. T1 does not have any associated runqueue.

  • @chengtaopan1676
    @chengtaopan1676 4 года назад +1

    nothing further

  • @randydiffenderfer7793
    @randydiffenderfer7793 3 года назад

    cool -- solves (go) world hunger! :D

  • @user-ov5nd1fb7s
    @user-ov5nd1fb7s 5 лет назад +2

    Nice talk but i still don't know how can you have 200k go routines, with this structure.

    • @tarunpahuja3443
      @tarunpahuja3443 11 месяцев назад

      If there are 10 cores, You can have 1000s go routines on each local distributed queue.

    • @user-ov5nd1fb7s
      @user-ov5nd1fb7s 11 месяцев назад

      @@tarunpahuja3443 yea..I know. This comment is more than 4 years old.

    • @tarunpahuja3443
      @tarunpahuja3443 11 месяцев назад

      Okay boss
      @@user-ov5nd1fb7s

  • @andreypanin5257
    @andreypanin5257 5 лет назад

    Damn, she is trying so hard to sound mean!

  • @perfectcompanionme4444
    @perfectcompanionme4444 2 года назад +1

    why you waste people's time by introducing non-idea? No one care about stupid idea and just want to know good idea.

    • @tarunpahuja3443
      @tarunpahuja3443 11 месяцев назад

      As if you have good idea all the time.

  • @byonggonchun3750
    @byonggonchun3750 3 года назад

    thanks kavya