ページ 11

プロセスのsleepと起動

Posted: 2013年9月14日(土) 16:08
by 栗熊
Windows 7とvisual studio2010 VC++ を利用しています.
プロセスもsleepにさせることができるのでしょうか。
もしできるなら、
threadのwakeupとプロセスのwakeupに所要時間に一般論として大きな差があるのでしょうか。

それから、プロセスがアイドル状態になる時、sleepにさせないで、
繰り返しあるflagの値をチェックさせるためにCPU時間が多く使われるのでしょうか。

ご教授お願い致します。

Re: プロセスのsleepと起動

Posted: 2013年9月14日(土) 19:22
by softya(ソフト屋)
栗熊 さんが書きました:Windows 7とvisual studio2010 VC++ を利用しています.
プロセスもsleepにさせることができるのでしょうか。
どういう意味のsleepでしょうか? 
Sleep()関数とは違う意味で聞かれていますか?
栗熊 さんが書きました: もしできるなら、
threadのwakeupとプロセスのwakeupに所要時間に一般論として大きな差があるのでしょうか。
プロセスの切り替えとスレッド切り替えのコストは違いますが、それとSleep状態からの復帰を同列には論じれません。
答えとしては状況次第って所でしょうか。
栗熊 さんが書きました: それから、プロセスがアイドル状態になる時、sleepにさせないで、
繰り返しあるflagの値をチェックさせるためにCPU時間が多く使われるのでしょうか。
これは質問自体が意味不明です。
> 繰り返しあるflagの値をチェックさせるためにCPU時間が多く使われるのでしょうか。
これはOS内部?あるいはユーザープログラム側の話でしょうか?

Re: プロセスのsleepと起動

Posted: 2013年9月16日(月) 09:34
by 栗熊
さっそくお返答有難うございます。
私の質問の中にいろいろ不明確な点がありまして、ご迷惑でした。

どういう意味のsleepでしょうか? 
Sleep()関数とは違う意味で聞かれていますか?

A: そうですね。具体関数名は分かりませんが、消滅されていないが、下記状態ではない状態。
  runnning状態 / executing状態 /active状態 (ここでは同等の概念を表します)

  要は依然生きているが、システムリソースを消耗しないという状態。
  勿論、使いたい時に最速にwake upできればと思います。
  これは通常sleep状態と言うでしょう------具体的な関数名として(恐らく) sleep() のようなもんと思います。 

プロセスの切り替えとスレッド切り替えのコストは違いますが、それとSleep状態からの復帰を同列には論じれません。
答えとしては状況次第って所でしょうか。
A: 私が聞きたいのはSleep状態からの復帰のコストですね。 
  プロセスの休眠状態から とスレッドの休眠状態からどっちがもっと素早く仕事状態になれるのでしょうか。

> 繰り返しあるflagの値をチェックさせるためにCPU時間が多く使われるのでしょうか。
これはOS内部?あるいはユーザープログラム側の話でしょうか?

A: 自分が作ったプログラム(プロセス)の中であるI/Oポートのあるbitの値を絶えず繰り返しチェックします。
これで、他のthreadやprocessの処理速度に相当な影響を与えるのでしょうか。


ご教授お願い申し上げます。

Re: プロセスのsleepと起動

Posted: 2013年9月16日(月) 10:52
by softya(ソフト屋)
> 勿論、使いたい時に最速にwake upできればと思います。

WindowsOSとしては、プロセスの優先順位を上げるくらいしか手がないです。
リアルタイムOSではないので、時間保証は困難ですね。
実時間保証したいときは一般的にRTOS(リアルタイムOS)を使います。

> 私が聞きたいのはSleep状態からの復帰のコストですね。 
>  プロセスの休眠状態から とスレッドの休眠状態からどっちがもっと素早く仕事状態になれるのでしょうか。

特に資料を探せてないですがプロセスからの休眠回復のほうが原理的には遅そうです。
ただ、スレッドの休眠回復はプロセスの休眠回復を兼ねる可能性が高いので大差はないかもしれません。

>A: 自分が作ったプログラム(プロセス)の中であるI/Oポートのあるbitの値を絶えず繰り返しチェックします。
>これで、他のthreadやprocessの処理速度に相当な影響を与えるのでしょうか。

全力でSleepもせずにチェックしていたらCPUコアを1つ100%で専有します。

Re: プロセスのsleepと起動

Posted: 2013年9月18日(水) 13:44
by 栗熊
よく分かりました。
有難うございました。