999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

內存映射技術在大數據實時存儲中的應用

2017-05-13 06:40:43劉平賈林林
河南科技 2017年5期
關鍵詞:進程系統

劉平 賈林林

(中國空空導彈研究院,河南 洛陽 471009)

內存映射技術在大數據實時存儲中的應用

劉平 賈林林

(中國空空導彈研究院,河南 洛陽 471009)

大數據的高速實時存儲是某圖像采集設備研發過程中所要面對的一項問題,為了解決數據吞吐量大、系統并行處理任務多等問題,不進行數據緩沖存儲以及文件I/O操作的內存映射文件正是解決多個進程間數據共享的最有效方法。結合某測控設備的實際研發,對內存映射技術的運行機制和具體實現流程進行進一步的研究,并針對實際情況進行特殊處理,以保證數據存儲的實時性和穩定性。最后經過測控設備的實際測試,內存映射技術表現出良好的性能,滿足系統數據存儲方面的要求,而且相比較其他方式占用極少的物理資源,不會影響系統的性能。

內存映射;大數據;多線程;實時

某128×128元圖像采集系統用于紅外產品圖像高速實時的連續處理,系統要求紅外圖像能夠無差錯地實時存儲1h。按照產品每秒100幀頻計算,1h的數據存儲量大約為11.15GB,對于如此大數據量的存儲,采用普通文件進行操作受限于Windows進程空間有限,無法實現4GB以上數據文件一次性存儲。另外,基于文件I/O操作的普通文件操作,其存儲速度慢,容易在此類實時性要求較高的系統中出現圖像采集丟幀、顯示速率不達要求、存儲壓力過大、運行可靠性低等問題,從而導致任務要求無法完成[1,2]。

通過設計專門的內存映射機制實現高速實時的紅外圖像實時存儲,可以解決大數據量的實時存儲問題。同時,該設計具備的高效率與高可靠性,也能夠滿足整個系統的其他要求。

1 內存映射存儲特點

現在,一般采取內存映射技術完成大文件的實時存儲操作。內存映射技術是Windows的一種內存管理方法。通過這種方式,在不占用額外的磁盤空間和內存空間條件下,就能實現目標磁盤文件與進程虛擬地址空間的對應關系。由于省去了數據緩沖存儲及文件I/O操作,內存映射處理文件存儲,速度很快而且能夠一次性處理16EB(64位機)的數據量。

2 內存映射技術實現機制

內存映射文件與虛擬內存技術從本質上比較接近,兩者雖然都是在磁盤空間內保留一定地址空間的區域用于完成大文件的存儲,但是地址空間的性質有所不同,內存文件映射的物理存儲器不是虛擬內存所采用的系統頁文件,而是使用某個已經存在于磁盤上的文件,而且在對這個文件進行操作之前先期以一種類似于將文件整體從磁盤加載至內存的方式完成映射操作。

內存映射技術最大的優點在于,不對文件執行I/O操作就能處理存儲于磁盤上的文件,這樣做在數據處理的過程中將不需要為所有的文件重新申請并分配緩存,這類緩存操作將由系統直接進行管理,從而大大提高了系統的運行效率。

在處理大數據量的文件時,采用內存映射文件技術與其他數據存儲方式相比,有其顯而易見的優越性,因為在整個過程中將不再需要進行將文件數據加載至內存的操作,也不需要完成將數據從內存回寫至文件和釋放內存塊等操作。

實際應用的系統很少采用單一線程模式運行,一般都是具有數據共享性質的多線程同時工作。共享的數據量小仍可以采取采取靈活多變的處理方式,但是如果共享數據的容量巨大,那么如果不使用內存映射文件技術而過多操作磁盤和內存,將會使系統資源不堪重負。從這一點來說,多線程數據共享處理方法首推內存映射文件技術。

3 內存映射技術運行流程

軟件設計過程中,為了實現一次性存儲大于4GB圖像數據,并保證存儲的實時性,應用內存映射文件處理方式來滿足要求,并在映射中作了特殊處理保證存儲的穩定性。圖1給出了內存映射文件的流程圖。

受Windows系統的限制,一個32位進程最大可分配4GB的虛擬地址空間,實際工程應用過程中不可能將大于這一容量的文件通過一次映射操作就完成存儲。當需要處理的文件容量超過4GB時,就只能將此大文件的各個部分映射到進程的地址空間之后取消映射,然后重新映射文件的下一部分數據。這需要對上面的一般流程進行適當的更改,形成如圖2的大文件內存映射流程圖。

