オペレーティングシステムページテーブル&プロセススケジューリングのヒント

この記事では、時間と空間についての二つの小さなヒントが、それは、敵のCPUとメモリである... CVE-2019から11478の最近のバーストも見る握手をするために一緒に邪悪な敵を聞かせてと言った:
HTTPS:// blog.csdn.net/dog250/article/details/94654620

TCPは、これは現代のオペレーティングシステムのコアのコアであり、次ページの表を言うとスケジューリングのプロセスについて話しません。

ページテーブル

可能な限り、インデックス、宇宙のために時間を見つけるために変換する必要があります。
あなたが見つけることができるときはいつでも、それは時間のインデックス、空間に変換する必要があります。
より多くのではなく、あまりにも多くの32ビットシステムのための評価のページテーブルインデックステーブルメモリは、それを使用することができます。
過言ではない、非スパースアドレス64ビットシステムアーキテクチャでは、それは多くのための評価のページ・テーブル・インデックス・テーブル・メモリが、使用することができます。
複数の階層ページテーブルインデックスメモリは、64ビット・アドレス・システムの疎な構造の場合、使用できません。
すべての仮想アドレスマッピングの評価ページ・テーブル・インデックス、そしてシリーズは、より多くのメモリ消費量は、まばらなアドレス空間は良いですが、インデックスシリーズの重要性を増します。
すべてのプロセスが同じ物理メモリ空間を共有するシステムは、あなたが原因のアドレス空間の分離に、想像することができるので、各物理ページは基本的プロセスの一部であり、仮想ページは、一つの物理的なものに変換することができ、物理ページにマッピングされていますページには質問をするトラバース「あなたはすでに私に割り当てられていません?。」

仮想アドレス空間の物理的なアドレス空間が大きいが、小さくはないが存在していないがしかし、非現実的な1つのトラバーサルずつは、そのため、従来のハッシュは、即時のソリューションです。その第一の仮想小さい物理アドレス空間へのプロセスIDのハッシュと共にアドレス、及び小さな空間をトラバースすることができます。

など、このglibcでなどの共有ページを、考慮すると、いわゆる競合チェーンは、2つのカテゴリ、すなわちハッシュ衝突と共有違反があります。

したがって、次のようなページテーブルの合理的なタイプ:


これが反転ページ・テーブルで、システムは1つのテーブルのみを有することに注意して、スーパーはメモリを節約します。パフォーマンスは、ハッシュアルゴリズムの性能に依存し、同期は相互に排他的です。

核となるアイデアは、インデックスが外観を変更できるようになることです。

プロセスのスケジューリング

初期の、UNIXのプロセスのスケジューリング戦略では多様、さまざまなアルゴリズムが、その時間が経過し、現在マルチコアの時代ですしている、というポリシーをスケジュールするよりも、に焦点を当てることより重要なものがあります。

単一CPUの初期の時代には、すべてのプロセスは、このユニークなCPUシリアルラインにあるように、それはすべての公平性スケジューリングアルゴリズムの効率に依存します。例えば、プロセスはように長いプロセスの短い、短いプロセスは、できるだけ早く終了し餓死し、することはできません。

今、最も適切な処理コアを見つけるために、プロセス/スレッドに集中することで変換する予定の複数の実行コアの存在によるマルチコア時代、へ。むしろより/プロセスのための最も適切なスレッドの実行時間を選択します。

だから、ネストされた質問は、単一の処理コアのために、必要性は最も適切な実行時間を選択するために/スレッドを処理する必要はありませんされています。答えは必要とされますが、問題ではありませんでした。複数の処理コアがあり、プロセス/スレッドが窒息しないので、他の処理コア聖歌に行く大した。

だから、マルチコア時代、何に注意が必要?

マルチコアやマルチCPUは少し異なる概念ではないことに注意してください、マルチコア構造に必要な事は、キャッシュ・アーキテクチャであり、処理コア間のキャッシュアーキテクチャの決定プロセス/スレッドの移行、これは正確に予定されていますコアアルゴリズムの一つ。

しかし、飢餓の場合には、キャッシュの利用率を向上させるプロセス/スレッドしませんモビリティを移行することはできません。

第二に、個々の処理コアのために、我々は万能のLinuxのような、それは、Windows NT 4.0以降、またはLinux 2.6 / 3.xの/ 4.xの/ 5.xのある、またはFreeBSDの、様々なUNIXバリアントかどうか、わかります2.6 O(1)O(1)O(1)アルゴリズム、新しいCFS Linuxは例外ではない場合でも:

動的な優先順位調整。
お仕置き計算タスク、タスクの報酬IOタイプ。
シングルコアの場合は、より成熟した技術は十分に思えますが、マルチコア/スレッドの移行の間にプロセスがまだ不十分で、まだ長い道のりがあります。以下のリンクを参照してください:
Linuxのスケジューラで:コアの無駄十年は、
次のように読み取ります
http://www.ece.ubc.ca/~sasha/papers/eurosys16-final29.pdf

その理由は、デザインのアイデアは、人々はまだ、最も適切なスケジュールを設定するための最良の時間を見つけることを期待して、単一の処理コアでそれを行うために設計されたスケジューリングアルゴリズムの古代の考え方に従うように私には思える、そう悪いですプロセス/スレッド。

しかし逆に、私は、これは時間ディメンションアルゴリズムではないと思うが、メモリ割り当ての問題ではなく、割り当てられたCPU時間の問題に似た空間次元アルゴリズムに変換しました。

効率的なメモリ割り当てアルゴリズムの設計と同様はい、マルチコア・スケジューリング、ない破片(NOビジーアイドル)、高いキャッシュ使用。

午前2時07分、ウェット━━━●━━━─靴─太っていない-
⇆ ㅤ ◁▷❚❚ ㅤ ㅤ ㅤ

 

おすすめ

転載: blog.csdn.net/qq_42763389/article/details/95356897