版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、當(dāng)前普遍使用的垃圾收集器減輕了程序員手工管理內(nèi)存的負(fù)擔(dān),提高了程序的可信性。但是,除了內(nèi)存外,還有很多其他的有限系統(tǒng)資源,比如文件柄和數(shù)據(jù)庫(kù)連接,程序員必須認(rèn)真地管理這些資源。程序員不正確地使用資源造成的資源使用故障,主要包括釋放資源后繼續(xù)使用資源導(dǎo)致的資源安全(safety)故障和沒(méi)有及時(shí)釋放不再使用的資源導(dǎo)致的資源泄漏故障。資源使用故障作為一類十分普遍的軟件故障,給軟件系統(tǒng)的可信性造成了嚴(yán)重威脅。為了降低資源使用故障對(duì)軟件系統(tǒng)可信性
2、的危害,本文根據(jù)故障到失效的傳播路徑,從兩個(gè)方面著手,避免資源使用故障導(dǎo)致的軟件失效的發(fā)生:在軟件發(fā)布前的軟件測(cè)試階段,查找資源使用故障,然后修復(fù)它們,目的是盡量減少發(fā)布后的軟件的故障數(shù)目,提高軟件系統(tǒng)的可信性,減少后期軟件維護(hù)的代價(jià)。鑒于當(dāng)前資源使用故障分析技術(shù)的可用性差,以及需要形式化的資源規(guī)約的限制,本文研究不需要資源規(guī)約的輕量級(jí)資源使用故障測(cè)試方法;盡管在軟件開(kāi)發(fā)過(guò)程中,軟件開(kāi)發(fā)者采用了各種手段減少軟件故障,但是由于當(dāng)前軟件質(zhì)量
3、保證手段存在種種限制,發(fā)布后的軟件還是包含大量的故障。本研究主要內(nèi)容包括:
?、泡p量級(jí)資源使用故障的測(cè)試。提出一種面向Java程序的輕量級(jí)資源泄漏測(cè)試方法LeaT(LEAk Test)。它的主要思想是,如果程序員沒(méi)有在一個(gè)資源對(duì)象的終結(jié)方法(finalizer)執(zhí)行前調(diào)用這個(gè)資源對(duì)象的清理方法(cleanup method),這個(gè)資源對(duì)象就泄漏了。LeaT是輕量級(jí)的,易于實(shí)現(xiàn)和使用,并且高效。與現(xiàn)有的資源泄漏測(cè)試和分析方法不同,
4、程序員通過(guò)向測(cè)試程序中簡(jiǎn)單地添加幾行代碼就實(shí)現(xiàn)了這個(gè)方法,它可以檢測(cè)大多數(shù)的系統(tǒng)資源的泄漏,不需要任何資源規(guī)約。對(duì)于存在資源規(guī)約的一般資源,LeaT也可以檢測(cè)它們的泄漏。進(jìn)行了一系列實(shí)驗(yàn),評(píng)估該方法檢測(cè)資源泄漏的能力,在幾乎所有的DaCapo測(cè)試程序集的測(cè)試程序中(25個(gè)程序中的24個(gè))和所有的Eclipse測(cè)試插件中發(fā)現(xiàn)了大量資源泄漏故障,平均性能代價(jià)是2.79%。由于LeaT檢測(cè)的資源泄漏都是在運(yùn)行時(shí)真實(shí)發(fā)生的,它不會(huì)出現(xiàn)誤報(bào)。同時(shí)
5、,本文通過(guò)實(shí)驗(yàn),說(shuō)明這個(gè)方法能夠有效地發(fā)現(xiàn)資源泄漏故障,漏報(bào)率很低。
?、评米訕?gòu)件規(guī)約挖掘精確的資源規(guī)約。利用已有的規(guī)約能夠挖掘更好的規(guī)約,提出了使用基于狀態(tài)的規(guī)約挖掘方法利用子構(gòu)件的已有規(guī)約挖掘精確的組合構(gòu)件的規(guī)約的方法PreComm(PREciseCOMposite component specification Miner)。本文區(qū)分編碼在子構(gòu)件規(guī)約里的子構(gòu)件的不同的狀態(tài),利用這些狀態(tài)構(gòu)造組合構(gòu)件的抽象狀態(tài)。當(dāng)子構(gòu)件的可
6、用規(guī)約是有限狀態(tài)性質(zhì)時(shí),根據(jù)這個(gè)性質(zhì)監(jiān)控執(zhí)行軌跡中的子構(gòu)件,把監(jiān)控器當(dāng)前到達(dá)的狀態(tài)看著此時(shí)子構(gòu)件的抽象狀態(tài),然后使用這些抽象狀態(tài)標(biāo)注組合構(gòu)件的狀態(tài)。通過(guò)這種方法,組合構(gòu)件能夠區(qū)分編碼在子構(gòu)件規(guī)約中的子構(gòu)件的不同狀態(tài),規(guī)約挖掘工具能夠有效增加挖掘的組合構(gòu)件的狀態(tài)數(shù),生成的組合構(gòu)件的規(guī)約更加精確。本文的方法具有廣泛的適用性,能夠挖掘十分復(fù)雜的模型。由于資源之間的包裝關(guān)系(一個(gè)資源把另一個(gè)資源封裝在自己的屬性里)十分常見(jiàn),本文的方法很好地利用
7、了這種現(xiàn)象,特別適合挖掘精確的資源規(guī)約。通過(guò)實(shí)驗(yàn)評(píng)估了PreComm,實(shí)驗(yàn)比較了利用子構(gòu)件的規(guī)約和使用null抽象方法挖掘的規(guī)約的不同。實(shí)驗(yàn)使用DaCapo測(cè)試程序集作為API客戶程序,挖掘來(lái)自于Java系統(tǒng)庫(kù)中17包中的類的規(guī)約。實(shí)驗(yàn)結(jié)果表明,該方法能夠顯著提高挖掘的規(guī)約的精確性,改進(jìn)了10個(gè)過(guò)于泛化的模型中的7個(gè),平均消除了這7個(gè)模型中25.05%的錯(cuò)誤行為。同時(shí),實(shí)驗(yàn)中沒(méi)有觀察到該方法挖掘的規(guī)約的完整性的損失。這個(gè)方法速度很快,監(jiān)
8、控子構(gòu)件規(guī)約的代價(jià)也很小,分析執(zhí)行軌跡的時(shí)間增加在10%左右。
⑶基于資源規(guī)約自動(dòng)強(qiáng)制的資源使用故障容錯(cuò)。在資源使用故障已經(jīng)潛入部署后軟件的情況下,一種減輕或者消除資源使用故障危害的容錯(cuò)技術(shù)就顯得十分必要。本文注意到,少量的資源泄漏不會(huì)帶來(lái)問(wèn)題,既不會(huì)影響軟件的行為,也不會(huì)影響軟件的性能。只有當(dāng)泄漏的資源消耗了所有的可用資源或者造成很大的性能代價(jià)時(shí),才會(huì)發(fā)生系統(tǒng)失效。本文提出一種容錯(cuò)資源泄漏的自動(dòng)資源回收技術(shù)Resco(RES
9、ource COllection),使得泄漏的資源不會(huì)超過(guò)特定的界限。當(dāng)泄漏的資源消耗了足夠多的資源以至于系統(tǒng)即將崩潰或者系統(tǒng)的性能受到影響時(shí),就開(kāi)始回收泄漏的資源。首先,識(shí)別泄漏的資源。如果一個(gè)資源對(duì)象不可達(dá)(unreachable),并且沒(méi)有被釋放,本文就認(rèn)為它被泄露了。對(duì)于帶有垃圾收集器的運(yùn)行時(shí)系統(tǒng)(比如Java虛擬機(jī)),修改垃圾收集器,使得它在收集垃圾時(shí)保留泄漏的資源。然后,調(diào)用資源規(guī)約中相應(yīng)的釋放方法安全地釋放泄漏的資源。通過(guò)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 面向主題的博客資源挖掘關(guān)鍵技術(shù)研究.pdf
- 面向車輛保險(xiǎn)的數(shù)據(jù)挖掘技術(shù)研究與應(yīng)用.pdf
- 面向中醫(yī)辨證的數(shù)據(jù)挖掘技術(shù)研究與應(yīng)用.pdf
- 面向電力營(yíng)銷的OLAP與數(shù)據(jù)挖掘技術(shù)研究與應(yīng)用.pdf
- 面向電子商務(wù)的數(shù)據(jù)挖掘技術(shù)研究與實(shí)現(xiàn).pdf
- 面向現(xiàn)代企業(yè)營(yíng)銷的數(shù)據(jù)挖掘技術(shù)研究.pdf
- 面向服務(wù)的數(shù)據(jù)挖掘關(guān)鍵技術(shù)研究.pdf
- 面向數(shù)據(jù)挖掘的支持向量機(jī)技術(shù)研究.pdf
- 面向制造業(yè)的數(shù)據(jù)挖掘技術(shù)研究與應(yīng)用.pdf
- 面向領(lǐng)域的文本分類與挖掘關(guān)鍵技術(shù)研究.pdf
- 面向微博社區(qū)的圖數(shù)據(jù)挖掘技術(shù)研究與實(shí)現(xiàn).pdf
- 面向微博社區(qū)的圖數(shù)據(jù)挖掘技術(shù)研究與實(shí)現(xiàn)
- 面向COTS軟件的智能漏洞挖掘技術(shù)研究.pdf
- 面向智能搜索的Web信息挖掘技術(shù)研究.pdf
- 面向農(nóng)業(yè)信息服務(wù)平臺(tái)的挖掘技術(shù)研究.pdf
- 面向?qū)嶓w的觀點(diǎn)挖掘關(guān)鍵技術(shù)研究.pdf
- 面向RFID海量數(shù)據(jù)的圖挖掘技術(shù)研究.pdf
- 面向web文本挖掘的主題搜索技術(shù)研究.pdf
- 面向電信市場(chǎng)營(yíng)銷的數(shù)據(jù)挖掘技術(shù)研究.pdf
- 面向RFID海量數(shù)據(jù)的若干數(shù)據(jù)挖掘技術(shù)研究.pdf
評(píng)論
0/150
提交評(píng)論