オペレーティングシステムのマイレビュー - プロセッサスケジューリング

  -最初の二つのブログはプロセス等の状況、PCB、プロセスの同期、通信、スレッド、を含む、オペレーティングシステムのプロセスについて話しているオペレーティングシステムの私のレビュー- (上)のプロセス  、および  (次のプロセス-私のOSのレビュー)ここ、これはプロセッサスケジューリングアルゴリズムのデッドロックを含め、スケジューリングプロセッサを話し始めました。 

まず、プロセッサのスケジューリングタイプ

プロセッサスケジューリングと呼ばれているプロセスに割り当てられたいくつかのアルゴリズムプロセッサによるプロセッサスケジューリングプログラム。全体的に、レベルで割った、3つのタイプがあります。

(1)ジョブスケジューリング(これも高度なスケジューリング、長期スケジューリングとしても知られています)。

  ジョブスケジューリングの性質はプロセス、プロセッサに割り当てて実行を作成するために、外部メモリに記憶し、誰で動作するアルゴリズムに基づいています。二つの概念があります。

  1)ジョブ(ジョブ)

  オペレーティングシステムの概要は、我々は、オペレーティング・システムの開発プロセスについて調べる、単一のバッチシステムとマルチバッチシステムは、操作の概念の大まかな理解していました。ジョブがプログラムよりも広い概念であり、それは、さらに手動操作を含む、ジョブの仕様に応じて、プログラムの動作を制御するプロセッサをプログラムし、複数のデータを含んでいてもよいです。一般的に、バッチシステムは、高度なスケジューリングを持つことになります。

  2)ジョブステップ(ジョブステップ)

  プログラムの本質は、ステップを働くことです。ジョブの実行中、各ステップは、ジョブステップ呼び出すことができます。典型的な操作は3つの営業段階に分けることができます - >ステップ連続組立作業 - ジョブステップの編集>ジョブステップを実行します。私たちのプログラムコードで全体の実行ステップに相当します。

 

(2)プロセススケジューリング(も短いディスパッチ、低レベルのスケジューリングとしても知られています)。

  スケジューリングのプロセスの性質は、アルゴリズムに基づいて、プロセッサは、プロセスに割り当てられました。まず、スケジューリングのプロセスは、プロセッサのシーンを保存します。PCBのようなプログラムカウンタに指定されたレジスタの内容を保存します。プロセスは、その後、プロセッサに割り当てられて処理するアルゴリズムに従ってレディキューから選択されます。最後に、プロセッサに復元処理PCB情報サイト指定処理は、プロセッサは、プロセスの実行に割り当てられます。これは、2個のスケジューリング方法では、追加の三つの基本的な仕組みを見て、プロセススケジューリングする必要があります:

  三つの基本的なメカニズム1)プロセスのスケジューリング

  • Requeuer。特定の方法ですべての準備処理プログラムをスケジュールするためにキューに配置されたが(優先度など)を求めます。
  • ディスパッチャ。後工程レディキュー、プロセッサのコンテキストスイッチ、プロセスの実行に割り当てられたプロセッサから取り出しました。
  • コンテキストスイッチング機構。

  (PS:追加の知識があります:すべてのコンテキストスイッチは、典型的に使用されるシステムのプロセッサ状態のためのレジスタのセット内のレジスタのセットを複数の時間にコンテキスト切り替えを削減する簡単な方法を有することが数ミリ秒を要します。アプリケーションの状態で使用するためのプロセッサのセット。したがって、コンテキストスイッチは、現在のレジスタへのポインタを変更する必要があります。)

  (PSS:CPUにおけるシステムの状態は、CPUがオペレーティングシステムを実行する、ユーザモードはCPU通常のアプリケーションで実行されます。)

  2)2つのスケジューリングプロセススケジューリングモード

  • ノンプリエンプティブ(ノンプリエンプティブモード)。それは自主的に撤回しない限り、プロセスへの割り当てプロセスは、それが永遠に実行されたら、それは意味します。
  • プリエンプティブ(プリエンプティブモード)。これは、実行中のプロセス、他のプロセスに割り当てられたプロセッサを中断し、特定の条件に依存します。セマフォ機構に対応する条件変数。

 

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

  中級本質は、スケジューリングプロセスが一時的に実行することができない作る中断、メモリリソースを解放することで、待機するように、外部メモリまでにそれらを動かしました。外部メモリとは何ですか?外部メモリは、ハードドライブ、ディスクおよびその他のストレージデバイスです。

 

第二に、スケジューリングアルゴリズム

