2

答えを再確認するために、この質問をする必要があります。

コマンドの順序は重要ですか? 例えば:

このコマンドですか

 taskset 0x2 time echo "foo"

等しい

time taskset 0x2 echo "foo"

?

タスクセットに続くすべてのコマンドが同じ CPU アフィニティを持つのか、それともその直後のコマンドだけを持つのかを知る必要があります。

4

2 に答える 2

1

ここで2つの異なる質問をしているようです-「それらは同等ですか?」および「CPU アフィニティは継承されますか?」。

まず、リストした 2 つのコマンドは同等ではありません。最初:

taskset 0x2 time echo "foo"

PATH私が現在使用しているホストと同様のセットアップを想定すると、次のようになります。

/bin/taskset 0x2 /usr/bin/time /bin/echo "foo"

次のようなプロセス ツリーが生成されます。

/bin/taskset
    |
    \- /usr/bin/time
            |
            \- /bin/echo

二番目:

time taskset 0x2 echo "foo"

これはbuiltin/bin/taskset 0x2 /bin/echo "foo"によってラップされたものと同等であり、次のプロセス ツリーを生成します。bashtime

/bin/taskset
    |
    \- /bin/echo

この場合、外部プロセスは 2 つしかありません。timeパーツはbashを呼び出す代わりに、内部で処理され/usr/bin/timeます。

2 番目の質問に答えるために、Linux では CPU アフィニティが継承されるため、最初の例では と の両方/usr/bin/time/bin/echo指定された CPU セットにバインドします。2 番目の例でtimeは、 はシェルに組み込まれているため、現在のコマンド ラインではbashなく、自身に設定された CPU アフィニティの影響を受けます。taskset

于 2015-06-16T18:51:02.623 に答える