派遣
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スケジューリングアルゴリズム
はじめにおよそ三種類:
- 通常のOSでの基本的なスケジューリングアルゴリズム
- 組込みリアルタイム特殊なスケジューリングアルゴリズム
- マルチコア(CPU)スケジューリングアルゴリズム
3.1まず最初に(FCFS)務め、来
利点:単純な(最初のリストの終わり、その後、リストの最初に来る)
短所:平均待機時間と所要時間が比較的長くなり、前工程の実行時間に従う、プリエンプションが考慮されていない、応答時間が影響を受けます
3.2短いプロセスの優先順位(SPN / SRT)
場合は、2つの戦略は、実行中のプロセスよりもさらに短いプロセスの到着があります。
- ノンプリエンプティブモード:それは新しいレディキューに継続していますか
- プリエンプティブ(SRT):現在実行中のプロセスの残りのタイムスライス:8タイムスライス:5は、準備完了状態で実行、新しい実行に置かれています
利点:平均待ち時間が少ない
欠点:
- ショート優先度のタスクは、長期の実装の長い飢餓、不足があるだろう、衡平の原則を満たしていません
- 私は、アルゴリズムの実行時間を達成することは困難であるかわからない
、それが実行時間を知らないため、その後、見積もりのプロセスは、実行履歴に基づいて推定
トンのn:どのくらいの実行現在の会計期間の時間
タオN-:見積もり前のケースの実行時間に基づいて、
3.3優先順位の最も高い応答率(HRRN)
Rは、長い待ち時間、優先度スケジューリングを
つかむとみなされていない
、まだ、プロセスの実行時間を知らない
アカウントに待機時間がかかります
3.4ラウンドロビン(ラウンドロビン)
順に各プロセスがCPUを使用して
P1実行されたとき、タイムスライス20が割り当てられている各プロセスに想定され、P1は53回、20回を必要とし、彼はP2のみ8はP3を実行した後、実行することができ、実行することができ
- 我々は持つことができ、各プロセスを実行するために時間を与えるために、より多くの時間をコンテキストスイッチが必要
- セットタイムスライス(時間の量子):あまりにも頻繁な切り替えは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の一貫した実行が完了していない場合には、ターンを占領し、解放されない
解決策:
- 優先度継承:T1は、共有リソースへのアクセスを持っている場合、優先順位は、この、再びT2、T2が行われていないT3とT1を、言及
2.優先度上限:リソースは、プロセス統計に必要なものの優先順位は、これらのリソースは、優先度が最も高いプロセスがリソースを呼び出すと等しくなるように、優先順位を与えています