オペレーティングシステム第5章宿題

複数の選択肢

1.重要なリソースと重要な地域に関する次の説明のうち正しいものはどれですか()?

A.クリティカルリソースとは、複数のプロセスで同時に使用できるリソースを指し、クリティカルセクションとは、クリティカルリソースにアクセスするプログラムを指します。
B.クリティカルリソースとは、一度に1つのプロセスでのみ使用が許可されているリソースを指し、クリティカルセクションとは、クリティカルリソースにアクセスするプログラムを指します。
C.重要なリソースは共有に使用されるリソースを指し、重要なセクションは共有領域を
指しますD.重要なリソースは共有不可能なリソースを指し、重要なセクションは共有不可能なリソースを指します

2. PおよびV操作に関する次の説明のうち間違っているものはどれですか()?

A. Sがリソースの数に対応する場合、S> 0は使用可能なリソースがあることを意味し、S = 0は使用可能なリソースがない
ことを意味します。B。Pはリソースの申請を意味し、Vはリソースの解放を意味します
C. Sがリソースの数に対応する場合、S <0の場合、V(S)操作によりエラーが発生し、プログラムが終了します。
D. Sがリソースの数に対応する場合、S <0の場合、Sの絶対値はリソースを待機しているプロセスの数を表します。

(Book P154)
ここに写真の説明を挿入
Sはセマフォです。V操作を行う場合、セマフォの値が0以下の場合、セマフォを待機しているプロセスを解除する必要があります。
P操作とV操作はアトミック操作のペアです。P操作の機能は、リソースに適用することです。つまり、リソースの数から1を引いてから、リソースの数が0未満かどうかを判断します。0未満の場合、現在のリソースリストで自己ブロックします。
V操作の機能は、リソースを返し、要求されたリソースの数に1を加算して、リソースの数が0以下かどうかを判別することです。0以下の場合、プロセスは現在のリソースでブロックされ、現在のリソースリストでプロセスをウェイクアップします。

複数の選択肢

3. [複数選択]基本的な通信方法に関する次の説明のうち正しいものはどれですか()?

A.低レベルの通信は、通常、プロセスの実行速度を制御する効果(PV操作など)を実現するために、1バイトまたは数バイトの情報のみを送信します。
B.共有メモリは通常、メモリ内の共有ストレージ領域としてスペースの一部を割り当てます。通信が必要なプロセスは、それを独自のアドレススペースに接続し、不要な場合はキャンセルします。
C.高レベルの通信では、大量のデータを送信する必要があります。目的は、プロセスの実行速度を制御することではなく、情報を交換することです。
D.メッセージの受け渡しは、メッセージ単位でプロセス間でデータを交換することです。
E.多くの高レベルのプロセス通信方法があり、共有メモリ、パイプラインファイル、メッセージパッシングの3つのカテゴリに大まかに分類できます。
F.パイプラインファイルは、2つのコマンドを接続する開いたファイルです。1つのコマンドはライターであるファイルにデータを書き込み、もう1つのコマンドはリーダーであるファイルからデータを読み取ります。
G.プロセス通信は、交換される情報の量に応じて、高レベルの通信と低レベルの通信に分けられます。

主観的な質問

4.対応するプログラムを作成して、以下に示す先行グラフを記述します。
ここに写真の説明を挿入

7つの同期信号量f2、f3、f4、f5、f6、f7、およびf8がそれぞれ、プロセスS2、S3、S4、S5、S6、S7、およびS8が実行を開始できるかどうかを示し、それらの初期値がすべて0であるとします。

セマフォf2 = f3 = f4 = f5 = f6 = f7 = f8 = 0;

メイン(){ 

  cobegin

  S1();

  S2();

  S3();

  S4();

  S5();

  S6();

  S7();

  S8();

  coend  

}

これらの8つのプロセスのステートメント形式は次のとおりです。
ここに写真の説明を挿入

ナレッジサプリメント(ブックP155):
ここに写真の説明を挿入

5.ペットショップには、1つのペットダイニング場所と10のペット待機場所があります。顧客が毎回1匹のペットだけを店に持ち込むと仮定します。待合スペースがあれば、店舗のお客様は、ナンバーピッキングマシンから番号をピックアップしてサービスを待つことができます。ナンバーピッキングマシンでは、一度に1人のお客様しか使用できません。ペットのダイニングスペースが空いている場合、ウェイターは番号に電話して顧客を選択し、ペットを食事に連れて行くことを許可します。

ウェイターと顧客の活動プロセスは次のとおりです。

cobegin
{
  process顾客i
  {
    从取号机获得一个号码;

    等待叫号;

    进入宠物用餐位;
  }

  process服务员
  {
    while(TRUE)
    {
      叫号;
      
      带顾客去宠物用餐位;
    }
  }
}coend

上記のプロセスの相互排除と同期を実現するために、必要なセマフォとPおよびV操作を追加してください。

完全なプロセスを記述し、セマフォの目的(意味)を説明し、初期値を割り当てる必要があります。

semaphore mutex=1; //互斥使用取号机

semaphore empty=10; //空闲等待位的数量

semaphore full=0; //已占等待位的数量

semaphore service=0; //等待叫号

cobegin

{

  process顾客i

  {

    P(empty);

    P(mutex);

    从取号机获得一个号;

    V(mutex);

    V(full);

    P(service); //等待叫号

    进入宠物用餐位;

  }



  process服务员

  {

    while(TRUE)

    {

      P(full);

      V(empty);

      带顾客去宠物用餐位;

      V(service); //叫号

    }

  }

}coend

知識補足(P156):
ここに写真の説明を挿入
ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/Jessieeeeeee/article/details/109019376