www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]內(nèi)存網(wǎng)格關(guān)鍵技術(shù)探析

摘要:內(nèi)存網(wǎng)格的出現(xiàn)主要借鑒了傳統(tǒng)的網(wǎng)格計算技術(shù)和集群內(nèi)存共享技術(shù)。本文從動態(tài)函數(shù)截獲,緩存數(shù)據(jù)組織與管理和異步緩存數(shù)據(jù)寫入三方面探討了內(nèi)存網(wǎng)格系統(tǒng)的關(guān)鍵技術(shù)。

關(guān)鍵詞:內(nèi)存網(wǎng)格;動態(tài)函數(shù)截獲;異步緩存數(shù)據(jù)

一 引言

隨著計算機技術(shù)的發(fā)展,CPU和系統(tǒng)主存的性能得到了極大的提高。然而由于IO設(shè)備的發(fā)展相對滯后,磁盤性能逐漸成為了影響計算機整體性能的瓶頸。對于具有頻繁、隨機磁盤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ù)進行了系統(tǒng)研究。

二 動態(tài)函數(shù)截獲技術(shù)

(一)內(nèi)核模塊

Linux內(nèi)核是單一平面結(jié)構(gòu)(monolithic),也就是說它是一個獨立的大程序,所有的內(nèi)核功能構(gòu)件均可訪問任一個內(nèi)部數(shù)據(jù)結(jié)構(gòu)和例程。為了方便使用同時又提供了模塊化的機制,這就是內(nèi)核模塊。內(nèi)核模塊是可以按照需要動態(tài)載入內(nèi)核和從內(nèi)核中卸載的代碼。內(nèi)核模塊可以不需要重起系統(tǒng)擴展內(nèi)核的功能。對于Linux內(nèi)核模塊,可以用insmod或rmmod命令顯式載入或卸載,或者由內(nèi)核在需要時調(diào)用內(nèi)核守護程序(kerneld)自動載入和卸載。內(nèi)核模塊運行在Linux內(nèi)核空間,可以方便地使用內(nèi)核提供的系統(tǒng)函數(shù)和變量。從模塊程序鏈接的方式來看,它并不能自由地使用用戶空間里定義的函數(shù)庫,只能使用內(nèi)核空間中定義的、資源受到限制的函數(shù)。內(nèi)核在內(nèi)核符號表中維護了一個模塊的鏈表,每個符號表對應(yīng)一個模塊,模塊加載進內(nèi)核時正確地對其進行解釋,并將模塊作為內(nèi)核的一部分來執(zhí)行:加載進內(nèi)核的模塊具有所有的內(nèi)核權(quán)限。模塊可以在系統(tǒng)啟動時加載到系統(tǒng)中,也可以在系統(tǒng)運行時加載:在不需要時,可以將模塊動態(tài)卸載,這樣就不用每次修改系統(tǒng)的配置時都要重新編譯內(nèi)核了。一般來說,內(nèi)核模塊可以應(yīng)用于設(shè)備驅(qū)動、文件系統(tǒng)驅(qū)動程序、網(wǎng)絡(luò)驅(qū)動、可執(zhí)行文件解釋器和系統(tǒng)調(diào)用等方面。

(二)函數(shù)截獲

內(nèi)存網(wǎng)格系統(tǒng)中利用了函數(shù)截獲(APIHooking)的方法來動態(tài)改變系統(tǒng)函數(shù)執(zhí)行流程。所謂動態(tài)改變,就是指在不修改程序源代碼和不覆蓋程序在磁盤的存儲映像前提下,對程序行為進行修改。

函數(shù)截獲(API Hooking)是獲取指定執(zhí)行代碼控制權(quán)的基本方法[44,45]。它提供了一種在不修改程序源代碼的前提下,動態(tài)改變操作系統(tǒng)行為的便捷方法。在眾多現(xiàn)代操作系統(tǒng)中,使用函數(shù)截獲方法的間諜軟件(Spying Software)大量利用了系統(tǒng)中存在的窗口程序來部署自己的特殊應(yīng)用。一般說來,使用函數(shù)截獲方法具有如下優(yōu)點:

1、便于API函數(shù)的監(jiān)控

