オペレーティングシステムの実験3(プロセススケジューリングの優先度とタイムスライス)

A目的

  プロセス実行の並行性を理解する

    プロセスのさまざまな状態とその遷移を理解する 

   プロセス管理における PCB の構造を理解する

         優先番号プロセススケジューリングアルゴリズムを習得する

二つ実験内容

   VC 実現プロセススケジューリングシミュレーションプロセスのスケジューリングを達成するために用意しました。スケジューリングアルゴリズムは、動的優先順位番号とタイムスライスを組み合わせるアルゴリズムを使用します。要件は次のとおりです。

  • プロセス識別子やプロセス時間などのプロセス関連情報は PCBに入れられます。
  • 実行中、完了、準備完了の3つのプロセスキューを設計します。
  • レディキューは優先度の降順で配置され、優先度が最も高いレディプロセスが実行するように選択されるたびに実行されます。初期優先順位番号は、より大きな番号( 30 など)からプロセス実行時間を引いた値に設定され、優先順位番号はプロセスの実行に合わせて調整されます。
  • プロセスが実行されるたびに、優先順位番号は固定値( 3 などだけ減少しCPU 時間は1 ずつ増加し、プロセスに必要な時間は1 ずつ減少します。プロセスに必要な時間が0 なると、プロセスが完了し、そのステータスが「F」に設定されます、そのPCB を完了キューに挿入し、準備キューが空でない場合は、準備キューの最初のPCBを実行状態に変更します。プロセスが完了していない場合は、その優先順位番号をレディーキューの最初のPCB 優先順位番号と比較します。小さい場合は、レディー状態に変更し、レディーキューの適切な位置に挿入して、レディーキュー最初のPCB 変更します。実行されています。準備完了キューが空になり、すべてのプロセスが完了するまで、上記のプロセスを繰り返します。

    関連するデータ構造:

          typedef構造ノード{ 

                 char name [10]; // プロセス識別子

                 int prio; // プロセスの優先度

                 int cput; // プロセスが占有するCPU 時間

                 int needt; // プロセスが完了する前に必要なCPU 時間

                char state; // プロセス状態構造ノード*次;

        } PCB;

 

3.実験コード

     実験2のコードを参照して、アルゴリズムコードを完成させます。

要件:

   アルゴリズム実装のフローチャートを書く

   問題に必要な機能を実現するためのプログラミング

   複数のデータセットをテストするための実験結果

  

おすすめ

転載: www.cnblogs.com/byczyz/p/12755507.html