2016-10-24 20 views
-1

アプリケーションまたはドライバを使用してコアマシン(PC)をダウンさせたいとします。msconfigを使用してコア数を制限する

  • 私は、ユーザーが彼が有効になりたかったコアの数を制限することができ、MSCONFIGを使用してみました。
  • msconfig - > Boot - > Advanced Option - > Number of processorの順に選択すると、ドロップダウンリストが表示されます。
  • しかし、ハードウェアアーキテクチャが異なるすべてのプロセッサ(Intel、AMD、..など)。 msconfigを使用すると、ユーザーはコア数を制限できます。

    1. msconfigをは、この機能を処理する方法を知りたいですか?
    2. このツールはCPUレジスタに書き込みますか?
    3. またはこれを行うためのWindows APIはありますか?

ご意見をお寄せください。

+0

質問がわかりません。 – andlabs

+0

@andlabs。あなたはmsconfigの権利を使ってCPUコア制限について知っているかもしれませんか? – RDX

+0

漠然とした。あなたは実際に何をしたいですか? –

答えて

2
  1. Windowsは、そのすべてのコンポーネントは、異なるハードウェアと同じように動作することを可能にするHAL(ハードウェアアブストラクションレイヤ)を、使用しています。詳細は、ハードウェアデバイスドライバによって処理されます。

  2. CPUレジスタは、コードを実行するときにプロセッサによって使用されます。多くの種類のレジスタがあり、それらはすべてプロセッサ開発者仕様書に記載されています。 msconfigはもちろんCPUレジスタを使用していますが、それは単なる設定ツールです。また、各プロセスにはCONTEXTという独自のレジスタ状態構造があることを理解しておく必要があります。そのため、正確に何を達成しようとしているのかは不明です。

  3. msconfigは、Windowsカーネルで使用される構成情報を保存するだけで、初期化時にCPUコア/メモリを制限する可能性があります。 API関数SetProcessAffinityMaskを使用して、選択したプロセスに使用可能なプロセッサを制限することができます。

+0

@ Ari0nhh ..説明をいただきありがとうございます。私は、 "SetProcessAffinityMask" APIをDownCore Windowsマシンに使用できることを教えてください。そしてもしそうなら、リンクやサンプルコードを共有してください。 – RDX

+0

いいえできませんでした。プロセッサコアを制限するだけで、プロセススレッドのスケジューラが利用できます。コア数をグローバルに制限する必要がある場合は、BCD(ブート構成データ)を変更する必要があります。これはmsconfigとまったく同じです。それを自分で行うのはかなり危険なので、システムを簡単に起動できなくなる可能性があります。 – Ari0nhh

+0

ええと...本当に...慎重に処理する必要がありますが、無効にするコア数のデータを持つ任意のCPUレジスタまたはOSプロパティが考えられます。 – RDX

関連する問題