具備控制API函數(shù)調(diào)用的能力是非常有用的。它能夠使程序開發(fā)者追蹤一些發(fā)生在API調(diào)用過程中、通常對外部應(yīng)用“不可見”的系統(tǒng)行為。這種方法主要用于特定環(huán)境下對函數(shù)參數(shù)的驗證和檢查。比如,在某些情況下,監(jiān)控與內(nèi)存相關(guān)的API調(diào)用可以有效的捕獲內(nèi)存資源泄漏的問題。

2、便于調(diào)試與逆向工程

基于函數(shù)截獲的調(diào)試方法一直在調(diào)試技術(shù)中占據(jù)重要的地位。許多程序開發(fā)者使用函數(shù)截獲方法來確定程序部件的實現(xiàn)和相互關(guān)聯(lián)。API截獲(APlinterception是獲取二進制執(zhí)行文件信息的重要方法。

3、便于窺視系統(tǒng)內(nèi)部實現(xiàn)

許多程序開發(fā)者希望對非開源操作系統(tǒng)有深層次的了解。函數(shù)截獲方法是一種有效的探索API內(nèi)部細(xì)節(jié)的方法。

4、便于擴展函數(shù)的功能

為了能夠改變或擴展模塊功能,通常使用函數(shù)截獲的方法對程序的正常執(zhí)行流進行重新定向。比如,許多第三方軟件產(chǎn)品有時候無法滿足具體的安全要求,因此不得不對其進行一些調(diào)整。為了解決這種問題,應(yīng)用程序開發(fā)者可以利用函數(shù)截獲方法對原函數(shù)添加一些額外的前置和后置處理過程。這種方法對改變一些已經(jīng)編譯后的代碼行為極為有用。

對于一個需要利用函數(shù)截獲的系統(tǒng)來說,通常需要依據(jù)函數(shù)截獲的目標(biāo)和使用環(huán)境來決定具體采用何種函數(shù)截獲方法。首先,我們需要考慮設(shè)計目標(biāo)是只針對單一應(yīng)用進行截獲還是需要構(gòu)建一個系統(tǒng)級的截獲方案。比如,如果只需要監(jiān)控一個特定應(yīng)用,那么就不需要對一個系統(tǒng)級的函數(shù)進行截獲。

一個截獲系統(tǒng)(Hook System)通常由至少兩個部分組成,即一個截獲服務(wù)器

CHook Server)和一個截獲驅(qū)動器(HookDriver)。截獲驅(qū)動器主要完成實際的截獲功能,截獲服務(wù)器則負(fù)責(zé)將截獲驅(qū)動器在特定時刻注入(inject到目標(biāo)進程。截獲服務(wù)器同時管理驅(qū)動器并且選擇性的接受來自驅(qū)動器的信息。

三 緩存數(shù)據(jù)組織與管理

(一)模型設(shè)計

內(nèi)存網(wǎng)格系統(tǒng)擴展了傳統(tǒng)的系統(tǒng)存儲層次結(jié)構(gòu),在主存和磁盤之間添加了內(nèi)存網(wǎng)格層。內(nèi)存網(wǎng)格層主要由內(nèi)存服務(wù)節(jié)點提供的空閑內(nèi)存空間構(gòu)成,內(nèi)存客戶節(jié)點通過利用這些空閑內(nèi)存作為本地磁疵緩存的擴展,從而加速系統(tǒng)磁盤10的性能。但是對于內(nèi)存服務(wù)節(jié)點提供的空閑內(nèi)存空間,如何有效的對其進行組織和管理就成為了一個關(guān)鍵問題。

在基于協(xié)作緩存的改進模型中,內(nèi)存網(wǎng)格的內(nèi)存客戶節(jié)點和提供其服務(wù)的內(nèi)存服務(wù)節(jié)點比例為1:n。因此我們采用了基數(shù)樹和LRU鏈相結(jié)合的方式來解決查找和定位的問題,基數(shù)樹用于解決緩存數(shù)據(jù)的定位問題而存在于內(nèi)存客戶節(jié)點中,LRU鏈用于對緩存數(shù)據(jù)的更新和替換存在于內(nèi)存服務(wù)節(jié)點中。

在RAM Grid原型系統(tǒng)的最初設(shè)計過程中,為了簡化管理過程,我們規(guī)定一個內(nèi)存客戶節(jié)點在某一時刻有且盡可能使用一個內(nèi)存服務(wù)節(jié)點的服務(wù)。為了能夠?qū)?nèi)存服務(wù)節(jié)點中的空閑內(nèi)存資源進行有效管理,內(nèi)存網(wǎng)格系統(tǒng)選擇在內(nèi)存客戶節(jié)點中實現(xiàn)了緩存數(shù)據(jù)組織和管理模塊。緩存數(shù)據(jù)組織和管理模塊對緩存數(shù)據(jù)進行本地管理,管理信息包括內(nèi)存客戶節(jié)點所使用的內(nèi)存服務(wù)節(jié)點上數(shù)據(jù)頁幀的狀態(tài)信息、存儲位置等。為了能夠達到這些目標(biāo),我們改變了模型中的緩存方案,使用了基于LRU和Hash雙鏈的數(shù)據(jù)組織和管理方法。

