- ベストアンサー
テスト勉強でわからないこと
オペレーティングシステムという科目の勉強をしています。 勉強をしていてどうしてもわからないことがあります。 計算機システムにおいて、同期や排他制御が問題になる場合とは どのような場合があるんですか? 具体的な例を挙げて説明していただくと とても嬉しいです。 よろしくお願いします!
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
同期を取ったり、排他をする、ということは、誰かを待たせることになります。 せっかく、実行権を獲得しても、「排他されてるから待っててね」といわれると 何もできません。 というわけで、負荷はさして高くないのに、実行速度が遅くなる場合がある ことがひとつ。 また、排他の場合には、深刻なケースがあります。 排他をするときに、処理権を獲得するまで待って処理をするようにした場合、 二つ以上の資源にアクセスするやりかたを間違えると… 時間 │ 処理A 処理B │ 資源1をロック │ 資源2をロック │※資源2をロック │ ※資源1をロック │ │ 資源1を解放 資源2を解放 │ 資源2を解放 資源1を解放 処理Aは、処理Bが使っているので「資源2をロック」で待ちに、処理Bは、 処理Aが資源1を使っているので、「資源1をロック」で待ちに入ります。 お互いに待ちに入ってしまうので、永遠に処理A、Bは待ちっぱなしです。 それぞれの処理では、使ったものはきちんと解放しているのですが、組み合わせる とこんな問題を引き起こす(デッドロックと言います)ことがあります。
お礼
a-kumaさんご回答ありがとうございます!! とても詳しく解りやすい説明していだたいて 本当に助かりました。 もう一つ質問したいのですが 迷惑でなければご回答よろしくお願いできませんか?