目次
(1) 5 つの状態と 7 つの状態 (準備完了保留、ブロック保留)
5. スケジューリングアルゴリズム(キューイング、ショートジョブ、ハイレスポンス)
6. スケジューリングアルゴリズム(タイムスライスローテーション、優先順位、マルチレベルフィードバック)
(2.1) 優先度スケジューリングアルゴリズム - 優先度の設定(動的)
(4) マルチレベルフィードバックキュースケジューリングアルゴリズム
2. 第 2 章 - [プロセスのスケジューリング]
1. スケジュールの概念
(1) 5 つの状態と 7 つの状態 (準備完了保留、ブロック保留)
(2) 3段階のスケジューリング(上級、中級、下位)
ジョブ - メモリ - プロセス
(3) まとめ
2. スケジュール切り替え
(1) スケジューリング - 切り替えタイミング
プロセスが [クリティカル セクション] および [クリティカル リソース] にアクセスしている場合、スケジュールを設定して中断することはできません。
結局のところ、彼はリソースを消費しているのです。彼が予定されている場合、問題は大きくなります。
(2) スケジューリング方法
(3) スイッチング&スケジューリング 【相違点】
(4) まとめ
3. スケジューラーとアイドルプロセス
スケジューラとは - プロセスの状態を合理的に切り替えるため (何度も飛び回らないでください~)
プリエンプティブ スケジューラ - タスクのスケジュール (ポーリング モード)
ノンプリエンプティブスケジューラー (ゆっくりしてください)
スケジューラ ( Scheduler )は、特定の時点で実行するプロセスまたはスレッドを決定する役割を担うオペレーティング システムの重要なコンポーネントです。所定のスケジューリングアルゴリズムと戦略に従って、準備完了状態のプロセスの中から適切なプロセスを選択し、そのプロセスにプロセッサリソースを割り当て、プロセスの状態切り替えを制御します。
プリエンプティブ スケジューラ ( Preemptive Scheduler )は、プロセスの実行中にオペレーティング システムがプロセスのCPU実行権を強制的に剥奪し、より優先度の高い他のプロセスにCPUリソースを割り当てることを可能にするスケジューリング方法です。プリエンプティブ スケジューラには、緊急のタスクや優先度の高いタスクに迅速に応答する機能があり、システムの応答性が向上します。
非プリエンプティブ スケジューラ (非プリエンプティブ スケジューラ)は、協調スケジューラとも呼ばれ、別のスケジューリング方法です。非プリエンプティブ スケジューラでは、プロセスがCPU実行権を取得すると、自発的に放棄するかイベントの発生を待つまで実行され、その後、オペレーティング システムがCPUリソースを他のプロセスに割り当てます。このスケジューリング モードでは、プロセスは意識的にCPUリソースを解放する必要があるため、協調スケジューラではプロセスの協調が特に重要です。
要約すると次のようになります。
- スケジューラ ( Scheduler ) は、オペレーティング システムで実行するプロセスまたはスレッドの選択を担当するコンポーネントです。
- プリエンプティブ スケジューリング -実行中のプロセスのCPUリソースを積極的に奪うことができます。
- 非プリエンプティブ スケジューリング - プロセスが自発的にCPUリソースを解放する必要があります。
これら 2 つのスケジューリング方法は、シナリオごとに異なる適用可能性、利点と欠点を持っています。
徘徊処理(スペアタイヤ) - 「ゼロアドレス」コマンド実行 - (足を振るコマンド)
4. スケジューリングアルゴリズムの評価指標
清華教科書の内容:
CPU使用率
システムスループット
所要時間 – 平均所要時間
所要時間 = 実際の実行時間 + 待機時間
所要時間プラス - 加重所要時間
待ち時間
要約する
5. スケジューリングアルゴリズム(キューイング、ショートジョブ、ハイレスポンス)
(1) 先着順
先に来た人が最初に提供されます(ただし、それは絶対に公平であり、空腹ではありませんが...)
ミルクティーの行列 - 前の人が 20 杯買ったのに、自分は 1 杯しか買わない場合、行列に並ばなければなりません
(2) 短時間の仕事が優先されます。
非プリエンプティブ - タスクキュー内で、タスク時間が短い人が最初に実行します (不公平)
先制攻撃 - 飢えを引き起こします! !!
(3) 高応答率優先
このアルゴリズム - 飢餓につながることはありません (先着順、短い仕事の利点を組み合わせています)
(4) まとめ
6. スケジューリングアルゴリズム(タイムスライスローテーション、優先順位、マルチレベルフィードバック)
(1) タイムスライスの回転
タイムスライス設定 - 大きすぎず、小さすぎず! (切り替え処理のオーバーヘッド - 割合は全処理の1%を超えない)
飢餓を引き起こさない - プロセスは順番に実行されます
(2) 優先スケジューリングアルゴリズム
優先順位 - 割り込み優先順位と同様
そうするとお腹が空くよ~
提案を改善する:
- 優先順位を静的にしないでください。(つまり、死んでおり、変更されません)
- これは動的な優先度です (状況を定期的に分析し、対応する優先度をプロセスに割り当てます)。
- まだお腹空いてますよ~
- 結局のところ、[優先度の高いプロセス] を生成しているのに、[優先度の低いプロセス] はまだ飢えているのです~
(2.1) 優先度スケジューリングアルゴリズム - 優先度の設定(動的)
適用対象 - リアルタイム オペレーティング システム
(3) まとめ
(4) マルチレベルフィードバックキュースケジューリングアルゴリズム
複数のキューを設定することで〜 (クラシック + 1 レイヤー〜)
各キューは異なるリクエストに対応します (異なるキューには異なるスケジューリング アルゴリズムを設定します)
キュー間では、タイムスライス分割、固定優先度などを使用できます。
キュー内では、キュー、短いジョブ、高応答、優先度...を使用できます。
(5) まとめ
インタラクティブ システムに適しています - より優れたフィードバック、公平性、バランスを提供できます。
Unixオペレーティング システム - 対話型システム