LRU鏈和Hash鏈的雙鏈管理結(jié)構(gòu)在操作系統(tǒng)設(shè)計中由來已久。在開源操作系統(tǒng)Linux的早期版本中,對于數(shù)據(jù)結(jié)構(gòu)的管理與組織就大量的使用了這種經(jīng)典的雙鏈結(jié)構(gòu)。其中,LRU鏈主要對數(shù)據(jù)結(jié)構(gòu)進行更新和替換:Hash鏈主要用于數(shù)據(jù)結(jié)構(gòu)的快速查找和定位。通過雙鏈結(jié)構(gòu)的管理和組織,當(dāng)內(nèi)存客戶節(jié)點通過本地文件系統(tǒng)進行磁盤10操作時,則可以利用遠(yuǎn)地內(nèi)存服務(wù)節(jié)點的內(nèi)存來獲取數(shù)據(jù),從而減小內(nèi)存客戶節(jié)點磁盤開銷,提升系統(tǒng)性能。[!--empirenews.page--]

(二)Cache一致性問題

在單處理器(uniprocessor)系統(tǒng)中,由于處理器與10子系統(tǒng)看到的內(nèi)存視圖不同而產(chǎn)生了Cache一致性問題。這是因為10子系統(tǒng)直接讀寫的是內(nèi)存區(qū)域:處理器在寫回(write-back)策略下,首先讀寫的是Cache,只有當(dāng)讀寫的塊要被替換時,才將該Cache中的塊內(nèi)容寫回到內(nèi)存。這就產(chǎn)生了處理器看到的內(nèi)存視圖與10子系統(tǒng)看到的不一樣的情況。在多處理器(multiprocessors)系統(tǒng)中,Cache一致性問題是由對共享數(shù)據(jù)的緩存引發(fā)。在RAM Grid系統(tǒng)中。由于RAM Grid所擴展的緩存層次位于主存和磁盤之間,處理器并不會直接進行讀寫。所以RAM Grid系統(tǒng)并不存在Cache一致性問題。

四 異步緩存寫入

為了不影響系統(tǒng)效率,內(nèi)存網(wǎng)格系統(tǒng)采用了異步緩存寫入的方法來完成內(nèi)存客戶節(jié)點對內(nèi)存服務(wù)節(jié)點的數(shù)據(jù)更新。內(nèi)存網(wǎng)格系統(tǒng)使用函數(shù)截獲方法來修改磁盤10的執(zhí)行流程,異步寫操作發(fā)生在函數(shù)截獲過程中,而函數(shù)截獲過程發(fā)生在核心態(tài),所以異步緩存寫入不得不選擇在核心態(tài)實現(xiàn)。為了使寫入過程不對原來的。系統(tǒng)執(zhí)行流程造成較大的性能損失,采用了內(nèi)核線程的方法來完成寫入過程。在內(nèi)核模塊中,我們設(shè)立了一個全局緩存區(qū)用以記錄內(nèi)存客戶節(jié)點磁盤讀寫函數(shù)中產(chǎn)生的“新”緩存數(shù)據(jù),而使用一個內(nèi)核線程來將內(nèi)存客戶節(jié)點中的新緩存數(shù)據(jù)周期性的寫入到內(nèi)存服務(wù)節(jié)點的虛擬塊設(shè)各中。這樣,整個問題演變成了傳統(tǒng)操作系統(tǒng)中的讀者/寫者問題。緩存數(shù)據(jù)區(qū)的每一個塊中存放著一個緩存數(shù)據(jù)結(jié)構(gòu)信息。這個數(shù)據(jù)結(jié)構(gòu)中包含有設(shè)備號、塊號、塊大小、緩存數(shù)據(jù)內(nèi)容和使用標(biāo)志位等元信息,這些信息主要用于緩存數(shù)據(jù)本身的管理和緩存數(shù)據(jù)在內(nèi)存服務(wù)節(jié)點上數(shù)據(jù)的定位。

