応用情報技術者令和2年秋期 午前問17の質問です.
広告
お腹ペコペコさん
(No.1)
応用情報技術者令和2年秋期 午前問17のデッドロックに関する質問があります.
以下は質問に該当するURLです.
URL:https://www.ap-siken.com/kakomon/02_aki/q17.html
<質問内容>
質問は大きく分けて2つあります.
1. デッドロックは下記の意味で合っていますでしょうか?
①Xさんが資源xにアクセスし,Yさんが資源yにアクセス.
➁アクセス後,Yさんが資源xにアクセスし,Xさんが資源yにアクセスするが,X,Yさんが各資源のアクセス許可のロックを解除していないため,お互いがアクセスできない
➂ ➁のアクセスできない状態が永遠に続き,デッドロックになる.
2. どうして,CとDはデッドロックになるのでしょうか?
できれば,図などで説明して頂けると助かります.
お手数をおかけしますが,ご教授宜しくお願い致します.
以下は質問に該当するURLです.
URL:https://www.ap-siken.com/kakomon/02_aki/q17.html
<質問内容>
質問は大きく分けて2つあります.
1. デッドロックは下記の意味で合っていますでしょうか?
①Xさんが資源xにアクセスし,Yさんが資源yにアクセス.
➁アクセス後,Yさんが資源xにアクセスし,Xさんが資源yにアクセスするが,X,Yさんが各資源のアクセス許可のロックを解除していないため,お互いがアクセスできない
➂ ➁のアクセスできない状態が永遠に続き,デッドロックになる.
2. どうして,CとDはデッドロックになるのでしょうか?
できれば,図などで説明して頂けると助かります.
お手数をおかけしますが,ご教授宜しくお願い致します.
2022.07.20 14:02
お腹ペコペコさん
(No.2)
文字化けしている箇所があるので,もう一度送り直しました.
応用情報技術者令和2年秋期 午前問17のデッドロックに関する質問があります.
以下は質問に該当するURLです.
URL:https://www.ap-siken.com/kakomon/02_aki/q17.html
<質問内容>
質問は大きく分けて2つあります.
1. デッドロックは下記の意味で合っていますでしょうか?
処理実行はaからcへと実行します.
a. Xさんが資源xにアクセスし,Yさんが資源yにアクセス.
b. アクセス後,Yさんが資源xにアクセスし,Xさんが資源yにアクセスするが,X,Yさんが各資源のア
クセス許可のロックを解除していないため,お互いがアクセスできない
c. 処理bのアクセスできない状態が永遠に続き,デッドロックになる.
2. どうして,CとDはデッドロックになるのでしょうか?
できれば,図などで説明して頂けると助かります.
お手数をおかけしますが,ご教授宜しくお願い致します.
応用情報技術者令和2年秋期 午前問17のデッドロックに関する質問があります.
以下は質問に該当するURLです.
URL:https://www.ap-siken.com/kakomon/02_aki/q17.html
<質問内容>
質問は大きく分けて2つあります.
1. デッドロックは下記の意味で合っていますでしょうか?
処理実行はaからcへと実行します.
a. Xさんが資源xにアクセスし,Yさんが資源yにアクセス.
b. アクセス後,Yさんが資源xにアクセスし,Xさんが資源yにアクセスするが,X,Yさんが各資源のア
クセス許可のロックを解除していないため,お互いがアクセスできない
c. 処理bのアクセスできない状態が永遠に続き,デッドロックになる.
2. どうして,CとDはデッドロックになるのでしょうか?
できれば,図などで説明して頂けると助かります.
お手数をおかけしますが,ご教授宜しくお願い致します.
2022.07.20 14:05
boyonboyonさん
★AP シルバーマイスター
(No.3)
プロセスA Xを占有→Yを占有→Zを占有 プロセス終了→X,Y,Zを解放
プロセスC Zを占有→Xを占有→Yを占有 プロセス終了→X,Y,Zを解放
という処理なので、プロセスAとプロセスCは、同時に開始できます。(並行して)
始めに、プロセスAはXを、プロセスCはZを占有します。
プロセスAは、X、Yを占有した後、Zを占有したいので、Zが解放されるのを待ちます。(プロセスCで占有中)
プロセスCは、Zの次にXを占有したいので、Xが解放されるのを待ちます。(プロセスAで占有中)
どちらも相手の解放待ちなので次に進めません。→デッドロック
プロセスAとDの場合も同じようなことになります。
AとBは、並行して開始することができないのでデッドロックは発生しません。
プロセスC Zを占有→Xを占有→Yを占有 プロセス終了→X,Y,Zを解放
という処理なので、プロセスAとプロセスCは、同時に開始できます。(並行して)
始めに、プロセスAはXを、プロセスCはZを占有します。
プロセスAは、X、Yを占有した後、Zを占有したいので、Zが解放されるのを待ちます。(プロセスCで占有中)
プロセスCは、Zの次にXを占有したいので、Xが解放されるのを待ちます。(プロセスAで占有中)
どちらも相手の解放待ちなので次に進めません。→デッドロック
プロセスAとDの場合も同じようなことになります。
AとBは、並行して開始することができないのでデッドロックは発生しません。
2022.07.20 15:37
お腹ペコペコさん
(No.4)
boyonboyonさん
ご教授ありがとうございます.
理解できました.
三つの資源を一括して解放するを理解できていませんでした.
資源にアクセスしたらその都度ロックをし,三つの資源を一括してロック解除するということなのです
ね...
ご教授ありがとうございます.
理解できました.
三つの資源を一括して解放するを理解できていませんでした.
資源にアクセスしたらその都度ロックをし,三つの資源を一括してロック解除するということなのです
ね...
2022.07.20 16:05
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。