マルチコアのミニックスが遅い。

前回の記事でマルチコア化してみた、、と書いたミニックスなんだけど、…すごい、遅くて。
どうして遅いのか考えてたんですが、多分こう言うことなんじゃないかと。。(未検証)

コンテキストの変化

 

今の設計だと、マルチコアを活かせないどころか無駄にCPU間通信が発生する分遅いわけだ。。。
解決しようと思うとサーバーがユーザープロセスと同じCPU…現実的には全てのCPUにいてくれるのがベストで、それを実現するにはマルチスレッドが有効なはず。

 

でもMinixはマルチスレッドに対応していないので。。。。。。。。

QNXのリソースマネージャーがスレッドプールを利用している理由もこれでよくわかる。そう言う設計であれば各CPUにスレッドを配置できるもの。

 

勉強になりました。。

 

これなんかもう設計が古すぎるんやね。。マルチコアを生かそうと思ったらマルチスレッドが必須だなぁ。32bitだしもう再設計したいなって気になってきました(苦笑)