[Armadillo:08741] Re: プロセスのスイッチング時間

nakayama junichi email@hidden
2013年 4月 16日 (火) 11:33:07 JST


Yamamoto様

ONICOSの中山と申します。

> 親プロセスから複数の子プロセスをfork関数とexecv関数で起動しているのですが
> 一つの子プロセスがCPUを使用したままになった場合、どの位の時間でスイッチングして
> くれくるのでしょうか?
>
> Armadillo-460でC言語で行っています。

カーネルのプロセススケジューラの実装等に深く関わってくることですので、
非常に難しい質問だと思います。

参考になるかわかりませんが、
Armadillo-440環境では、
私の作成したプログラムにて以下のような問題が発生したことがあります。
ある子プロセスがシステムコールを一切呼ばない状態でループするようになっており、 

その処理に差しかかるとシステム全体が停まってしまいました。
この問題は、sleep(0)をしながらループするように対処して解決しました。

この経験から言いますと、
一つの子プロセスがCPUを使用したままになった場合、
スイッチングは全く発生しないと言えます。
この場合、カーネルすら動けなくなりますので、
アプリケーション側のバグと考えるべきです。


--------------------------------------------------
From: "Yamamoto" <email@hidden>
Sent: Tuesday, April 16, 2013 10:41 AM
To: "Armadilloメーリングリスト" <email@hidden>
Subject: [Armadillo:08740] プロセスのスイッチング時間

> Yamamotoです。
>
> 親プロセスから複数の子プロセスをfork関数とexecv関数で起動しているのですが
> 一つの子プロセスがCPUを使用したままになった場合、どの位の時間でスイッチングして
> くれくるのでしょうか?
>
> Armadillo-460でC言語で行っています。
>
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo 




armadillo メーリングリストの案内