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精品国产自产在线老师啪l| 最近最新中文字幕在线第一页| 亚洲天堂视频在线观看| 日韩欧美高清视频| 91久草视频| 青青草一区二区免费精品| 久久99蜜桃精品久久久久小说| 中文字幕日韩丝袜一区| 女同久久精品国产99国| 在线国产毛片| 色综合国产| 五月婷婷欧美| 久久精品人人做人人综合试看 | a毛片在线播放| 成人看片欧美一区二区| 亚洲色图在线观看| 国产真实乱了在线播放| 国产又大又粗又猛又爽的视频| 亚洲码在线中文在线观看| 青青网在线国产| 国产在线观看91精品亚瑟| 国产在线无码一区二区三区| 亚洲一区网站| 亚洲色无码专线精品观看| 18禁黄无遮挡免费动漫网站| 色婷婷综合在线| 亚洲精品视频免费观看| 欧美成人午夜视频免看| 亚洲无码高清一区| 精品一区二区久久久久网站| 国产AV无码专区亚洲A∨毛片| 福利视频久久| 国产主播喷水| 欧美a√在线| 99免费在线观看视频| 亚洲精品你懂的| 日韩小视频在线播放| 国产高清毛片| 国产无遮挡猛进猛出免费软件| 一级毛片网| 九九免费观看全部免费视频| 国产综合另类小说色区色噜噜| 有专无码视频| 久久精品亚洲中文字幕乱码| 国产靠逼视频| 欧美在线导航| 久久亚洲高清国产| 国产无码精品在线| 精品无码专区亚洲| 2048国产精品原创综合在线| 亚洲天堂.com| 国产一在线观看| 91无码网站| 久久精品视频一| 久久精品亚洲专区| 男人天堂亚洲天堂| 欧美不卡二区| 日韩在线永久免费播放| 国产在线98福利播放视频免费| 久无码久无码av无码| 亚洲日韩高清在线亚洲专区| 久久人人97超碰人人澡爱香蕉| 91av成人日本不卡三区| 蜜臀av性久久久久蜜臀aⅴ麻豆| www.youjizz.com久久| 亚洲欧美日韩精品专区| 欧美精品v| 久久国产精品波多野结衣| 毛片在线看网站| 久久性妇女精品免费| 国产特级毛片aaaaaaa高清| 精品国产一区二区三区在线观看| 精品1区2区3区| 四虎国产永久在线观看| 国产精品美女在线| 伊人狠狠丁香婷婷综合色| 狠狠v日韩v欧美v|