この記事はWeChatの公開アカウント「Flying Veal」から転載したもので、著者はFeitian Vealです。記事を転載する場合は飛天牛肉公式アカウントまでご連絡ください。 記事の写真の多くは、私が大学院入試の準備をしていたときに受講したオンラインコースのものです。Bilibiliで今でも見つけることができるはずです。王道大学院入試が制作したオペレーティングシステムシリーズは、試験に適していますが、知識のポイントが詳細に説明されすぎていて、細部までカバーされているため、春と秋の採用には適していません。いくつかの章を選んで読むことができます。全文のマインドマップは以下のとおりです。 1. スケジュールの概念 CPU に実行すべきタスクが多数ある場合、リソースが限られているため、同時にすべてを実行することはできません。これには、これらのタスクが処理される順序を決定するためのいくつかのルールを確立する必要があり、これが「スケジューリング」によって研究される問題です。次に説明するプロセス スケジューリングの他に、ジョブ スケジューリング、メモリ スケジューリングなどがあります。 プロセスの 3 つの状態モデルを確認しましょう。
いわゆるプロセススケジューリングとは、プロセスの同時実行を実現するために、「一定のアルゴリズムに従ってプロセスの準備完了キュー(ブロッキング)からプロセスを選択し、それに CPU を割り当てて実行させる」ことです。これはオペレーティング システムにおける最も基本的な (最下位レベルの) スケジューリング タイプであり、一般的なオペレーティング システムではプロセス スケジューリングを構成する必要があります。プロセスのスケジューリング頻度は非常に高く、通常は数十ミリ秒ごとに 1 回です。 2. 非プリエンプティブプロセススケジューリングアルゴリズム いわゆる非プリエンプティブとは、プロセスの実行中は、プロセスが完了するかイベントによってブロックされるまで実行が継続され、その後 CPU が他のプロセスに渡されることを意味します。 同様に、プリエンプティブとは、プロセスの実行中にそのプロセスを中断して、CPU を他のプロセスに渡すことができることを意味します。 ①先着順FCFS 先着順 (FCFS) スケジューリング アルゴリズム: プロセスが到着した順にスケジュールします。つまり、「最初に到着したプロセスが最初にスケジュールされます」。つまり、待機時間が長いほど、優先度が高くなります。 利点: 公平性、シンプルなアルゴリズムの実装 デメリット: 短いプロセスには適していません。長いプロセスの後ろにある短いプロセスは、長時間待機する必要があります。短いプロセスの応答時間が長すぎると、ユーザーのインタラクション エクスペリエンスが低下します。 ②最短ジョブファーストSJF 最短ジョブ優先 (SJF) スケジューリング アルゴリズム: 「スケジューリングのたびに、到着したプロセスのうち実行時間が最も短いプロセスを選択します。」 最短ジョブ優先アルゴリズムは、先着順の正反対です。先着順は短いプロセスには不利ですが、最短ジョブ優先アルゴリズムは長いプロセスには不利です。なぜなら、短いプロセスが続くと、長いプロセスはスケジュールされず、長いプロセスは短いジョブが完了するのを待って飢え死にしてしまう可能性があるからです。 ③高応答率優先HRRN 最高応答率次 (HRRN): スケジューリングは、現在実行中のプロセスが CPU を積極的に放棄する (正常/異常完了、またはアクティブ ブロッキング) 場合にのみ必要です。「スケジューリング中、準備完了したすべてのプロセスの応答率が計算され、応答率が最も高いプロセスに CPU が割り当てられます。」応答率 = (プロセス待機時間 + プロセス必要実行時間) / プロセス必要実行時間 3. プリエンプティブプロセススケジューリングアルゴリズム プリエンプションとは、プロセスの実行中にそのプロセスを中断し、CPU を他のプロセスに渡すことができることを意味します。一般的に、優先原則には、タイムスライス原則、優先原則、およびショートジョブ優先原則の 3 つがあります。 ①残り時間最短優先SRTN Shortest Remaining Time Next (SRTN) アルゴリズムは、最短ジョブ優先アルゴリズムのプリエンプティブ バージョンです。 「新しいプロセスが到着したら、必要な合計実行時間と現在のプロセスの残りの実行時間を比較します。新しいプロセスに必要な時間が短い場合は、現在のプロセスを一時停止して新しいプロセスを実行します。そうでない場合は、新しいプロセスは待機します。」 ② ラウンドロビンスケジューリングアルゴリズム RR ラウンド ロビン (RR) は、タイム スライス スケジューリング アルゴリズムとも呼ばれます。スケジューラは、通常 10 ミリ秒から 200 ミリ秒のタイム スライスと呼ばれる指定された時間間隔を使用して、毎回、準備完了キューの最初のプロセスに CPU を割り当てます。「準備完了キュー内の各プロセスは、順番にタイム スライスの間実行されます。タイム スライスが使い果たされると、現在実行中のプロセスは CPU リソースを放棄し、準備完了キューの最後に移動して、次のスケジュール ラウンドを待機する必要があります。」したがって、プロセスを完了するには通常、複数回の回転が必要です。 ラウンドロビン スケジューリング アルゴリズムは、各プロセスを平等に扱います。つまり、全員が 1 つずつ並んで、各人がしばらく実行してから、再びキューに入って実行を待機するのと同じです。 タイムスライスの長さは重要な要素であることに注意してください。
4. 最高優先度スケジューリングアルゴリズム HPF RR スケジューリング アルゴリズムは、すべてのプロセスに対して同じ戦略を使用します。ユーザー プロセスが多すぎると、カーネルのサービス プロセスが応答に対応できなくなる可能性があります。オペレーティングシステムでは、カーネルプロセスはユーザープロセスよりもはるかに重要であり、システム全体の安定性に関係しています。 最高優先度のスケジューリング アルゴリズム (最高優先度優先、HPF) は、「実行準備完了キューから最高優先度のプロセスを選択する」というものです。プロセスの優先度はどのように決定されるのでしょうか? 静的優先度と動的優先度に分けられます。
さらに、最も優先度の高いアルゴリズムは、固定されたプリエンプティブ戦略または非プリエンプティブ戦略ではないことに注意することが重要です。「システムは、どの戦略を使用するかを事前に決定できます。」
|
<<: ソフトウェアがハードウェアを飲み込むAI時代において、チップがアルゴリズムの進化に追いつけない場合、私たちはどうすればよいのでしょうか?
>>: 一般的な基本的なソートアルゴリズムを今回から理解しましょう
著者: ユン・チャオ[51CTO.com からのオリジナル記事]人工知能ソリューションの応用が進むに...
近年、ディープラーニングは音声、画像、自然言語処理などの分野で非常に優れた成果を上げており、当然なが...
2022年、学者たちは人工知能の将来の発展をどのように見ているのでしょうか?将来、AI はモデル駆...
世界がコロナウイルス危機の影響に取り組む中、業界団体は競合するネットワーク リソース、高まるユーザー...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
COVID-19パンデミックは、パンデミック中でも企業や人々の生活が通常通り継続できるようにデジタル...
[[320870]]迅速な感染検査から3Dプリントソリューションまで、世界中のテクノロジー企業が協力...
近年、飛行制御、ナビゲーション、通信などの技術が継続的に進歩し、私たちの生産や生活におけるドローンの...
この小さなロボットはエネルギーに溢れています。体は昆虫ほどの大きさですが、自分の体重の22倍の重さの...