GopherCon 2018: Kavya Joshi - The Scheduler Saga

Поділитися
Вставка
  • Опубліковано 31 тра 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.
  • Наука та технологія

КОМЕНТАРІ • 50

  • @andrewlaw1933
    @andrewlaw1933 Рік тому +19

    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!

  • @sbef
    @sbef 24 дні тому

    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!

  • @AmarjeetAnandsingh
    @AmarjeetAnandsingh 4 роки тому +29

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

  • @eoj096
    @eoj096 15 днів тому

    can't upvote this enough!

  • @blank001
    @blank001 Рік тому +4

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

  • @arhyth
    @arhyth 5 років тому +13

    great presenter. i love her older go channels talk.

  • @varshathkumarterli3694
    @varshathkumarterli3694 5 місяців тому

    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.

  • @OfferoC
    @OfferoC 5 років тому +7

    Awesome presentation. Thank you!

  • @aseemsavio6696
    @aseemsavio6696 2 роки тому +1

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

  • @robgreen13
    @robgreen13 5 років тому +2

    Excellent content and presentation, thank you.

  • @nowarm
    @nowarm Рік тому +1

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

  • @vladd3172
    @vladd3172 21 день тому

    Awesome. Very good explained.

  • @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!

  • @axea4554
    @axea4554 3 роки тому

    Great presentation

  • @alex_martishin
    @alex_martishin 4 місяці тому

    Great talk! Very informative

  • @adipratapsinghaps
    @adipratapsinghaps 2 роки тому

    Thanks, Kavya!

  • @tanchienhao
    @tanchienhao Місяць тому

    Awesome talk

  • @wodeqiangne
    @wodeqiangne 2 роки тому

    nice presentation!personally i love her voice

  • @romankonovalov2588
    @romankonovalov2588 7 місяців тому

    just the best

  • @yicai7
    @yicai7 7 місяців тому

    Awesome!!!!

  • @user-br5sc9ok4o
    @user-br5sc9ok4o Місяць тому

    thanks kavya

  • @nabromov
    @nabromov 2 роки тому

    very useful!

  • @user-bu2xf9iq2v
    @user-bu2xf9iq2v 4 роки тому

    that is great!!!

  • @kamalabuhenamostafa
    @kamalabuhenamostafa 5 років тому

    Stylic Presentation.

  • @cadenzah93
    @cadenzah93 2 роки тому

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

  • @cs80211
    @cs80211 Рік тому

    thanks

  • @allanguwatudde7623
    @allanguwatudde7623 Рік тому

    nice talk

  • @jmcguckin
    @jmcguckin 4 місяці тому

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

  • @abraham7966
    @abraham7966 3 роки тому +1

    9:10 Welcome to Ruby.

  • @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 4 роки тому +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 9 місяців тому

      ​@@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.

  • @seriyanto
    @seriyanto 4 роки тому +1

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

  • @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 9 місяців тому

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

    • @user-ov5nd1fb7s
      @user-ov5nd1fb7s 9 місяців тому

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

    • @tarunpahuja3443
      @tarunpahuja3443 9 місяців тому

      Okay boss
      @@user-ov5nd1fb7s

  • @chengtaopan1676
    @chengtaopan1676 4 роки тому +1

    nothing further

  • @andreypanin5257
    @andreypanin5257 5 років тому

    Damn, she is trying so hard to sound mean!

  • @perfectcompanionme4444
    @perfectcompanionme4444 Рік тому +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 9 місяців тому

      As if you have good idea all the time.

  • @byonggonchun3750
    @byonggonchun3750 2 роки тому

    thanks kavya