a m:n schedulerについて調べる #2

Closed
kazuminn opened this Issue May 12, 2016 · 2 comments

Comments

Projects
None yet
2 participants
@kazuminn

osレベルでm個のthreadがスケジュールされて、それに対して、goレベルでn個のthreadがスケジュールされるので「a m:n scheduler」と言うらしい。
今回は、それを中心に 英記事を読んだり、コードを書いてgoroutineの実行順番を確認したいと思う。

また、osレベルのthreadスケジューラとgoレベルのthreadスケジューラの違いを調べる。

時間に余裕などあれば、kernelレベルなどを調べて、
mの方をマルチコアとシングルコアにした際の、goのscheduling結果の違いを見たいと思う。

@kazuminn

This comment has been minimized.

Show comment
Hide comment
@kazuminn

kazuminn May 21, 2016

  • 要は、scheduling deel drive入門方法を見つけただけで、終わった。

log

golang 1.1のスケジューラの記事しか見つからず、適当に読んでた。

「へー」とか思いながら、英語に苦戦しながら読んでた。

もっと検索すると、良さげな記事を発見。(ここで残り1時間。まだ深くいかず。
なんか、こいつを読めば、scheduling deel drive入門できそう?
http://www.cs.columbia.edu/~aho/cs6998/reports/12-12-11_DeshpandeSponslerWeiss_GO.pdf

英語がぎっしりなので、図を見るだけに妥協

githubでgoのコンパイラであるgccgoのコードを眺る

(linux kernelよりわかりそう。
https://github.com/golang/gofrontend/blob/8edf085a94579bd819a10f50328233812ceeb950/libgo/runtime/proc.c#L1813-L1859
がスケジューラじゃね?

こいつが優先順位をつけるためにgoroutine structに情報を添付?
https://github.com/golang/gofrontend/blob/8edf085a94579bd819a10f50328233812ceeb950/libgo/runtime/proc.c#L2304-L2371

runtime_gogo関数でcontextとgoroutineをつなげている感じとエスパー

kazuminn commented May 21, 2016

  • 要は、scheduling deel drive入門方法を見つけただけで、終わった。

log

golang 1.1のスケジューラの記事しか見つからず、適当に読んでた。

「へー」とか思いながら、英語に苦戦しながら読んでた。

もっと検索すると、良さげな記事を発見。(ここで残り1時間。まだ深くいかず。
なんか、こいつを読めば、scheduling deel drive入門できそう?
http://www.cs.columbia.edu/~aho/cs6998/reports/12-12-11_DeshpandeSponslerWeiss_GO.pdf

英語がぎっしりなので、図を見るだけに妥協

githubでgoのコンパイラであるgccgoのコードを眺る

(linux kernelよりわかりそう。
https://github.com/golang/gofrontend/blob/8edf085a94579bd819a10f50328233812ceeb950/libgo/runtime/proc.c#L1813-L1859
がスケジューラじゃね?

こいつが優先順位をつけるためにgoroutine structに情報を添付?
https://github.com/golang/gofrontend/blob/8edf085a94579bd819a10f50328233812ceeb950/libgo/runtime/proc.c#L2304-L2371

runtime_gogo関数でcontextとgoroutineをつなげている感じとエスパー

@kazuminn

This comment has been minimized.

Show comment
Hide comment
@kazuminn

kazuminn May 22, 2016

調べることは終わってないけど、勉強会終わったので、close

調べることは終わってないけど、勉強会終わったので、close

@kazuminn kazuminn closed this May 22, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment