• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 297,  comments - 15,  trackbacks - 0
            一、活鎖 
            如果事務T1封鎖了數據R,事務T2又請求封鎖R,于是T2等待。T3也請求封鎖R,
            當T1釋放了R上的封鎖之后系統首先批準了T3的請求,T2仍然等待。然后T4又
            請求封鎖R,當T3釋放了R上的封鎖之后系統又批準了T4的請求,...,T2有可
            能永遠等待,這就是活鎖的情形,避免活鎖的簡單方法是采用先來先服務的策略。
            二、死鎖 
            如果事務T1封鎖了數據R1,T2封鎖了數據R2,然后T1又請求封鎖R2,因T2已
            封鎖了R2,于是T1等待T2釋放R2上的鎖。接著T2又申請封鎖R1,因T1已封鎖了R1,
            T2也只能等待T1釋放R1上的鎖。這樣就出現了T1在等待T2,而T2又在等待T1的局面,
            T1和T2兩個事務永遠不能結束,形成死鎖。 
            1. 死鎖的預防
            在數據庫中,產生死鎖的原因是兩個或多個事務都已封鎖了一些數據對象,然后又都
            請求對已為其他事務封鎖的數據對象加鎖,從而出現死等待。防止死鎖的發生其實就
            是要破壞產生死鎖的條件。預防死鎖通常有兩種方法: 
            ① 一次封鎖法  
            一次封鎖法要求每個事務必須一次將所有要使用的數據全部加鎖,否則就不能繼續執行。
            
            一次封鎖法雖然可以有效地防止死鎖的發生,但也存在問題,一次就將以后要用到的全
            部數據加鎖,勢必擴大了封鎖的范圍,從而降低了系統的并發度。
            ② 順序封鎖法 
            順序封鎖法是預先對數據對象規定一個封鎖順序,所有事務都按這個順序實行封鎖。
            
            順序封鎖法可以有效地防止死鎖,但也同樣存在問題。事務的封鎖請求可以隨著事務的
            執行而動態地決定,很難事先確定每一個事務要封鎖哪些對象,因此也就很難按規定的
            順序去施加封鎖。
             
            可見,在操作系統中廣為采用的預防死鎖的策略并不很適合數據庫的特點,因此DBMS在
            解決死鎖的問題上普遍采用的是診斷并解除死鎖的方法。
            
             2. 死鎖的診斷與解除
             
            ① 超時法
            
             如果一個事務的等待時間超過了規定的時限,就認為發生了死鎖。超時法實現簡單,但
            其不足也很明顯。一是有可能誤判死鎖,事務因為其他原因使等待時間超過時限,系統會
            誤認為發生了死鎖。二是時限若設置得太長,死鎖發生后不能及時發現。
             
            ② 等待圖法
             
            事務等待圖是一個有向圖G=(T,U)。 T為結點的集合,每個結點表示正運行的事務;U為
            邊的集合,每條邊表示事務等待的情況。若T1等待T2,則T1、T2之間劃一條有向邊,從T1
            指向T2。事務等待圖動態地反映了所有事務的等待情況。并發控制子系統周期性地(比如
            每隔1分鐘)檢測事務等待圖,如果發現圖中存在回路,則表示系統中出現了死鎖。
             
            DBMS的并發控制子系統一旦檢測到系統中存在死鎖,就要設法解除。通常采用的方法是選擇
            一個處理死鎖代價最小的事務,將其撤消,釋放此事務持有的所有的鎖,使其它事務得以繼續
            運行下去。當然,對撤消的事務所執行的數據修改操作必須加以恢復。
            posted on 2012-06-08 17:15 chatler 閱讀(1073) 評論(0)  編輯 收藏 引用 所屬分類: OS
            <2010年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(10)

            隨筆分類(307)

            隨筆檔案(297)

            algorithm

            Books_Free_Online

            C++

            database

            Linux

            Linux shell

            linux socket

            misce

            • cloudward
            • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

            network

            OSS

            • Google Android
            • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
            • os161 file list

            overall

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            无码人妻久久一区二区三区免费丨| 精品国产热久久久福利| 久久91精品国产91久久麻豆| 亚洲精品国产第一综合99久久| 国产一久久香蕉国产线看观看| 久久久久亚洲精品天堂| 久久er国产精品免费观看2| 精品熟女少妇aⅴ免费久久| 久久人人爽人人精品视频| 99精品国产综合久久久久五月天| 无码精品久久久久久人妻中字| 亚洲国产精品久久久久婷婷软件 | 国产精品美女久久久m| 国产精品无码久久四虎| 久久亚洲私人国产精品| 无码任你躁久久久久久老妇| av无码久久久久久不卡网站| 亚洲国产成人精品无码久久久久久综合 | 国内精品久久久人妻中文字幕| 国产精品熟女福利久久AV| 久久天天躁狠狠躁夜夜96流白浆 | 2020久久精品亚洲热综合一本 | 久久久久久精品无码人妻| 国产精品九九久久免费视频| 久久国产精品二国产精品| 无码超乳爆乳中文字幕久久| 午夜久久久久久禁播电影| 四虎久久影院| 亚洲国产精品无码久久久秋霞2| 久久国产乱子精品免费女| 久久九九久精品国产免费直播| 国产ww久久久久久久久久| 无码AV波多野结衣久久| 国产精品热久久无码av| …久久精品99久久香蕉国产| 婷婷久久综合九色综合九七| 精品乱码久久久久久夜夜嗨| 久久国产精品久久| 亚洲AV无码久久寂寞少妇| 精品久久人人妻人人做精品| 一本久久a久久精品综合夜夜|