ce="宋體">更多醫(yī)療電子信息請關(guān)注:21ic醫(yī)療電子頻道

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

根據(jù)IDC預(yù)測,中國在人工智能領(lǐng)域的投資預(yù)計到2027年將達到381億美元,占全球總投資的近9%。作為全球人工智能的重要參與者,中國正加速在汽車、通信、醫(yī)療、金融等多個行業(yè)應(yīng)用和發(fā)展生成式AI技術(shù),全面邁入“AI 2.0...

關(guān)鍵字: AI 內(nèi)存 DDR5

8月17日消息,近日,超頻愛好者“saltycroissant”成功將海盜船(CORSAIR)DDR5內(nèi)存超頻至12886MT/s,創(chuàng)造了新的世界紀(jì)錄。

關(guān)鍵字: 內(nèi)存 DDR5

在高性能服務(wù)架構(gòu)設(shè)計中,緩存是不可或缺的環(huán)節(jié)。在實際項目中,我們通常會將一些熱點數(shù)據(jù)存儲在Redis或Memcached等緩存中間件中,只有在緩存訪問未命中時才查詢數(shù)據(jù)庫。

關(guān)鍵字: 緩存 內(nèi)存

北京2025年8月8日 /美通社/ -- 8月7日,浪潮信息發(fā)布面向萬億參數(shù)大模型的超節(jié)點AI服務(wù)器"元腦SD200"。該產(chǎn)品基于浪潮信息創(chuàng)新研發(fā)的多主機低延遲內(nèi)存語義通信架構(gòu),以開放系統(tǒng)設(shè)計向上擴展...

關(guān)鍵字: 模型 節(jié)點 SD 通信

7月25日消息,由于供應(yīng)短缺,最近一段時間DDR4內(nèi)存頻繁出現(xiàn)漲價、缺貨等現(xiàn)象。

關(guān)鍵字: DDR4 內(nèi)存

香港2025年7月18日 /美通社/ -- 近日,中國移動國際有限公司(中移國際)宣布其參建的"東南亞-日本二號海纜"(SJC2)于2025年7月16日正式投產(chǎn)。 SJC2總長10,500公里,是中...

關(guān)鍵字: 新加坡 數(shù)字經(jīng)濟 數(shù)據(jù)中心 節(jié)點

7月10日消息,JEDEC今天正式發(fā)布了LPDDR6內(nèi)存標(biāo)準(zhǔn),規(guī)范編號JESD209-6,可顯著提升移動設(shè)備、AI應(yīng)用的性能、能效、安全。

關(guān)鍵字: LPDDR6 內(nèi)存

北京 2025年7月3日 /美通社/ -- 近日,北京積算科技有限公司(以下簡稱"積算科技")正式推出GPU裸金屬算力服務(wù)套件,幫助客戶實現(xiàn)并行環(huán)境的分鐘級部署與出廠級性能校準(zhǔn),在GPU裸金屬算力上...

關(guān)鍵字: 金屬 GPU 性能優(yōu)化 操作系統(tǒng)

7月6日消息,由于供應(yīng)短缺,DDR4內(nèi)存價格在過去幾個月內(nèi)大幅上漲,甚至超過了DDR5內(nèi)存,這一現(xiàn)象促使一些廠商重新考慮延長DDR4內(nèi)存的生產(chǎn)。

關(guān)鍵字: DDR4 內(nèi)存

上海 2025年6月23日 /美通社/ -- 近期,黑芝麻智能分享了其如何通過零拷貝共享內(nèi)存技術(shù),解決車載多域間大數(shù)據(jù)傳輸?shù)难舆t與資源消耗問題。核心技術(shù)包括全局內(nèi)存管理單元和dmabuf機制優(yōu)化,顯著降低CPU負(fù)載與D...

關(guān)鍵字: 內(nèi)存 數(shù)據(jù)傳輸 大數(shù)據(jù) BUF
關(guān)閉