![并發(fā)控制課后答案_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/203bc61c-fb25-4e44-a847-39654af5c0e3/203bc61c-fb25-4e44-a847-39654af5c0e31.gif)
![并發(fā)控制課后答案_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/203bc61c-fb25-4e44-a847-39654af5c0e3/203bc61c-fb25-4e44-a847-39654af5c0e32.gif)
![并發(fā)控制課后答案_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/203bc61c-fb25-4e44-a847-39654af5c0e3/203bc61c-fb25-4e44-a847-39654af5c0e33.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第八章并發(fā)控制時(shí)間:2021.02.09創(chuàng)作人:歐陽歷習(xí)題解答和解析或修改同一數(shù)據(jù)的情況。若對并發(fā)操作不加控制就可能會 番蠶勲芻澀讓廐船I庫的一致性。所以數(shù)據(jù)論8.1(P266)o(3)讀”臟”數(shù)據(jù)(Dirty Read)讀”臟”數(shù)據(jù)是指事務(wù)T1 修改集一數(shù)據(jù),并將箕寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù) 后,T1由于某種原因被撤銷,這時(shí)T1已修改過的數(shù)據(jù)恢復(fù)原 值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的 數(shù)據(jù)就為”臟”數(shù)據(jù):即不正確的數(shù)據(jù)。避免不一致性的方法和技術(shù)就是并發(fā)控制。最常用的 技術(shù)是封鎖技術(shù)。也可以由其施後術(shù),1列如左分布莪藪據(jù) 庫系統(tǒng)中可以采用時(shí)間戳方法來進(jìn)行并發(fā)控制。3.
2、 3.存么是圭扌鎖?1. 1. 在數(shù)堀庫中為什么要并發(fā)控制?一行。酸漣芻婁鐸爵桃蘭詐暑鋼叮2. 2.并發(fā)操作可能會產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況?答:并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修 改、不可重復(fù)讀和讀”臟”數(shù)據(jù)。(1)丟失修改(Lost Update)兩個(gè)事務(wù)T1和T2讀入同 一數(shù)據(jù)并修改2提交的給果破壞了(覆蓋了)T1提交的結(jié) 果,導(dǎo)致T1的修改被丟失。Q)不可重復(fù)讀(Non -Repeatable Read)不口J重復(fù)讀是 指事另T1讀取數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無法再 現(xiàn)前一次讀取結(jié)果。爪可重復(fù)讀包括三種情況:詳見概答:封鎖就是事務(wù)T在對某個(gè)
3、數(shù)據(jù)對象例如表、記錄 等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù)T 就對該數(shù)據(jù)對彖有了一定的控制,在事務(wù)T釋放它的鎖之前 其他的事務(wù)不能更新此數(shù)據(jù)對象。封鎖是實(shí)現(xiàn)并發(fā)控制的 一個(gè)菲常童宴的技耒。4. 4基本的封盛類型有幾種?試述它們的含義。答:基本的蚩寸鎖類剛有兩種:排它鎖(ExclusiveLocks,簡稱X鎖)和共享鎖(Share Locks,簡稱S鎖)。排它鎖又稱為寫鎖。若事務(wù)T對數(shù)據(jù)對象A加上X鎖, 則只允許T讀取和修改A,其他任何事務(wù)都不能再對A加任 何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務(wù)在 T釋放A上的鎖之前不能再讀取和修改A-共享鎖又稱為讀鎖。若事務(wù)T對數(shù)據(jù)對
4、象A加上S鎖, 則事務(wù)T可以讀A但不能修改A,其他事務(wù)只能再對A加S 鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其 他事務(wù)可以讀A,但在T釋放A上的S鎖之前不能對A做任 何修改。5如何用封鎖機(jī)制保證數(shù)據(jù)的一致性?答:DBMS在對數(shù)據(jù)進(jìn)行讀、寫操作之前首先對該數(shù)據(jù) 執(zhí)行封鎖操作,例如下圖中事務(wù)T1在對A進(jìn)行修改之前先 對A執(zhí)行XLock(A),即對A加X鎖。這樣,當(dāng)T2請求對A加 X鎖時(shí)就被拒絕,T2只能等待T1釋放A上的鎖后才能獲得 對A的X鎖,這時(shí)它讀到的A是T1更新后的值,再按此新的 A值進(jìn)行運(yùn)算。這樣就不會丟失T1的更新。DBMS按照一定的封鎖協(xié)議,對并發(fā)操作進(jìn)行控制,使得 多個(gè)
5、并發(fā)操作有序地執(zhí)行,就可以避免丟失修改、不可重復(fù) 讀和讀”臟“數(shù)據(jù)等數(shù)據(jù)不一致性。6 什么是封鎖協(xié)議?不同級別的封鎖協(xié)議的主要區(qū)別是什么?答:在運(yùn)用封鎖技術(shù)對數(shù)據(jù)加鎖時(shí),要約定一些規(guī)則。例如準(zhǔn)運(yùn)用X鎖和S鎖對數(shù)據(jù)對象加鎖時(shí),要約定何時(shí)申 請X做或S鎖、何時(shí)釋放封鎖等。這些約定或者規(guī)則稱為 封*鎖協(xié)議(locking Protocol)o對封鎖方式約定不同的規(guī) 貝I 7就形成了各種不同的封鎖協(xié)議、不同級別的封鎖協(xié)議, 例如概論8.3中介紹的三級封鎖協(xié)議,三級協(xié)議的主要 區(qū)別在于什么操作需要申請封鎖,何時(shí)申請封鎖以及何時(shí)釋 放鎖(即持鎖時(shí)間的長題。一級封鎖協(xié)議:事霧T在修改數(shù)據(jù)R之前必須先對其加X
6、鎖,直到事務(wù)結(jié)束才釋放。二奴封鎖協(xié)議:一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R 之前必須先對其加S鎖:讀完后即可釋放S鎖。三級封鎖協(xié)議:一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R 之前必須先對其加S鎖,直到事務(wù)結(jié)束才釋放。7 不同封鎖協(xié)議與系統(tǒng)一致性級別的關(guān)系是什么?答:不同的封鎖協(xié)議對應(yīng)不同的一致性級別。 一級封鎖協(xié)議可防止丟失修改,并保證事務(wù)T是可恢復(fù) 的。在一級封鎖協(xié)議中,對讀數(shù)據(jù)是不加S鎖的,所以它不 能保證可重復(fù)讀和不讀“臟“數(shù)據(jù)。二級封鎖協(xié)議除防止了丟失修改,還可進(jìn)一步防止讀” 臟”數(shù)據(jù)。在二級封鎖協(xié)議中,由于讀完數(shù)據(jù)后立即釋放S 鎖,所以它不能保證可重復(fù)讀。在三級封鎖協(xié)議中,無論是讀數(shù)據(jù)還是寫
7、數(shù)據(jù)都加長 鎖,即都要到事務(wù)結(jié)束才釋放封鎖。所以三級封鎖協(xié)議除防止了丟失修改和不讀”臟”數(shù)據(jù)外,還進(jìn)一步防止了不可重 復(fù)讀。下面的表格清楚地說明了封鎖協(xié)議與系統(tǒng)一致性的關(guān) 系。X鎖S鎖一致性保證操作結(jié) 朿 釋矗事務(wù)結(jié) 束操作結(jié) 朿 釋放事務(wù)結(jié) 朿 釋放不丟失 修改不讀臟 數(shù)拯可重 復(fù)讀一級封鎖協(xié) 議V二級封鎖協(xié) 議VVJ三級封鎖協(xié) 議JVV8 什么是活鎖?什么是死鎖?答:TI T2 T3T4lockRlockR等待lockRUnlock等待lock R等待等待等待等待等待Unlock等待等待lock R等待如果事務(wù)T1封鎖了數(shù)據(jù)R,事務(wù)T2飛又請求封鎖R, 于是T2等彳蘇T3也請求封鎖R,當(dāng)T
8、1醫(yī)放了 R上的封鎖 之后系統(tǒng)首先批準(zhǔn)了 T3的請求,T2仍然啓待。然后T4又請 求封鎖R,當(dāng)T3釋放了 R上的封鎖之后系統(tǒng)又批準(zhǔn)了 T4的 請求平2有可能永遠(yuǎn)等待,這就是活鎖的情形?;铈i的含義 是該等待事務(wù)等待時(shí)間太長,似乎被鎖住了,實(shí)際上可能被如果事務(wù)T1封鎖了數(shù)據(jù)R1,T2封鎖了數(shù)據(jù)R2,然后 T1又請求封鎖R2,因T2已封鎖了 R2,于是T1等待T2釋放 R2上的鎖。接著T2又申請封鎖R1,因T1已封鎖了 R1,T2 也只能等待T1釋放R1上的鎖。這梓就出現(xiàn)了 T1在等待T2, 而T2又在等待T1的局面,T1和T2兩個(gè)事務(wù)永遠(yuǎn)不能結(jié)束, 形成死鎖。T1lock R1T2lock R2.
9、等待等待lock R1等待等待9試述活鎖的產(chǎn)生原扶I和解決方法。lock R2答:活鎖產(chǎn)生的原因:當(dāng)一系列封鎖不能按照其先后 順序執(zhí)行時(shí),就可能導(dǎo)致一些事務(wù)無限期等待某個(gè)封鎖,從 而導(dǎo)致活鎖。避免活鎖的簡單方法是采用先來先服務(wù)的策略。當(dāng)多 個(gè)事務(wù)請求封鎖同一數(shù)據(jù)對彖時(shí),封鎖子系統(tǒng)按請求封鎖的 先后次序?qū)κ聞?wù)排隊(duì),數(shù)據(jù)對象上的鎖一旦釋放就批準(zhǔn)申請 隊(duì)列中第一個(gè)事務(wù)獲得鎖。10 請給岀預(yù)防死鎖的若干方法。答:在數(shù)據(jù)庫中,產(chǎn)生死鎖的原因是兩個(gè)或多個(gè)事務(wù)都 已封鎖了一些數(shù)據(jù)對彖,然后又都請求已被其他事務(wù)封鎖的 數(shù)據(jù)加鎖,從而出現(xiàn)死等待。防止死鎖的發(fā)生其實(shí)就是要破壞產(chǎn)生死鎖的條件。預(yù) 防死鎖通常有兩種方
10、法:(1) 一次封鎖法,要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行;(2)順序封鎖法,預(yù)先對數(shù)據(jù)對象規(guī)定一個(gè)封鎖順序,所 有事芬都按這個(gè)順序?qū)嵭蟹怄i。不過,預(yù)防死鎖的策略不大適合數(shù)據(jù)庫系統(tǒng)的特點(diǎn),具 體原因可參見概論8.4oDBMS并發(fā)控制子系統(tǒng)檢測到死鎖后,就要設(shè)法解除。通 常采用的方法是選擇一個(gè)處理死鎖代價(jià)巖小的事務(wù),將其撤 消,釋放此事務(wù)持有的所有鎖,使其他事務(wù)得以繼續(xù)運(yùn)行下 去。當(dāng)然,對撤銷的事務(wù)所執(zhí)行的數(shù)據(jù)修改操作必須加以恢11請給出檢測死鎖發(fā)生的一種方法,當(dāng)發(fā)生死鎖后如何解 除死鎖?答:數(shù)據(jù)庫系統(tǒng)一般采用允許死鎖發(fā)生,DBMS檢測到死 鎖后加以解除的方法。D
11、BMS中診斷死鎖的方法與操作系統(tǒng) 類似? 一般使用超時(shí)法或事務(wù)等待圖法。超時(shí)法是:如果一個(gè)事務(wù)的等待時(shí)間超過了規(guī)定的時(shí) 限,就認(rèn)為發(fā)生了死鎖。超時(shí)法實(shí)現(xiàn)簡單,但有可能誤判死 鎖,事務(wù)因其他原因長時(shí)間等待超過時(shí)限咄,系統(tǒng)會誤認(rèn)為 發(fā)生了死鎖。若時(shí)限設(shè)置得太長,又不能及時(shí)發(fā)現(xiàn)死鎖發(fā)復(fù)C12:什么樣的并發(fā)調(diào)度是正確的調(diào)度?答:可串行化(Serializable)的調(diào)度是正確的調(diào)度。 可串行化的調(diào)度的定義:多個(gè)事務(wù)的并發(fā)執(zhí)行是正確 的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行執(zhí)行它們時(shí)的結(jié)果相 同,稱這種調(diào)度策略為可串行化的調(diào)度。13設(shè)T1,T2,T3是如下的3個(gè)事務(wù):T1:A:二A+2;T2:A:=A*2;*
12、 AA*刁設(shè)A陌初值為0。(J若這3個(gè)事務(wù)允許并行執(zhí)行,則有多少可能的正確 結(jié)果?諸一一列舉出來。答:A的最終結(jié)果可能有2、4、8、16。因?yàn)榇袌?zhí)行次序有T1 T2 T3、T1 T3 T2、T2 T1 T3、T2 T3 Tl、T3 T1 T2、T3 T2 TU對應(yīng)的執(zhí)行結(jié)果是16、8、4、2、4、2o (2)請給出一個(gè)可串行化的調(diào)度,并給岀執(zhí)行結(jié)果T1T2T3slock AY 二 A=0 Unlock AXlock A歐陽歷創(chuàng)編Slock A2021.02.09A二Y+2等待 寫回A(二2)等待 Unlock A 等待Y二 A二 2Unlock AXlock AT1T2T3Slock AY二
13、 A 二0Unlock ASlock AY二 A二 0Xlock A 等待 Unlock AA 二 Y+2 寫回A(=2)Unlock A 等待Slock Ak AA二Y*2Unlock AXlocXlock A等待等待寫回A(二4) 等待 Unlock AA 二 丫*2 寫回A(=0) Unlock A質(zhì)餐鑿宋皇爲(wèi)盤報(bào)讎鍛鷺給出一個(gè)不產(chǎn)A二Y*2等待Slock A寫回A(二4)等待Unlock A 等待Y二 A二4Unlock AXlock A寫回A(=16)Unlock A最后結(jié)果A為16,是可串行化的調(diào)度。 Q)請給岀一個(gè)非串行化的調(diào)度,并給出執(zhí)行結(jié)果。生蹩的可串行化調(diào)度。SloclT1
14、 AY=A=0Xlock AA=Y+2 寫回A(=2UnlockY=A=2Xlock A筲待T2T3Xlock AA二Y*2Slock A 等待 等待寫回a(二4)等待UnlockSlockAM2A 等待A等待寫回A(=16)Unlock A(5)若這3個(gè)事務(wù)都遵守兩段鎖協(xié)議,請給岀一個(gè)產(chǎn)生 死鎖的調(diào)度T3答:T1SlockSlockXloc等彳*lock A靠待Y二 A 二0Xlock A等待念。Slock14試述兩段鎖協(xié)議的概答:兩段鎖協(xié)議是指所有事務(wù)必須分兩個(gè)階段對數(shù)據(jù) 項(xiàng)加鎖和解鎖。在對任何數(shù)據(jù)進(jìn)行讀、寫操作之前,首先要申請并獲得對該數(shù)據(jù)的封鎖;在釋放一個(gè)封鎖之后,事務(wù)不再申請 和獲得
15、任何其他封鎖?!眱啥巍钡暮x是,事務(wù)分為兩個(gè)階段:第一階段是獲得封鎖,也稱為擴(kuò)展階段,在這階段,事務(wù) 可以申請獲得任何數(shù)據(jù)項(xiàng)上的任何類型的鎖,但是不能釋放 任彳可鎖;第二階段是釋放封鎖,也稱為收縮階段,在這階段,事務(wù) 釋放已經(jīng)獲得的鎖,但是爪能再申請任何鎖。15 .試證明,若并發(fā)事務(wù)遵守兩段鎖協(xié)議,則對這些事務(wù)的并 發(fā)調(diào)度是可串行化的。證明:首先以兩個(gè)并發(fā)事務(wù)T1和T2為例?存在多個(gè)并 發(fā)事務(wù)的情形可以類推。根據(jù)可串行化定義可知,事務(wù)不可 串行化只可能發(fā)生在下列兩種情況:(1) 事務(wù)門寫某個(gè)數(shù)據(jù)對象A,T2讀或?qū)慉;(2) 事務(wù)T1讀或?qū)懩硞€(gè)數(shù)據(jù)對象A,T2寫Ao 下面稱A為潛在沖突對象。設(shè)T1和T2訪問的潛在沖突的公共對象為A A2 eAn o不矣二般性,假設(shè)這組潛在沖突對象中X二A1,A2,Ai均符合情況(1)。Y二Ai+l,An符合所情 況。vXeX,Tl 需要 Xlock x T2 需要 Slock x 或 Xlock x 1) 1)如果操作先執(zhí)行,則T1獲得鎖,T2等待由于遵守兩段鎖協(xié)議,T1在成功獲得X和Y中全部對象 及非潛在沖突對象的鎖后,才會釋放鎖。這時(shí)如果或Y,T2已獲得w的鎖,則岀現(xiàn)死鎖;否則,T1在對X、Y中對象全部處理完畢后,T2才
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)公司融資合同范本
- 艙口蓋系統(tǒng)行業(yè)深度研究報(bào)告
- 化肥長期供貨合同范本
- 場地使用出租合同范本
- 事業(yè)單位聘用合同范本
- 共享叉車租賃合同范例
- 副食購買合同范本
- 充電樁維修合同范本
- 勞務(wù)法合同范本
- 加盟合同范本
- 戰(zhàn)略管理與倫理
- 如何構(gòu)建高效課堂課件
- 虛擬化與云計(jì)算技術(shù)應(yīng)用實(shí)踐項(xiàng)目化教程 教案全套 第1-14周 虛擬化與云計(jì)算導(dǎo)論-騰訊云服務(wù)
- 甲基丙烯酸甲酯生產(chǎn)工藝畢業(yè)設(shè)計(jì)設(shè)備選型與布置模板
- 徐金桂行政法與行政訴訟法新講義
- 瀝青拌合設(shè)備結(jié)構(gòu)認(rèn)知
- 2023年北京高考政治真題試題及答案
- 復(fù)旦中華傳統(tǒng)體育課程講義05木蘭拳基本技術(shù)
- 北師大版五年級上冊數(shù)學(xué)教學(xué)課件第5課時(shí) 人民幣兌換
- 工程回訪記錄單
- 住房公積金投訴申請書
評論
0/150
提交評論