0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

デッドロックとなる時点

Last updated at Posted at 2020-09-19

応用情報技術者平成29年春期 午前29

トランザクションAとBが,共通の資源であるテーブルaとbを表に示すように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の①~⑧は処理の実行順序を示す。また,ロックはテーブルの更新直前にテーブル単位で行い,アンロックはトランザクションの終了後に行うものとする。

image.png

1、デッドロックは、
共有資源を使用する2つ以上のプロセスが、互いに相手プロセスの必要とする資源を排他的に使用していて、互いのプロセスが相手が使用している資源の解放を待っている状態に陥ってしまうことをいいます。

つまり、互いに相手プロセスの必要とする資源の解放を待っている 
※○の待ち状態になっているからとのこと

⑤はテーブルbを更新しようとする時に、①~⑧の処理順ので、既に運命でデッドロックになるが、まだ○になっていないです。
⑥は、本当に、Aがテーブルaを取得して、テーブルbを待ち
       Bがテーブルbを取得して、テーブルaを待ち
の○状態があったので、デッドロックになっている状態とは言えます。

image.png

ーーーーーーーーーーーーーーーーーーーーー
二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。

image.png

「資源獲得の順序を両方のタスクで同じにする。」ですね。

参照:
https://www.ap-siken.com/kakomon/29_haru/q29.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?