1.下面哪个调度会出现死锁: 答案A
A.T1:R(X),T2:W(X),T2:W(Y),T3:W(Y),T1:W(Y),T1:Commit, T2:Commit, T3:Commit
B T1:R(X),T2:W(Y),T2:W(X),T3:W(Y),T1:W(Y), T1:Commit, T2:Commit, T3:Commit
C T1:R(A),T2:W(B),T1:R(A),T3:R(C),T2:W(C),T4:W(A),T3:W(B)
D.T1:R(A),T2:W(B),T3:W(C),T1: Commit,T2:W(A), T2:Commit,T3:W(B), T3:Commit疑问
-A中T1:R(X),T2:W(X),T2会等待而不执行T2:W(Y),所以不会死锁吧?为何死锁?
-B中T1:R(X),T2:W(Y),T2:W(X),T3:W(Y),T1:W(Y), 明显的死锁,为何不死锁?
-C中疑问同B
谁能解释一下?2.下面哪个调度是冲突可串行的调度 ABD
A. T1:R(X),T1:R(Y),T1:W(X),T2:R(Y),T3:W(Y),T1:W(X),T2:R(Y)
B. T1:R(X),T2:R(Y),T3:W(X),T2(R(X),T1:R(X)
C. T1:R(X),T2:R(X),T1:W(X),T2:W(X)
D. T1:W(X),T2:R(Y),T1:R(Y),T2:R(X)疑问
-A中T2:R(Y),T3:W(Y),T2:R(Y)难道不是环路吗?为何还可串行?
-B中疑问同A
明天考试,各位大大帮帮忙啊...

解决方案 »

  1.   

    我看了下  第一题应该是哪个不会导致死锁才对 呵呵 ,因为B,C,D分析一下都会产生死锁
      

  2.   

    D.T1:R(A),T2:W(B),T3:W(C),T1: Commit,T2:W(A), T2:Commit,T3:W(B), T3:Commit
    看顺序:
    R(A)-等待B---等待C---提交T1---等待A这个好像死锁了R(A)是不是开始一个事务的意思?
      

  3.   


    第一道题的T2:W(X),T2:W(Y),T2等待X锁的同时,也锁Y?
    第二道题A中T2:R(Y),T3:W(Y),T2:R(Y),这个不是回路?
      

  4.   


    "第一道题的T2:W(X),T2:W(Y),T2等待X锁的同时,也锁Y?", T2等待X锁,不锁Y,锁Y的是后面的T3:W(Y)第二题,其中的T2只有读,没有写;T1只写X,T3只写Y
      

  5.   


    第一题T3:W(Y),T1:W(Y),T1:Commit,  T3:Commit这个,只要T3不提交,就不放锁吗 ?
    第二题T2:R(Y),T3:W(Y),T2:R(Y),第一个T2:R(Y)与T3:W(Y)不能交换顺序变成串行调度吧?两次读结果不一样啊。。
      

  6.   


    1.可是不对啊,T3不会因为T1在等待而不提交...
    2.初值Y=1,T2:R(Y)读出Y=1,T3:W(Y)写Y=2,T2:R(Y)读出Y=2...