關鍵函數說明:

HANDLE CreateFile()

用途:創建內存映射文件內核對象。

此函數的作用主要是為內存映射文件分配物理磁盤位置,對文件內核對象的訪問類型權限進行設定,主要包括可讀權限、可寫權限、可讀寫權限和設備查詢權限。在此選用可讀寫訪問權限。

HANDLE CreateFileMapping()

用途:在系統中所創建的“文件映射”內核對象保留相應指定容量大小的物理存儲器。

圖1 內存映射文件流程圖

圖2 大文件內存映射流程圖

該函數中的主要參數說明:將要映射到進程的地址空間的文件句柄通過hfile參數指定,其就是之前CreateFile()函數得到的文件句柄。同時,當需要將存儲器映射到進程的地址空間中時,系統首先確認物理存儲器頁面的應被賦予何種保護屬性,而且該屬性必須與CreateFile()函數打開文件時所指定的訪問標識相匹配。

Windows可以采用64位值來進行文件操作,那么就需要劃分一定大小的物理存儲器空間用來存儲內存映射文件,這時可以用2個重要參數“dwMaximumSizeHigh”與“dwMaximumSizeLow”分別指定內存映射文件內核對象大小的高32位值和低32位值。如果將其都設置為0,那么將為創建的“文件映射”內核對象保留與物理文件實際容量相同大小的區域。

關鍵問題是上面2個參數所指定的大小必須是系統最小分配粒度的整數倍,即64KB的整數倍。在某圖像采集系統軟件設計中圖像數據一次性存儲為12GB左右,因此設定15GB的存儲空間,即2個參數分別為0x00000003和0xc0000000。

LPVOID MapViewofFile()

用途:將文件數據映射到分配給進程的地址空間,系統為保留的地址空間提交物理文件的數據。

主要參數說明:通過hFileMappingObject函數指定“文件映射”內核對象句柄。

64位偏移地址的高32位地址和低32位地址通過dw?FileOffsetHigh和dwFileOffsetLow分別進行指定,“文件映像視圖”的首地址就是此64位地址,該地址被存放在“文件映射”內核對象所保留的地址空間中。

視圖容量的大小通過dwNumberofBytesToMap來指定,該值被設置為0時,那么將忽略前面的偏移地址,系統就會把整個文件映射為一個映像。該函數的返回值代表了函數是否得到了執行:如果函數執行成功,則返回一個指針,并且指向映像視圖在進程的地址空間中的起始地址;當返回值是NULL時,則表明函數執行失敗。

在此,視圖的大小也必須為64KB分配粒度的整數倍。采集系統軟件設計中,基于資源利用率及速率方面的考慮,選用64MB為一個視圖大小,即每次映射的內存大小,表示的圖像幀數為64×1 024×1 024/130/128/2=2 048幀。

此外,對于同一個物理文件可以創建多個“文件映像視圖”,而且這些映像在系統中是完全可以共存和重疊的。同時,為同一個物理文件創建“文件映像視圖”也可以由不同的進程完成,出于節約系統資源的目的,該文件映像使用的是同一個物理文件地址空間,從而高效地在多進程間完成數據共享,實現進程通訊的目的。圖3給出了件視圖與物理文件空間之間的關系。

UnmapViewofFile()

用途:通過調用UnmapViewofFile()函數在文件映像數據文件不再使用時得到釋放。在執行該函數操作時,必須在退出進程之前完成,以此防止進程終止后先前保留的區域得不到釋放。

CloseHandle()

用途:該函數執行的是將已創建的內核對象關閉的操作,防止未主動關閉在隨后的程序運行時出現資源泄露。

圖3 文件視圖與物理文件空間之間的關系

已經打開的內核對象需要在使用完畢之后通過CloseHandle()函數將其關閉,這與Win32的大多數對象相同。假如此時不進行關閉對象的操作,那么程序繼續運行將出現資源泄露的現象。那么即使程序退出運行后操作系統會自動關閉在進程中打開而未關閉的任何對象,也會在隨后的進程運行過程中必然不斷積累過多的資源句柄。所以,通過CloseHandle()函數將那些不再使用的內核對象關閉是必須的。

4 存儲效果及特殊處理

實際測試證明,進行大數據文件處理時采用內存映射文件技術具有很好的效果,系統可以能夠穩定存儲數據1h,滿足設計要求。采用此處理方式與通常用CFile類和ReadFile()和WriteFile()等函數的方式相比對系統性能的影響微乎其微,因為其所消耗的物理資源極少。

