付費(fèi)下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
內(nèi)存網(wǎng)格關(guān)鍵技術(shù)探析的論文計(jì)算機(jī)應(yīng)用論文
摘要:內(nèi)存網(wǎng)格的出現(xiàn)主要借鑒了傳統(tǒng)的網(wǎng)格計(jì)算技術(shù)和集群內(nèi)存共享技術(shù)。本文從動(dòng)態(tài)函數(shù)截獲,緩存數(shù)據(jù)組織與管理和異步緩存數(shù)據(jù)寫入三方面探討了內(nèi)存網(wǎng)格系統(tǒng)的關(guān)鍵技術(shù)。
關(guān)鍵詞:內(nèi)存網(wǎng)格;動(dòng)態(tài)函數(shù)截獲;異步緩存數(shù)據(jù)
一引言
隨著計(jì)算機(jī)技術(shù)的發(fā)展,cpu和系統(tǒng)主存的性能得到了極大的提高。然而由于io設(shè)備的發(fā)展相對滯后,磁盤性能逐漸成為了影響計(jì)算機(jī)整體性能的瓶頸。對于具有頻繁、隨機(jī)磁盤10的數(shù)據(jù)密集型應(yīng)用,如web服務(wù)器和數(shù)據(jù)庫系統(tǒng),磁盤訪問的巨大延遲將嚴(yán)重影響應(yīng)用程序的性能。為了提高系統(tǒng)10性能,提出了內(nèi)存網(wǎng)格的概念,為共享和利用互聯(lián)網(wǎng)中豐富的內(nèi)存資源來解決內(nèi)存密集型應(yīng)用的性能問題提供了理論支持。本文結(jié)合已有的內(nèi)存網(wǎng)格理論,對其關(guān)鍵技術(shù)進(jìn)行了系統(tǒng)研究。
二動(dòng)態(tài)函數(shù)截獲技術(shù)
(一)內(nèi)核模塊
linux內(nèi)核是單一平面結(jié)構(gòu)(monolithic),也就是說它是一個(gè)獨(dú)立的大程序,所有的內(nèi)核功能構(gòu)件均可訪問任一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)和例程。為了方便使用同時(shí)又提供了模塊化的機(jī)制,這就是內(nèi)核模塊。內(nèi)核模塊是可以按照需要?jiǎng)討B(tài)載入內(nèi)核和從內(nèi)核中卸載的代碼。內(nèi)核模塊可以不需要重起系統(tǒng)擴(kuò)展內(nèi)核的功能。對于linux內(nèi)核模塊,可以用insmod或rmmod命令顯式載入或卸載,或者由內(nèi)核在需要時(shí)調(diào)用內(nèi)核守護(hù)程序(kerneld)自動(dòng)載入和卸載。內(nèi)核模塊運(yùn)行在linux內(nèi)核空間,可以方便地使用內(nèi)核提供的系統(tǒng)函數(shù)和變量。wWW..cOm從模塊程序鏈接的方式來看,它并不能自由地使用用戶空間里定義的函數(shù)庫,只能使用內(nèi)核空間中定義的、資源受到限制的函數(shù)。內(nèi)核在內(nèi)核符號表中維護(hù)了一個(gè)模塊的鏈表,每個(gè)符號表對應(yīng)一個(gè)模塊,模塊加載進(jìn)內(nèi)核時(shí)正確地對其進(jìn)行解釋,并將模塊作為內(nèi)核的一部分來執(zhí)行:加載進(jìn)內(nèi)核的模塊具有所有的內(nèi)核權(quán)限。模塊可以在系統(tǒng)啟動(dòng)時(shí)加載到系統(tǒng)中,也可以在系統(tǒng)運(yùn)行時(shí)加載:在不需要時(shí),可以將模塊動(dòng)態(tài)卸載,這樣就不用每次修改系統(tǒng)的配置時(shí)都要重新編譯內(nèi)核了。一般來說,內(nèi)核模塊可以應(yīng)用于設(shè)備驅(qū)動(dòng)、文件系統(tǒng)驅(qū)動(dòng)程序、網(wǎng)絡(luò)驅(qū)動(dòng)、可執(zhí)行文件解釋器和系統(tǒng)調(diào)用等方面。
(二)函數(shù)截獲
內(nèi)存網(wǎng)格系統(tǒng)中利用了函數(shù)截獲(apihooking)的方法來動(dòng)態(tài)改變系統(tǒng)函數(shù)執(zhí)行流程。所謂動(dòng)態(tài)改變,就是指在不修改程序源代碼和不覆蓋程序在磁盤的存儲映像前提下,對程序行為進(jìn)行修改。
函數(shù)截獲(apihooking)是獲取指定執(zhí)行代碼控制權(quán)的基本方法[44,45]。它提供了一種在不修改程序源代碼的前提下,動(dòng)態(tài)改變操作系統(tǒng)行為的便捷方法。在眾多現(xiàn)代操作系統(tǒng)中,使用函數(shù)截獲方法的間諜軟件(spyingsoftware)大量利用了系統(tǒng)中存在的窗口程序來部署自己的特殊應(yīng)用。一般說來,使用函數(shù)截獲方法具有如下優(yōu)點(diǎn):
1、便于api函數(shù)的監(jiān)控
具備控制api函數(shù)調(diào)用的能力是非常有用的。它能夠使程序開發(fā)者追蹤一些發(fā)生在api調(diào)用過程中、通常對外部應(yīng)用“不可見”的系統(tǒng)行為。這種方法主要用于特定環(huán)境下對函數(shù)參數(shù)的驗(yàn)證和檢查。比如,在某些情況下,監(jiān)控與內(nèi)存相關(guān)的api調(diào)用可以有效的捕獲內(nèi)存資源泄漏的問題。
2、便于調(diào)試與逆向工程
基于函數(shù)截獲的調(diào)試方法一直在調(diào)試技術(shù)中占據(jù)重要的地位。許多程序開發(fā)者使用函數(shù)截獲方法來確定程序部件的實(shí)現(xiàn)和相互關(guān)聯(lián)。api截獲(aplinterception是獲取二進(jìn)制執(zhí)行文件信息的重要方法。
3、便于窺視系統(tǒng)內(nèi)部實(shí)現(xiàn)
許多程序開發(fā)者希望對非開源操作系統(tǒng)有深層次的了解。函數(shù)截獲方法是一種有效的探索api內(nèi)部細(xì)節(jié)的方法。
4、便于擴(kuò)展函數(shù)的功能
為了能夠改變或擴(kuò)展模塊功能,通常使用函數(shù)截獲的方法對程序的正常執(zhí)行流進(jìn)行重新定向。比如,許多第三方軟件產(chǎn)品有時(shí)候無法滿足具體的安全要求,因此不得不對其進(jìn)行一些調(diào)整。為了解決這種問題,應(yīng)用程序開發(fā)者可以利用函數(shù)截獲方法對原函數(shù)添加一些額外的前置和后置處理過程。這種方法對改變一些已經(jīng)編譯后的代碼行為極為有用。
對于一個(gè)需要利用函數(shù)截獲的系統(tǒng)來說,通常需要依據(jù)函數(shù)截獲的目標(biāo)和使用環(huán)境來決定具體采用何種函數(shù)截獲方法。首先,我們需要考慮設(shè)計(jì)目標(biāo)是只針對單一應(yīng)用進(jìn)行截獲還是需要構(gòu)建一個(gè)系統(tǒng)級的截獲方案。比如,如果只需要監(jiān)控一個(gè)特定應(yīng)用,那么就不需要對一個(gè)系統(tǒng)級的函數(shù)進(jìn)行截獲。
一個(gè)截獲系統(tǒng)(hooksystem)通常由至少兩個(gè)部分組成,即一個(gè)截獲服務(wù)器
chookserver)和一個(gè)截獲驅(qū)動(dòng)器(hookdriver)。截獲驅(qū)動(dòng)器主要完成實(shí)際的截獲功能,截獲服務(wù)器則負(fù)責(zé)將截獲驅(qū)動(dòng)器在特定時(shí)刻注入(inject到目標(biāo)進(jìn)程。截獲服務(wù)器同時(shí)管理驅(qū)動(dòng)器并且選擇性的接受來自驅(qū)動(dòng)器的信息。三緩存數(shù)據(jù)組織與管理
(一)模型設(shè)計(jì)
內(nèi)存網(wǎng)格系統(tǒng)擴(kuò)展了傳統(tǒng)的系統(tǒng)存儲層次結(jié)構(gòu),在主存和磁盤之間添加了內(nèi)存網(wǎng)格層。內(nèi)存網(wǎng)格層主要由內(nèi)存服務(wù)節(jié)點(diǎn)提供的空閑內(nèi)存空間構(gòu)成,內(nèi)存客戶節(jié)點(diǎn)通過利用這些空閑內(nèi)存作為本地磁疵緩存的擴(kuò)展,從而加速系統(tǒng)磁盤10的性能。但是對于內(nèi)存服務(wù)節(jié)點(diǎn)提供的空閑內(nèi)存空間,如何有效的對其進(jìn)行組織和管理就成為了一個(gè)關(guān)鍵問題。
在基于協(xié)作緩存的改進(jìn)模型中,內(nèi)存網(wǎng)格的內(nèi)存客戶節(jié)點(diǎn)和提供其服務(wù)的內(nèi)存服務(wù)節(jié)點(diǎn)比例為1:n。因此我們采用了基數(shù)樹和lru鏈相結(jié)合的方式來解決查找和定位的問題,基數(shù)樹用于解決緩存數(shù)據(jù)的定位問題而存在于內(nèi)存客戶節(jié)點(diǎn)中,lru鏈用于對緩存數(shù)據(jù)的更新和替換存在于內(nèi)存服務(wù)節(jié)點(diǎn)中。
在ramgrid原型系統(tǒng)的最初設(shè)計(jì)過程中,為了簡化管理過程,我們規(guī)定一個(gè)內(nèi)存客戶節(jié)點(diǎn)在某一時(shí)刻有且盡可能使用一個(gè)內(nèi)存服務(wù)節(jié)點(diǎn)的服務(wù)。為了能夠?qū)?nèi)存服務(wù)節(jié)點(diǎn)中的空閑內(nèi)存資源進(jìn)行有效管理,內(nèi)存網(wǎng)格系統(tǒng)選擇在內(nèi)存客戶節(jié)點(diǎn)中實(shí)現(xiàn)了緩存數(shù)據(jù)組織和管理模塊。緩存數(shù)據(jù)組織和管理模塊對緩存數(shù)據(jù)進(jìn)行本地管理,管理信息包括內(nèi)存客戶節(jié)點(diǎn)所使用的內(nèi)存服務(wù)節(jié)點(diǎn)上數(shù)據(jù)頁幀的狀態(tài)信息、存儲位置等。為了能夠達(dá)到這些目標(biāo),我們改變了模型中的緩存方案,使用了基于lru和hash雙鏈的數(shù)據(jù)組織和管理方法。
lru鏈和hash鏈的雙鏈管理結(jié)構(gòu)在操作系統(tǒng)設(shè)計(jì)中由來已久。在開源操作系統(tǒng)linux的早期版本中,對于數(shù)據(jù)結(jié)構(gòu)的管理與組織就大量的使用了這種經(jīng)典的雙鏈結(jié)構(gòu)。其中,lru鏈主要對數(shù)據(jù)結(jié)構(gòu)進(jìn)行更新和替換:hash鏈主要用于數(shù)據(jù)結(jié)構(gòu)的快速查找和定位。通過雙鏈結(jié)構(gòu)的管理和組織,當(dāng)內(nèi)存客戶節(jié)點(diǎn)通過本地文件系統(tǒng)進(jìn)行磁盤10操作時(shí),則可以利用遠(yuǎn)地內(nèi)存服務(wù)節(jié)點(diǎn)的內(nèi)存來獲取數(shù)據(jù),從而減小內(nèi)存客戶節(jié)點(diǎn)磁盤開銷,提升系統(tǒng)性能。
(二)cache一致性問題
在單處理器(uniprocessor)系統(tǒng)中,由于處理器與10子系統(tǒng)看到的內(nèi)存視圖不同而產(chǎn)生了cache一致性問題。這是因?yàn)?0子系統(tǒng)直接讀寫的是內(nèi)存區(qū)域:處理器在寫回(write-back)策略下,首先讀寫的是cache,只有當(dāng)讀寫的塊要被替換時(shí),才將該cache中的塊內(nèi)容寫回到內(nèi)存。這就產(chǎn)生了處理器看到的內(nèi)存視圖與10子系統(tǒng)看到的不一樣的情況。在多處理器(multiprocessors)系統(tǒng)中,cache一致性問題是由對共享數(shù)據(jù)的緩存引發(fā)。在ramgrid系統(tǒng)中。由于ramgrid所擴(kuò)展的緩存層次位于主存和磁盤之間,處理器并不會直接進(jìn)行讀寫。所以ramgrid系統(tǒng)并不存在cache一致性問題。
四異步緩存寫入
為了不影響系統(tǒng)效率,內(nèi)存網(wǎng)格系統(tǒng)采用了異步緩存寫入的方法來完成內(nèi)存客戶節(jié)點(diǎn)對內(nèi)存服務(wù)節(jié)點(diǎn)的數(shù)據(jù)更新。內(nèi)存網(wǎng)格系統(tǒng)使用函數(shù)截獲方法來修改磁盤10的執(zhí)行流程,異步寫操作發(fā)生在函數(shù)截獲過程中,而函數(shù)截獲過程發(fā)生在核心態(tài),所以異步緩存寫入不得不選擇在核心態(tài)實(shí)現(xiàn)。為了使寫入過程不對原來的。系統(tǒng)執(zhí)行流程造成較大的性能損失,采用了內(nèi)核線程的方法來完成寫入過程。在內(nèi)核模塊中,我們設(shè)立了一個(gè)全局緩存區(qū)用以記錄內(nèi)存客戶節(jié)點(diǎn)磁盤讀寫函數(shù)中產(chǎn)生的“新”緩存數(shù)據(jù),而使
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025成都農(nóng)商銀行產(chǎn)業(yè)金融崗社會招聘10人考試題庫附答案
- 2025年廣西崇左憑祥市公安局面向社會公開招聘警務(wù)輔助人員61人備考題庫附答案
- 2026重慶醫(yī)科大學(xué)附屬大足醫(yī)院招聘4人筆試備考試題及答案解析
- 2026臺州市計(jì)量技術(shù)研究院編外招聘1人筆試備考題庫及答案解析
- 2026年昆明冶金高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測試模擬試題有答案解析
- 2026重慶市城投路橋管理有限公司食堂炊事員崗位2人筆試參考題庫及答案解析
- (能力提升)2025-2026學(xué)年下學(xué)期人教統(tǒng)編版小學(xué)語文五年級第一單元練習(xí)卷
- 2026年《東方煙草報(bào)》社有限公司高校畢業(yè)生招聘(3名)筆試備考試題及答案解析
- 2026年安徽工貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試參考題庫帶答案解析
- 2026福建石獅國有投資發(fā)展集團(tuán)有限責(zé)任公司招聘2人筆試參考題庫及答案解析
- 高二化學(xué)上學(xué)期期末試題帶答案解析
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)培訓(xùn)課件
- 體檢中心收費(fèi)與財(cái)務(wù)一體化管理方案
- 解答題 概率與統(tǒng)計(jì)(專項(xiàng)訓(xùn)練12大題型+高分必刷)(原卷版)2026年高考數(shù)學(xué)一輪復(fù)習(xí)講練測
- 2024-2025學(xué)年北京市海淀區(qū)第二十中學(xué)高二上學(xué)期期末物理試題(含答案)
- 金屬加工工藝規(guī)劃
- 四川省內(nèi)江市2024-2025學(xué)年高二上學(xué)期期末檢測化學(xué)試題
- 送你一朵小紅花評語
- 廣東省深圳市龍崗區(qū)2024-2025學(xué)年二年級上學(xué)期學(xué)科素養(yǎng)期末綜合數(shù)學(xué)試卷(含答案)
- 臨床成人吞咽障礙患者口服給藥護(hù)理
- (16)普通高中體育與健康課程標(biāo)準(zhǔn)日常修訂版(2017年版2025年修訂)
評論
0/150
提交評論