2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩112頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、當(dāng)前普遍使用的垃圾收集器減輕了程序員手工管理內(nèi)存的負擔(dān),提高了程序的可信性。但是,除了內(nèi)存外,還有很多其他的有限系統(tǒng)資源,比如文件柄和數(shù)據(jù)庫連接,程序員必須認真地管理這些資源。程序員不正確地使用資源造成的資源使用故障,主要包括釋放資源后繼續(xù)使用資源導(dǎo)致的資源安全(safety)故障和沒有及時釋放不再使用的資源導(dǎo)致的資源泄漏故障。資源使用故障作為一類十分普遍的軟件故障,給軟件系統(tǒng)的可信性造成了嚴重威脅。為了降低資源使用故障對軟件系統(tǒng)可信性

2、的危害,本文根據(jù)故障到失效的傳播路徑,從兩個方面著手,避免資源使用故障導(dǎo)致的軟件失效的發(fā)生:在軟件發(fā)布前的軟件測試階段,查找資源使用故障,然后修復(fù)它們,目的是盡量減少發(fā)布后的軟件的故障數(shù)目,提高軟件系統(tǒng)的可信性,減少后期軟件維護的代價。鑒于當(dāng)前資源使用故障分析技術(shù)的可用性差,以及需要形式化的資源規(guī)約的限制,本文研究不需要資源規(guī)約的輕量級資源使用故障測試方法;盡管在軟件開發(fā)過程中,軟件開發(fā)者采用了各種手段減少軟件故障,但是由于當(dāng)前軟件質(zhì)量

3、保證手段存在種種限制,發(fā)布后的軟件還是包含大量的故障。本研究主要內(nèi)容包括:
 ?、泡p量級資源使用故障的測試。提出一種面向Java程序的輕量級資源泄漏測試方法LeaT(LEAk Test)。它的主要思想是,如果程序員沒有在一個資源對象的終結(jié)方法(finalizer)執(zhí)行前調(diào)用這個資源對象的清理方法(cleanup method),這個資源對象就泄漏了。LeaT是輕量級的,易于實現(xiàn)和使用,并且高效。與現(xiàn)有的資源泄漏測試和分析方法不同,

4、程序員通過向測試程序中簡單地添加幾行代碼就實現(xiàn)了這個方法,它可以檢測大多數(shù)的系統(tǒng)資源的泄漏,不需要任何資源規(guī)約。對于存在資源規(guī)約的一般資源,LeaT也可以檢測它們的泄漏。進行了一系列實驗,評估該方法檢測資源泄漏的能力,在幾乎所有的DaCapo測試程序集的測試程序中(25個程序中的24個)和所有的Eclipse測試插件中發(fā)現(xiàn)了大量資源泄漏故障,平均性能代價是2.79%。由于LeaT檢測的資源泄漏都是在運行時真實發(fā)生的,它不會出現(xiàn)誤報。同時

5、,本文通過實驗,說明這個方法能夠有效地發(fā)現(xiàn)資源泄漏故障,漏報率很低。
  ⑵利用子構(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ì)時,根據(jù)這個性質(zhì)監(jiān)控執(zhí)行軌跡中的子構(gòu)件,把監(jiān)控器當(dāng)前到達的狀態(tài)看著此時子構(gòu)件的抽象狀態(tài),然后使用這些抽象狀態(tài)標注組合構(gòu)件的狀態(tài)。通過這種方法,組合構(gòu)件能夠區(qū)分編碼在子構(gòu)件規(guī)約中的子構(gòu)件的不同狀態(tài),規(guī)約挖掘工具能夠有效增加挖掘的組合構(gòu)件的狀態(tài)數(shù),生成的組合構(gòu)件的規(guī)約更加精確。本文的方法具有廣泛的適用性,能夠挖掘十分復(fù)雜的模型。由于資源之間的包裝關(guān)系(一個資源把另一個資源封裝在自己的屬性里)十分常見,本文的方法很好地利用

7、了這種現(xiàn)象,特別適合挖掘精確的資源規(guī)約。通過實驗評估了PreComm,實驗比較了利用子構(gòu)件的規(guī)約和使用null抽象方法挖掘的規(guī)約的不同。實驗使用DaCapo測試程序集作為API客戶程序,挖掘來自于Java系統(tǒng)庫中17包中的類的規(guī)約。實驗結(jié)果表明,該方法能夠顯著提高挖掘的規(guī)約的精確性,改進了10個過于泛化的模型中的7個,平均消除了這7個模型中25.05%的錯誤行為。同時,實驗中沒有觀察到該方法挖掘的規(guī)約的完整性的損失。這個方法速度很快,監(jiān)

8、控子構(gòu)件規(guī)約的代價也很小,分析執(zhí)行軌跡的時間增加在10%左右。
  ⑶基于資源規(guī)約自動強制的資源使用故障容錯。在資源使用故障已經(jīng)潛入部署后軟件的情況下,一種減輕或者消除資源使用故障危害的容錯技術(shù)就顯得十分必要。本文注意到,少量的資源泄漏不會帶來問題,既不會影響軟件的行為,也不會影響軟件的性能。只有當(dāng)泄漏的資源消耗了所有的可用資源或者造成很大的性能代價時,才會發(fā)生系統(tǒng)失效。本文提出一種容錯資源泄漏的自動資源回收技術(shù)Resco(RES

9、ource COllection),使得泄漏的資源不會超過特定的界限。當(dāng)泄漏的資源消耗了足夠多的資源以至于系統(tǒng)即將崩潰或者系統(tǒng)的性能受到影響時,就開始回收泄漏的資源。首先,識別泄漏的資源。如果一個資源對象不可達(unreachable),并且沒有被釋放,本文就認為它被泄露了。對于帶有垃圾收集器的運行時系統(tǒng)(比如Java虛擬機),修改垃圾收集器,使得它在收集垃圾時保留泄漏的資源。然后,調(diào)用資源規(guī)約中相應(yīng)的釋放方法安全地釋放泄漏的資源。通過

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論