オペレーティングシステム - 5スケジュール

1つの背景

ここに画像を挿入説明
どのCPUスケジューリングを切り替える関連原理、切り替えたとき
ここに画像を挿入説明
の状態をブロッキング等> -そのような動作モードのような特定の動作モードに関連する変換状態をスケジュールするときに実行されます、。
ここに画像を挿入説明
非プリエンプティブ:プロセス開始後の効率が高くないことを確実にするために気にすることはできません
(そのプロセスのユーザモードの)共通スケジューリングポリシー:プリエンプティブ。カーネルがつかむことができますかどうか?ユーザプロセスは、システムコールを実行すると、カーネルは、カーネルのプリエンプションが発生しないこと、待機状態では、このプロセスをリードする、または実行している、またはこのシステムコールを戻す処理を開始しません
今、いくつかのシステムをあなたは、カーネルプリエンプションを行うことができます

2スケジューリング原則

2.1スケジューリングポリシー

2.2プログラムの実行モデル

ここに画像を挿入説明
プロセスのために、時にはCPUが忙しい、時にはCPUをフルに活用するために、我々は他のプロセスにCPUを使用して、CPUがアイドルダウンしたときにことを願っています(たとえば、I / O操作のように)ダウンアイドルます

2.3比較スケジューリングアルゴリズムのガイドライン

評価スケジューリングアルゴリズム:
ここに画像を挿入説明
CPU使用率:システムの高い、優れた効率
の高効率化、より良いプロセス:スループット
所要時間:、つまり、プロセスを完了するために待機時間+サービス時間をプロセスを開始
待ち時間:レディ状態でどのくらいの動作モードを実行しているCPUに他の処理前の時間
応答時間:末梢早く問題処理プロセスを完了した要求、より優れた応答時間

スループット遅延対2.4

ここに画像を挿入説明
低遅延:高速な応答時間
、高帯域幅:高スループットを
素早く反映していると考えることができます

2.5株式の目標

ここに画像を挿入説明
インデックスの上に、そして魚の両方がすることはできません
ここに画像を挿入説明
ここに画像を挿入説明
フェアは、実行時間を待っていることも一般的に公平である、一般的にOSがCPU時間を取得各CPUのサービスのためのスケジューリングアルゴリズムによって公正なプロセスを得ることができます期待しています

3スケジューリングアルゴリズム

はじめにおよそ三種類:

  1. 通常のOSでの基本的なスケジューリングアルゴリズム
  2. 組込みリアルタイム特殊なスケジューリングアルゴリズム
  3. マルチコア(CPU)スケジューリングアルゴリズム
    ここに画像を挿入説明

3.1まず最初に(FCFS)務め、来

ここに画像を挿入説明
ここに画像を挿入説明
利点:単純な(最初のリストの終わり、その後、リストの最初に来る)
短所:平均待機時間と所要時間が比較的長くなり、前工程の実行時間に従う、プリエンプションが考慮されていない、応答時間が影響を受けます

3.2短いプロセスの優先順位(SPN / SRT)

ここに画像を挿入説明
場合は、2つの戦略は、実行中のプロセスよりもさらに短いプロセスの到着があります。

  1. ノンプリエンプティブモード:それは新しいレディキューに継続していますか
  2. プリエンプティブ(SRT):現在実行中のプロセスの残りのタイムスライス:8タイムスライス:5は、準備完了状態で実行、新しい実行に置かれています

利点:平均待ち時間が少ない
ここに画像を挿入説明
欠点:

  1. ショート優先度のタスクは、長期の実装の長い飢餓、不足があるだろう、衡平の原則を満たしていません
  2. 私は、アルゴリズムの実行時間を達成することは困難であるかわからない
    ここに画像を挿入説明
    ここに画像を挿入説明
    、それが実行時間を知らないため、その後、見積もりのプロセスは、実行履歴に基づいて推定
    トンのn:どのくらいの実行現在の会計期間の時間
    タオN-:見積もり前のケースの実行時間に基づいて、
    ここに画像を挿入説明

3.3優先順位の最も高い応答率(HRRN)

ここに画像を挿入説明
Rは、長い待ち時間、優先度スケジューリングを
つかむとみなされていない
、まだ、プロセスの実行時間を知らない
アカウントに待機時間がかかります

3.4ラウンドロビン(ラウンドロビン)

ここに画像を挿入説明
順に各プロセスがCPUを使用して
ここに画像を挿入説明
P1実行されたとき、タイムスライス20が割り当てられている各プロセスに想定され、P1は53回、20回を必要とし、彼はP2のみ8はP3を実行した後、実行することができ、実行することができ
ここに画像を挿入説明

  1. 我々は持つことができ、各プロセスを実行するために時間を与えるために、より多くの時間をコンテキストスイッチが必要
  2. セットタイムスライス(時間の量子):あまりにも頻繁な切り替えはFCFSの小さすぎる、大きすぎるの劣化になります
    (明確な功インスタント画面)
    ここに画像を挿入説明
    RR FCFSの公正性劣る
    効率は、最初は長くする場合は、先着順に来るべき人に依存それは非効率的です

