• 締切済み

CPU実行時間の割り当てについて

質問です。 Windows系OSにて、プログラム起動時に各スレッドにCPUの実行時間が割り当てられると思いますが、この実行時間のデフォルト値は各アプリケーションによって決まるのでしょうか?もし、そうではなく一定であればデフォルトの時間はどれくらいなのでしょうか? どなたかご教授ください。 よろしくお願いします。

みんなの回答

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.2

通常Windowsでは実行時間が割り当てという概念はないと思います。 強いて言えば無制限でしょうか? スレッドは優先順位は持ちますが、時間に関しては特に決まっていないでしょう。 スレッドが切り替わるタイミングは決められた(設定された?)基準時間単位ですが、次に何を実行するかはスケジューラーの問題で、 自分や他のスレッドのプライオリティやイベント等の待ち状態により変化します。

  • Mahk2
  • ベストアンサー率29% (15/51)
回答No.1

 Windowsの種類によっても変わりますし、プロセッサによっても変わってきます。  Windows2000を例にとっていえばURLのサイトが詳しいかと。  Windows2000では、簡単にいうとプロセッサによってタイムスライスの時間がきまり、そのタイムスライス内でOSによって決まるクォンタムによって連続実行時間が決まる。 しかし、途中で、実行がより高いプライオリティのスレッドがレディになれば、そちらに処理がうつる。  アプリケーションによって決まるというよりも、そのアプリケーションの(正確にはプロセス?)に与えられた優先順位およびスレッドに与えられた優先順位によって決まるというべきでしょうか。。。  うーん。要はアプリケーションレベルではあまり意識しなくてもよいのではないかと^^;

参考URL:
http://www.atmarkit.co.jp/fwin2k/special/win9xorwin2k/win2kprocess_5.html

関連するQ&A

  • CPU時間の測定

    任意のJavaアプリケーション内の特定の処理での実行時に消費したCPU時間を,そのJavaアプリケーション内部で測定するにはどのようにしたらよいのでしょうか(開始時と終了時の currentTimeMillis() の差分は実時間なので該当せず.アプリケーション起動時にシェルでtimeコマンドを呼ぶのも,外部からの測定であり,また,アプリケーション全体の測定になるので該当せず).C/C++ では clock() の差分で測定していたのですが Javaでの方法がわかりません.OSはLinuxです.

    • ベストアンサー
    • Java
  • OSとCPUの関係について

    Windows(OS)についての質問です。 Windows(OS)がCPUによって制御されているのは分かりました。 例えば,エクスプローラーは,Windowsのアプリケーションだと思いますが, エクスプローラーを起動した時は,エクスプローラーはメモリ上に記憶されて,CPUがメモリにアクセスして,制御が行われるのでしょうか? CPUが,直接ストレージに保存されているWindowsにアクセスするのでしょうか?

  • WindowsでCPU100%時に特定バッチを実行

    Windows10でCPU100%の状態が続いたら特定のバッチを実行したいのですが 簡単な方法を教えてください。 具体的にはとあるプログラムを24時間走らせる専用のパソコンがあるのですが そのプログラムのプロセスのCPU使用率が時々100%で張り付いてそのプログラムのパフォーマンスが著しく落ちます。根本的な解決ができればいいのですが海外制フリーウェアのため難しいです 今は手動でそのプログラムを終了するとCPU100%が解消されるのでまた手動で起動していますがこれを自動化したいです。なお強制終了しても問題ないプログラムです。 よろしくお願いします。

  • Javaのスレッドとcpuのスレッド

    javaのスレッドは各スレッドを少しずつ実行してあたかも同時に実行しているように見せかけているだけだと本で読んだことがあります。現在のcpuはi7 8700kだと6コア12スレッドになりますが、この場合どのような動きになるのでしょうか。 例えば12個のスレッドを使用したプログラムを実行するとpcが勝手に8700kの12スレッドに割り振って実行してくれるのか、それとも単にcpuの1スレッドでjavaの12スレッドを同時に動かしてるように見せかけるのか、cpuのスレッドとjavaのスレッドの関係がいまいち解りません。

  • 一定時間操作がなければ任意のプログラムを実行

    こんにちは。 表題通り、スクリーンセーバーみたいに、PCに対して一定時間操作がない場合に、任意のプログラムを実行できるようなフリーソフト、またはソフトを使わなくてもwindowsでそういった設定が出来るのなら教えてください。 OSはwindows2000です。 よろしくお願いします。

  • スレッド割り当てについて

    デュアルコアへのスレッド割り当てに関して、良い資料が見つからないので教えて下さい。 C#でwindowsアプリケーションを作成しています。 アプリの動作環境は、windows server 2008 で、CPUはデュアルコアです。 アプリを効率良く動作させたいので、 デュアルコアへのスレッドの割り当て方法がありましたら、教えていただけませんでしょうか。 また、参考になるサイトなどがありましたら紹介していただきたいです。 情報が足らなければ指摘をお願いします。

  • 最近のcpuのコア数、スレッド数について

    osは時分割でcpuを割り当てることでマルチプロセスを 実現しているんだと思います。windowsではマルチプロ セスではなくマルチスレッド?どちらもできる?よく わからないですが、そこでいうスレッドと、最近のcpu の○コア○スレッドという際のスレッドは全然別の話です よね?アプリのスレッドがたった数個しか実行できない なんてあり得ないですし。

  • 特定のプログラム(アプリケーション,ソフトウェア)を定期的に再実行(再起動)するフリーソフトはありますか?

    特定のプログラム(アプリケーション,ソフトウェア)を定期的に再実行(再起動)するフリーソフトはありますか? あるソフトウェアを長時間使っているとメモリがどんどん消費されてしまい,定期的に再起動しなくてはなりません.今は自分でおこなっていますが,自動でおこなってくれるフリーウェア,あるいは方法はありますでしょうか?OSはWindows XPです.

  • 実行時のCPU使用率を増やしたい

    WindowsServer2003(StandardEdition)でのCPU使用率において、 質問があります。 VB6.0で作成したバッチプログラムを動かしています。 プログラムの内容はVBからMdbに対して問い合わせを行い 結果をMdbに格納する。。。といった感じです。 (接続はADOです) またWebサーバーもかねており、IIS6.0で運用しています。 (メインの言語はASP) 上記の処理(バッチ及びIIS)の中にはかなり CPU負荷かが掛かる処理があるのですが CPUが30%を超えないのです。 (VB、IIS運用時共。確認はタスクマネージャー) 重い処理が走るときは30%付近をMAXにだらだらと時間が過ぎていきます。 こちらとしては一気に100%まで使い切ってもらって処理時間を短縮したい。 コーディング、あるいはOS上で設定などがあるのでしょうか? WindowsServer2003は導入後、RAID、IIS等の環境設定を行いましたが それ以外はほぼデフォルト状態です。 サーバ環境 CPU:Xeon3.2G メモリ:1GB HDD:十分な空容量有

  • マルチコアCPUのコア割り当て

    マルチコアCPUのコア割り当て 基本的な質問ですが教えてください。 マルチコアCPUで実行コアの割り当てはどのように 振り分けているのでしょうか? (ハードは正常に動作している条件で) 勝手な想定では、 1)OS(ドライバ)が効率よく、振り分けを行う。 2)APLのコーディングにより明示的に振り分ける。 3)OSもAPLも特に意識なく、CPUが自立的に振り分ける。 のいずれかと思っていますが、実際はどのような動作を しているのでしょうか?