オペレーティングシステム(3)プロセッサスケジューリングの概念、階層プロセススケジューリングのタイミング、メソッドスケジューリングアルゴリズムの評価指標、スケジューリングアルゴリズムの導入、先着順、先着順のショートジョブなど。

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

1.プロセッサスケジューリングの概念とレベル

1.スケジューリングの基本概念

プロセッサのスケジューリングとは、特定のアルゴリズムに従ってレディキューからプロセスを選択し、そのプロセスにプロセッサを割り当てて実行することです。

2.3つのレベルのスケジューリング

(1)高度なスケジューリング

外部ストレージのバックアップキューから1つ以上のジョブを選択し、それらにメモリとその他のリソースを割り当て、対応するプロセスを確立し(PCBを構築)、プロセッサを奪い合う権利を取得できるようにします。

注:高度なスケジューリングとは、主に転送の問題を指します。転送のタイミングのみをオペレーティングシステムが決定する必要があり、転送のタイミングはジョブの終了を待機している必要があります。

(2)中間スケジューリング

どのプロセスが一時停止状態にあるかを決定して、メモリにリロードします

一時停止状態:一時的に外部メモリに転送されます待機プロセスは一時停止されますが、PCBは外部メモリに転送されず、常駐メモリに転送されます

注:中間スケジューリングは、高度なスケジューリングよりも頻繁に発生します

(3)低レベルのスケジューリング

特定のアルゴリズムに従ってレディキューからプロセスを選択し、それにプロセッサを割り当てます

注:低レベルのスケジューリングは、オペレーティングシステムで最も基本的なタイプのスケジューリングであり、頻度が最も高くなります。

3.プロセスの7つの状態モデル

ここに画像の説明を挿入

4.3層スケジューリングの連絡と比較

ここに画像の説明を挿入

  1. 知識レビュー
    ここに画像の説明を挿入

第二に、プロセススケジューリングのタイミングと方法

1.プロセススケジューリングのタイミング

ここに画像の説明を挿入

2.プロセススケジューリングの方法

(1)非剥奪スケジューリング方式

非プリエンプティブモードとも呼ばれ、プロセスのみがプロセッサをアクティブに放棄できます。実行中のプロセス中に緊急のタスクが到着した場合でも、現在のプロセスは、プロセスが終了するか、アクティブに入力を要求するまで、プロセッサを使用し続けます。ブロッキング状態

(2)スケジューリング方法の剥奪

プリエンプションモードとも呼ばれ、プロセスがプロセッサで実行されているときに、プロセッサを使用する必要があるより緊急のプロセスがある場合、実行中のプロセスはすぐに中断され、プロセッサはより緊急のプロセスに割り当てられます。

3.プロセスの切り替え

(1)プロセス切り替えとは、あるプロセスがプロセッサを放棄し、別のプロセスがプロセッサを占有するプロセスを指します。

(2)プロセス切り替えのプロセスが完了しました
①元の実行中のプロセスのさまざまなデータを保存する
②新しいプロセスのさまざまなデータを復元する

注:プロセスの切り替えには代償があります。プロセスを頻繁に切り替えると、システム全体の効率が低下します。

  1. 知識レビュー
    ここに画像の説明を挿入

三、スケジューリングアルゴリズムの評価指標

1.CPU使用率

合計時間に対するCPUビジー時間の比率を指します
使用率=ビジー時間/合計時間

2.システムスループット

単位時間あたりに完了したジョブの数を指します。
システムスループット=合計で完了したジョブの数/合計で費やされた時間

3.ターンアラウンドタイム

ジョブがシステムに送信されてからジョブが完了するまでの時間間隔を指します(時間が短いほど、ユーザーの満足度が高くなります)
ターンアラウンドタイム=ジョブ完了時間-ジョブ送信時間

平均ターンアラウンドタイム=各ジョブのターンオーバー時間の合計/ジョブ数

加重ターンアラウンドタイム=ジョブターンアラウンドタイム(完了時間-送信時間)/ジョブの実際の操作時間(> = 1である必要があります)

平均加重ターンアラウンドタイム=各ジョブの加重ターンアラウンドタイムの​​合計/ジョブ数

4.待機時間

ジョブ/プロセスがプロセッサを待機し

いる時間の合計を指します(時間が短いほど、ユーザーの満足度が高くなります)(1)プロセスの場合、待機時間は、処理されるまで待機している時間の合計を指します。プロセスが確立されます

(2)ジョブの場合
、プロセスが確立されてからの待機時間だけなく、外部ストレージのバックアップキューでジョブが待機する時間も含まれます。

5.応答時間

ユーザーがリクエストを送信してから最初の応答までの時間を指します(時間が短いほど、ユーザーの満足度は高くなります)。

  1. 知識レビュー
    ここに画像の説明を挿入

第四に、スケジューリングアルゴリズムの導入

1.先着順(FCFS)

図に示すように、プロセスの到着順序に従ってスケジュールします(現在のプロセスは実行後に次のプロセスを実行し、プリエンプションされません)。
ここに画像の説明を挿入

次のように要約します。
ここに画像の説明を挿入

2.ショートジョブ優先(SJF)

スケジュールするたびに、次
ここに画像の説明を挿入
図に示すように、到着して実行時間が最も短いジョブ/プロセスを選択します(次のプロセスは現在のプロセスの実行後に実行され、プリエンプトされません)
ここに画像の説明を挿入

3.最小残余時間優先(SRTN)

プロセスがレディキューに参加するとき、つまりレディキューが変更されるときはいつでも、スケジュールする必要があります。新しく到着したプロセスの残り時間が現在実行中のプロセスの残り時間よりも短い場合、新しいプロセスはプロセッサをプリエンプトします。 、および現在実行中のプロセスが準備完了キューに戻ります。さらに、プロセスが完了すると、そのプロセスもスケジュールする必要があります(現在のプロセスがプリエンプトされます)