それはスケジューリングアルゴリズムに来るとき、あなたはときに問題を行う必要があります、作業効率の測定プロセスいくつかの用語について知っておく必要があります。

  • サービス時間:時間の長さはプロセスは、総占有プロセッサが必要です。
  • 時間が開始しました:プロセスが開始した時点を。
  • 時間のポイントが終了すると、プロセスの実行を:完了するまでの時間。
  • 所要時間:終了時間 - 到着時間。
  • 加重所要時間:ターンアラウンドタイム/サービス時間。
  • 到着時間:時点プロセスが実行可能待ち行列に入り、

(1)先着順スケジューリングアルゴリズム(FCFS)。

  名前が示すとおり。それは、第1のメモリに最初に来るまたは処理システムを使用しています。ジョブスケジューリングのために、バックアップジョブキューをメモリに転送され、ジョブキューを入力する最初の一つ以上から選択されます。スケジューリングプロセスのためにプロセッサに割り当てられたレディキューから最新のプロセスに入ることを選択することです。

 

(2)短いジョブ(プロセス)スケジューリングアルゴリズムと(SJ(P)F)

  名前が示すとおり。これは、ジョブを選択時やジョブごとに第1の推定値のサービス時間は、もちろん、プロセッサへの最短優先アクセスを選択するプロセスです。

 

(3)優先度の高い優先度スケジューリングアルゴリズム。

  プロパティの追加を処理するために、このようなアルゴリズムは、それが優先されます。このアルゴリズムの性質は、優先度の高い優先コールということです。2種類が、優先順位がある1が静的である、それは、それぞれのプロセスであり、優先度のジョブが、その後変更されません、その作成時に確認されています。そのプロセス別の動的な、優先ジョブを変更することができます。最も一般的な方法は、ジョブは、優先順位は、時間をかけて一定の速度で成長を待っている、プロセスであると呼ばれている可能性も大きく、待ち時間長いので。

 

(4)ラウンドロビンスケジューリング方式のタイムスライスに基づきます。

  これは、システムで使用される時分割スケジューリングアルゴリズムです。原理はまずキューに入れられた務め、最初に来るの原則に従ってすべてのレディキュー・プロセスです。タイムスライスの実装が終了するたびに最初のチームに割り当てられたCPUは、許可され、スケジューラは、処理を中断し、処理は準備にキューの末尾に移動し、その後、最初のチームのプロセスを取る、次の時間を続行します作品。数百ミリ秒にCPU時間の非常に短い範囲、数ミリ秒で何時間スライス。

 

(5)マルチレベルフィードバックキュースケジューリングアルゴリズム。

  これは、認識の良い瞬間、最も広く使用されているスケジューリング・アルゴリズムです。原理は難しいことではありません。例えば、マルチレベルフィードバックキュースケジューリングアルゴリズムを使用してコンピュータが5つのレディキューを提供します。最も優先順位の高い最初のレディキューは、タイムスライスが2msです。第二優先レディキューは、第二のタイムスライスは、残りは順次タイムスライスを増加させる、同じキュー、降順で優先順位である、4MSあります。プロセスが実行可能待ち行列に入った場合は、すべての最初は、それは2msでの実装に実行するプロセスが終了していない場合は、タイムスライスの終わりには、第二準備にプロセスを置くターン最初のレディキューの最後にそれを置きますキューの最後。プロセスの最初のキューが実行時間スライスを完了した場合にのみ、2番目のキューを実行します。プロセスは非常に長いサービス時間であれば実行するためには、それが最後のレディキューに移動されます。最終的なレディキューで、ラウンドロビン・スケジューリング・プロセスは、タイムスライスによる方法を実行します。プロセッサの実行プロセスは、優先度の高いキュースレッドが実行された場合にのみ、優先度の低いキューを実行します。示されているように(再び自分自身を描いて、ブックから直接引き継ぐ気にしないでください):

 

第三に、デッドロック

デッドロックとは何ですか?これは、デッドロックにリソースの競合のための一つの結果を複数のプロセスを実行するプロセスです。

(1)、デッドロックの必要な原因を生成します。

  1)相互に排他的な条件。その期間、リソースは、唯一のプロセスによって占有することができます。この間、他のプロセスは待つことができます。

  2)要求と保持条件。プロセスは、少なくとも1つのリソースのために維持しますが、新しいリソース要求を提案されている、リソースがすでに他のプロセスによって占有されてきた、この時間は、要求プロセスブロックされたが、彼らはホールドを保つために利用可能な他のリソースのため。

      3)の条件を奪われていません。使用されていない前に、リソースのプロセスは、取得した、それは拒否することはできません

  4)ループ待ち状態。

 

  

 参考:「コンピュータのオペレーティングシステム(唐子嬰)」

ます。https://www.cnblogs.com/zrtqsk/p/4192091.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_33802505/article/details/93248559