[オペレーティング・システム] 11タスクキュー、CPU負荷、順序のうち命令、バリア命令

、CPU負荷
CPUは、負荷統計情報(累積数)であるか、またはCPUプロセスを使用するのを待つ。、値+1負荷の原因となる各使用(実行)または(実行可能)CPUの処理を待つ。プロセスの各端部、意志-1の負荷値という。
Unixオペレーティングシステムのほとんどは、実行中のプロセスと実行可能を計算します。しかし、上記の二つの状態に加え、Linuxシステムには、また、算出した無停電スリープ状態のプロセスは、(通常はディスクIOを待っています)。

CPU負荷平均:W、アップタイム、トップ:それぞれ1分、5分、15分以内にCPU負荷平均値は、コマンドを使用します。

第二に、作業キュー(ワークキュー)は、作業の実行を遅延させる手段のLinuxカーネルは、作業キューの主な目的は、このような実行など、非常に小さなタスクに適しているスレッド、ないCPUやメモリのオーバーヘッドを作成していない、リソースを節約することですウェイクアップ作品。

第三に、アウトオブオーダー命令
実行時間を短縮するために、元のプロセスの実行順序を変更することによっても、計算速度を向上させるための技術のうち、シングルコアの場合には転位と呼ばれる、注文の実行呼び出されます。

(1)分類プロセッサは、スクランブルされた
データ依存性が存在せず、プロセッサは、プロセッサの実行速度を改善するために、ステートメントに対応する機械語命令の実行の順序を変更することができる、現代の技術の並列命令プロセッサと、
近代的な内部プロセッサデータの変更につながるキャッシング技術は、速やかにメインメモリに反映させることができないためから抜け出し、
刑の執行の順序を最適化し、再配置する近代的なコンパイラ。

(2)AS-IF-シリアルセマンティクス
プロセッサまたはコンパイラのいずれか、に関係なく再配置は、結果の実装を保証しなければならない方法(シングルスレッド)プログラムを変更することはできません、これは、ティーケトルほど-IF-シリアルセマンティクス、あります最終的な結果はではなく、ボイラーに、常にお茶です。これは、再配置演算結果が変更されますので、この意味論に従うために、プロセッサおよびコンパイラの動作データの依存関係は、再配置することができません

第四に、メモリバリア
マルチコア場合について、これらの「スマートaleck」のいくつかのマルチスレッドプログラムは、事故の様々な生産に結果を最適化するための出ているため、機構が存在する悪影響が順序を外れてもたらさ除去する必要があるだけでなく、それは、プログラマが明示的に実行を禁止するためにいくつかの場所の注文のうち、プロセッサに伝えることができなければならない。このメカニズムは、メモリバリアと呼ばれている。
命令セットが対応して、メモリバリアを開始する別のコマンドを提供しているさまざまなプロセッサアーキテクチャをプロセッサ固有の命令を呼び出すために:(揮発性など)特別なキーワードを提供することを目的とするプログラミング言語。

分類メモリバリア:
データプロセッサがキャッシュメモリをリフレッシュすることで保存し、メモリからデータをロードするには、それらをキャッシュするためにコピーされます。

StoreLoad障壁はまた、他の三つの障壁の効果を有し、したがって、すべてのラウンドの障壁として知られている、ほとんどのプロセッサでサポートされているが、オーバーヘッドは比較的高価であることを他のバリアとを比較し、濃縮x86アーキテクチャの命令プロセッサに、ロックコマンドがStoreLoad障壁をトリガすることができます。

 

参考:
Linuxカーネルの作業キューは、
注文執行とメモリバリアの外に話をする
メモリバリアを解決するための記事

おすすめ

転載: www.cnblogs.com/cac2020/p/11801177.html