注:最小残余時間優先アルゴリズムは、図に示すように、プリエンプティブショートジョブ優先アルゴリズムです。
ここに画像の説明を挿入

4.最初に高い応答率(HRRN)

現在実行中のプロセスが自発的にCPUを放棄した場合にのみ、スケジューリングが必要です。スケジューリング中に、すべての準備完了プロセスの応答率が計算され、応答率が最も高いプロセッサが選択されます(現在のプロセスは次のプロセスを実行します。現在のプロセスが実行されます。捕捉)

図に示すように、応答率=(​​待機時間+サービスに必要な時間)/サービスに必要な時間:
ここに画像の説明を挿入

次のように要約します。
ここに画像の説明を挿入

5.タイムスライスローテーション(RR)

順番に、準備完了キュー内のプロセスにタイムスライスを順番に実行させます(現在のプロセスがプリエンプトされます)

注:
(1)毎回選択される上位プロセッサのプロセスは、レディキューの先頭に
あるプロセスです(2)プロセスが実行されると、レディキューの最後に移動します。
(3)時間プロセスのスライスが到着し、処理されたばかり機密は準備キューの最後に移動し、新しいプロセスは準備キューに到着します。新しいプロセスは最初に準備キューの最後に到着します。

図に示すように、タイムスライスローテーションアルゴリズムプロセスの詳細な説明(タイムスライスサイズが2であると想定):
ここに画像の説明を挿入

(1) 0时刻,只有P1,P1运行2时间片
(2) 2时刻,P1下处理机(P1剩3),同时P2到达,P2先进入就绪队列(P2 → P1),P2运行2时间片
(3) 4时刻,P2下处理机(P2剩2),同时P3到达,P3比P2先到达就绪队列(P1 → P3 → P2),P1运行2时间片
(4) 5时刻,P4到达,此时的就绪队列(P1 → P3 → P2 → P4)
(5) 6时刻,P1下处理机(P1剩1),P3运行1时间片,此时的就绪队列(P3 → P2 → P4 → P1)
(6) 7时刻,P3下处理机(P3运行结束),P2运行2时间片
(7) 9时刻,P2下处理机(P2运行结束),P4运行2时间片,就绪队列(P4 → P1)
(8) 11时刻,P4下处理机(P4剩4),P1运行1时间片
(9) 12时刻,P1下处理机(P1运行结束),此后一直运行P4,16时刻所有进程结束

注:
(1)タイムスライスが大きすぎて各プロセスを1つのタイムスライスで完了できない場合、このアルゴリズムは先入れ先出しアルゴリズムに縮退するため、タイムスライスを大きくしすぎることはできません
(2)タイムスライスが小さすぎる場合、プロセスの切り替えが頻繁すぎるため、タイムスライスを小さくすることはできません。

次のように要約します。
ここに画像の説明を挿入

6.優先スケジューリング

(1)非プリエンプティブ優先度スケジューリングアルゴリズム
。図に示すように、到着した現在のプロセスと各スケジューリング中に最も高い優先度を選択します(次のプロセスは現在のプロセスの実行後に実行され、プリエンプションされません)。 :
ここに画像の説明を挿入
* P2とP4の優先度は同じで、最初のものが最初に実行されます

(2)プリエンプティブ優先順位スケジューリングアルゴリズム
は、到着し、スケジューリング中に毎回最高の優先順位を持つプロセスを選択します。スケジューリングは、現在のプロセスがプロセッサをアクティブに放棄したときに発生し、プリエンプションは、準備完了キューが変更されたときに発生します(現在のプロセスはプリエンプションになります) )、図に示すように:
ここに画像の説明を挿入
* I / Oタイプのプロセスの優先度を適切に上げる必要があります

次のように要約します。
ここに画像の説明を挿入

7.マルチレベルフィードバックキューのスケジューリング

(1)マルチレベルレディキューを設定し、キューの各レベルの優先度は高から低、タイムスライスは小から大
(2)新しいプロセスが到着すると、第1レベルのキューに入ります。 FCFSの原則に従ってキューに入れられ、割り当てられたタイムスライスを待機します。タイムスライスプロセスが終了しなかった後、プロセスは次のレベルのキューの最後に入ります。この時点ですでに最下位レベルのキューにある場合は、は最下位レベルのキューの最後に戻されます。
(3)Kレベルのキューが空の場合にのみ、K + 1キューの先頭にあるプロセスにタイムスライスが割り当てられます
(4)プリエンプトされたプロセッサは元のキューの最後に戻されます

図に示すように、詳細な実行プロセス:
ここに画像の説明を挿入

P1は1つのタイムスライスで実行され(P1は7のまま)、P1は2番目のレベルのキューに入り、P2は1番目のレベルのキューに到達し、P2は1つのタイムスライスを実行し(P2は残り3つ)、P2は2番目のレベルのキューに入り、1番目のレベルのキュー空の場合、第2レベルのキューのP1を実行し、P1は2つのタイムスライスで実行され(P1には残り5つ)、P1は第3レベルのキューに入り、第2レベルのキューのP2を実行し、P2は1つのタイムスライスで実行されます(P2はプリエンプトされます。 P2は残り2)、P3は第1レベルのキューに到達し、P3を実行し、P3は1つのタイムスライスで実行され(P3は終了)、第2レベルのキューのP2を実行し、P2は2つのタイムスライスを実行し(P2は終了)、P1を実行します。残り時間の終わりまで

次のように要約します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_49343190/article/details/108821537