この記事は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時代において、チップがアルゴリズムの進化に追いつけない場合、私たちはどうすればよいのでしょうか?
>>: 一般的な基本的なソートアルゴリズムを今回から理解しましょう
厳選されラベル付けされたデータ セットを使用して AI システムをトレーニングすると、オブジェクト認...
[51CTO.com からのオリジナル記事] 現在、機械学習テクノロジーをめぐっては多くの誇大宣伝が...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を...
[51CTO.comより引用] Alimamaは、誰もが簡単にマーケティングを行えるようにすることを...
COVID-19の時代において、ロボット工学とテクノロジーは協力して伝染性ウイルスの拡散を防いでい...
[[429196]] 2021年10月1日にarXivにアップロードされた論文「強化学習を使用した不...
2020年8月20日から22日まで、北京で「人工知能と未来の教育」に重点を置いた、待望の「2020年...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
[[392088]]画像ソース: https://pixabay.com/images/id-329...
[[432741]]小学生の頃、「暗算日常練習」の文章題に戸惑ったトラウマをまだ覚えていますか?ぜひ...
人工知能(AI)は、私たちの生活のほぼすべての側面において一般的な要素になりつつあります。これまで、...