• ベストアンサー

テスト勉強でわからないこと

オペレーティングシステムという科目の勉強をしています。 勉強をしていてどうしてもわからないことがあります。 計算機システムにおいて、同期や排他制御が問題になる場合とは どのような場合があるんですか? 具体的な例を挙げて説明していただくと とても嬉しいです。 よろしくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

同期を取ったり、排他をする、ということは、誰かを待たせることになります。 せっかく、実行権を獲得しても、「排他されてるから待っててね」といわれると 何もできません。 というわけで、負荷はさして高くないのに、実行速度が遅くなる場合がある ことがひとつ。 また、排他の場合には、深刻なケースがあります。 排他をするときに、処理権を獲得するまで待って処理をするようにした場合、 二つ以上の資源にアクセスするやりかたを間違えると… 時間 │ 処理A      処理B │ 資源1をロック │          資源2をロック │※資源2をロック │         ※資源1をロック │ │ 資源1を解放   資源2を解放 │ 資源2を解放   資源1を解放 処理Aは、処理Bが使っているので「資源2をロック」で待ちに、処理Bは、 処理Aが資源1を使っているので、「資源1をロック」で待ちに入ります。 お互いに待ちに入ってしまうので、永遠に処理A、Bは待ちっぱなしです。 それぞれの処理では、使ったものはきちんと解放しているのですが、組み合わせる とこんな問題を引き起こす(デッドロックと言います)ことがあります。

threelion
質問者

お礼

a-kumaさんご回答ありがとうございます!! とても詳しく解りやすい説明していだたいて 本当に助かりました。 もう一つ質問したいのですが 迷惑でなければご回答よろしくお願いできませんか?

関連するQ&A