由于實際應用中圖像數據每次存儲量均不同,可能僅有幾秒鐘的圖像即數十兆的數據量,為了使存儲滿足按需分配,在結束存儲時要進行特殊的處理。圖4給出了實現此要求的主要步驟。

其中,以實際長度創建文件映射中將原文件映射的最終偏移量作為創建映射對象函數的內置參數,即創建了實際大小的文件映射對象。此外,要注意的是每次拷貝的數據量不能太大,最大不要超過進程的可分配地址空間2GB;也不要太小,以免拷貝次數太多,影響系統性能。在本圖像采集系統軟件設計中取320、640、800MB做試驗,發現取640MB為一次拷貝運行良好,對系統性能無太大影響。

圖4 刪除文件處理

[1]張澤清.淺析Windows內存映射文件[J].福建師大福清分校學報,2006(2):20-25.

[2]吳志紅,孫力,閻杰.高速紅外圖像實時采集存儲與顯示技術[J].紅外技術,2003(5):56-59.

Application of Memory Mapping Technology in Large Data Storage

Liu PingJia Linlin
(China Airborne Missile Academy,Luoyang Henan 471009)

The high-speed real-time storage of big data is a problem faced in the process of equipment research and development of an image acquisition,data throughput,in order to solve the problem of parallel processing system more tasks,not the data buffer storage and file I/O operation of the memory mapped file is the most effective method to solve the data sharing between multiple processes.Combined with the actual research for measurement and control equipment,the memory mapping technology operation mechanism and implementation process were further studied, and according to the actual situation of the special treatment to ensure the real-time and stability of data storage.The result of test and control equipment,memory mapping technology shows good performance,to meet the requirements of the data storage system,and compared with other means occupy very little physical resources,will not affect the performance of the system.

memory mapping;large data;multithread;real-time

TP311

:A

:1003-5168(2017)03-0039-03

2017-02-11

劉平(1981-),男,工程師,研究方向:紅外導引總體技術。

猜你喜歡
進程系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 老司国产精品视频91| 国产视频一二三区| 亚洲福利网址| 久久人人爽人人爽人人片aV东京热| 色综合成人| 国产国产人成免费视频77777| 香蕉视频在线观看www| 中文字幕va| 亚洲第一中文字幕| 亚洲欧美日本国产综合在线| 午夜毛片免费看| 亚洲精品国产成人7777| 天天综合天天综合| www.91在线播放| 国产亚洲精品精品精品| 精品国产成人高清在线| 精品福利网| 色哟哟国产精品一区二区| 国产99在线| 亚洲成网站| 在线亚洲天堂| 久久精品人妻中文系列| 国产精品久久自在自线观看| 91探花在线观看国产最新| 呦女精品网站| 精品伊人久久久久7777人| 在线观看视频一区二区| 好吊色妇女免费视频免费| 亚洲日本韩在线观看| 亚洲色图欧美在线| 欧美亚洲国产视频| 久久狠狠色噜噜狠狠狠狠97视色| 免费一级无码在线网站| 欧美日韩国产高清一区二区三区| 国产精品55夜色66夜色| 欧美激情,国产精品| 无码免费的亚洲视频| 97se亚洲综合| 大陆国产精品视频| 狠狠色成人综合首页| www.99精品视频在线播放| 美女啪啪无遮挡| 亚洲91在线精品| 女人毛片a级大学毛片免费| 99热亚洲精品6码| 亚洲第一中文字幕| 91国内在线观看| 亚洲男人在线| 亚洲无码不卡网| 亚洲视频二| 一级不卡毛片| 国产精品亚欧美一区二区| 久久精品电影| 伊人91在线| 成人国产精品视频频| 福利片91| 丰满的熟女一区二区三区l| 亚洲无线国产观看| 国产黄色免费看| 久久伊伊香蕉综合精品| 久久美女精品| 欧美高清三区| 国产后式a一视频| 免费无码又爽又黄又刺激网站| 久久精品国产免费观看频道| 欧美日韩亚洲综合在线观看| 久久窝窝国产精品午夜看片| 亚洲无码37.| 久久人与动人物A级毛片| 亚洲天堂网在线播放| 在线观看91精品国产剧情免费| 免费三A级毛片视频| 成人午夜视频免费看欧美| 99热这里只有精品免费国产| 国产视频a| 久久久成年黄色视频| 亚洲欧美自拍中文| 中文字幕日韩欧美| 素人激情视频福利| 久久亚洲日本不卡一区二区| 国产视频a| 无码精品一区二区久久久|