- ベストアンサー
どうやって記述して答えればよいのか分からないので教えてください。よろし
どうやって記述して答えればよいのか分からないので教えてください。よろしくお願いします。 問題 以下の処理を行うトランザクションT1、T2、T3がある。 T1:データベース中の項目Aの値に1を加える。 T2:データベース中の項目Aの値を2倍にする。 T3:データベース中の項目Aに1をセットする。 T1、T2、T3を並行に実行するとする。項目Aが初期値0を持っているとすると、 これらの3つのトランザクションが終了したときに項目Aが取りうる可能性のあ る正しい値はどのくらいあるか、列挙せよ。 どうかお願いします((+_+))
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
T1,T2,T3を順列並び替えをして、並び替えた場合にAが幾つになるか地道に計算すれば解けるのでは? 並び替えは3!=6通りありますので、一つ一つ書いてもそんなに手間にはならないでしょう。 まぁ、出題者にわかればいいと思うので解答例はこんな感じでしょうか。 解答例 T1,T2,T3を並行に実行した場合にとりうるパターンは次の6通りある。 1) T1->T2->T3の場合 T1の処理後: A=0+1=1 T2の処理後: A=1*2=2 T3の処理後: A=1 よって、A=1。 2) T1->T3->T2の場合 ...(略)... 1)から6)より、 Aのとりうる可能性のある正しい値は、1,..(略)..。 以上。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10359)
回答No.2
どのあたりがわからないのでしょう?
質問者
お礼
忙しいところすみませんでしたm(__)m 並列実行というのがどういう意味か先ほどまでは 分かっていなかったです。並列的に処理するので どのトランザクションの並びでもいいのですね。 遅くなりましたが、ありがとうございました。
お礼
僕しか困っていない簡単な質問に丁寧に答えていただいて本当にありがとうござました。 そして丁寧に記述していただき感謝しています。