3.5レベルのフィードバックキュー(MLFQ)(動的調整)以上

ここに画像を挿入説明
レディキューは異なるキュー、異なるテイク異なるスケジューリングアルゴリズムのキューの数に分割されています。例えば、最も高度なキューイングが短いプロセスの優先度を取り、下キューは、プロセスの特性を考慮して、FCFSを取るために
ここに画像を挿入説明
、対話型プロセスからの処理を追加することを(私は/ O集中型)、高い優先順位は、長い待ち時間を待機する時間があるでしょう、優先順位が高いことを指摘しました。タイムスライスがなくなったら、相互作用が行われた後、コンピューティングの多くを開始し、CPU時間(CPUインテンシブ)長くてもよく、タイムスライスとすぐに、彼らは、次の優先順位にタイムスライスを、彼を降ろしますより、優先度を下げます。
プロセスは、より高い優先度で置い対話する必要があるので、一度それが必要なものを得ることを、すぐに実行に応えることができるようになります。

3.6フェアシェア(フェアシェアスケジューリング)

公正強調し
、ユーザレベルでの公正な共有を実現するために、いくつかはあまり開いて、より多くの複数のユーザーが1台のコンピュータを共有するよりも、一部のユーザーは、よりオープンなプロセスを持って、サーバ用(科学技術計算)を、CPUに公正呼び出し
、最新のLinuxこれは、アルゴリズムをとっています
ここに画像を挿入説明

3.7アルゴリズムの評価

ここに画像を挿入説明
このようなアルゴリズムは、どのように議論するシミュレータを構築するためのキューの確立など数理モデル、
すべてのスケジューリングアルゴリズムとハードウェアの後に実質的な影響を確認するために、実際のシステムで実行することがより望ましいが、また関係を持っています
ここに画像を挿入説明

4リアルタイムスケジューリング

4.1リアルタイムシステム

ここに画像を挿入説明

  • こうした電車、工作機械など、産業用制御に使用される、埋め込まれた工場では、特定のタスクが規定時間内に完了していることを確認する必要があります
  • 確実性と予測可能性:リアルタイムシステムの特徴
  • 分かれて:
    • 強力なリアルタイム・システム:(時間で完了していない重要なタスクは、悲惨な結果を持つことができる場合は、速やかにダムの水を、外出先で深刻な影響を持つことになりますさせない、)完了しなければならない保証タイムクリティカルなタスク内に完了する必要があります
    • ソフトリアルタイムシステム:要件限り、優先度の高い重要なプロセス、可能な完全な、非必須(ビデオでは、毎秒60のフレーム、あま​​りにも深刻な影響を持っていません)

プロセスはかなりの需要を完了することができます測定し、用語のいくつかそれを記述するために使用:
ここに画像を挿入説明
リリースタイム:準備時間にプロセスを聞かせて
特定のタスクを完了するために、相対時間、各期間:相対締切
実行時間を:実行時
絶対期限:最終期限は、時間の実施期間の終了は、この超えることができない
ここに画像を挿入説明
、図形

  • 周期p = 5、
  • ブルーの実行時間は、pを超えることはできません。

ここに画像を挿入説明

4.2スケジュール可能

ここに画像を挿入説明
静的優先度スケジューリング:あなたは、優先度選択タスクに応じて、特定されたタスクの実行優先度を置く前に、指定された時間内に完了し実行するための
動的な優先順位スケジューリングを:タスクの実行では、サイクルが異なる時間にその優先順位を変更しますそれは違うだろう

4.3レートモノトニック(RM)

ここに画像を挿入説明
高い優先順位の実装の期間優先順位付けを開始する前に、短いです

4.4期限最も早い優先(EDF)

ここに画像を挿入説明

5マルチプロセッサ・スケジューリング(マルチCPU)

ここに画像を挿入説明
OSを考慮する必要があります。

  • CPU上のプロセス
  • 各CPUの負荷バランシング

6優先順位の逆転

ここに画像を挿入説明
ここに画像を挿入説明
優先順位:Tlの> T2> T3
共有リソースt2までアクセスを行う場合T3は、最初に実行され、T3、T1は、時刻t4に実行Tlの開始に、T1は、共有リソースへのアクセス権を持っているが、共有リソースがT3であります実装T3、T5、T2は、実行T2を開始する際、T6は、時間に、T3、この時間を進み、Tlの一貫した実行が完了していない場合には、ターンを占領し、解放されない
ここに画像を挿入説明
解決策:

  1. 優先度継承:T1は、共有リソースへのアクセスを持っている場合、優先順位は、この、再びT2、T2が行われていないT3とT1を、言及

ここに画像を挿入説明
2.優先度上限:リソースは、プロセス統計に必要なものの優先順位は、これらのリソースは、優先度が最も高いプロセスがリソースを呼び出すと等しくなるように、優先順位を与えています

公開された16元の記事 ウォンの賞賛0 ビュー238

おすすめ

転載: blog.csdn.net/qq_42713936/article/details/105210927