亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        內(nèi)存映射技術(shù)在大數(shù)據(jù)實(shí)時(shí)存儲(chǔ)中的應(yīng)用

        2017-05-30 10:48:04劉平賈林林
        河南科技 2017年5期
        關(guān)鍵詞:多線程實(shí)時(shí)大數(shù)據(jù)

        劉平 賈林林

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

        關(guān)鍵詞:內(nèi)存映射;大數(shù)據(jù);多線程;實(shí)時(shí)

        中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1003-5168(2017)03-0039-03

        Abstract: 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.

        Keywords: memory mapping;large data;multithread;real-time

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

        通過設(shè)計(jì)專門的內(nèi)存映射機(jī)制實(shí)現(xiàn)高速實(shí)時(shí)的紅外圖像實(shí)時(shí)存儲(chǔ),可以解決大數(shù)據(jù)量的實(shí)時(shí)存儲(chǔ)問題。同時(shí),該設(shè)計(jì)具備的高效率與高可靠性,也能夠滿足整個(gè)系統(tǒng)的其他要求。

        1 內(nèi)存映射存儲(chǔ)特點(diǎn)

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

        2 內(nèi)存映射技術(shù)實(shí)現(xiàn)機(jī)制

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

        內(nèi)存映射技術(shù)最大的優(yōu)點(diǎn)在于,不對(duì)文件執(zhí)行I/O操作就能處理存儲(chǔ)于磁盤上的文件,這樣做在數(shù)據(jù)處理的過程中將不需要為所有的文件重新申請(qǐng)并分配緩存,這類緩存操作將由系統(tǒng)直接進(jìn)行管理,從而大大提高了系統(tǒng)的運(yùn)行效率。

        在處理大數(shù)據(jù)量的文件時(shí),采用內(nèi)存映射文件技術(shù)與其他數(shù)據(jù)存儲(chǔ)方式相比,有其顯而易見的優(yōu)越性,因?yàn)樵谡麄€(gè)過程中將不再需要進(jìn)行將文件數(shù)據(jù)加載至內(nèi)存的操作,也不需要完成將數(shù)據(jù)從內(nèi)存回寫至文件和釋放內(nèi)存塊等操作。

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

        3 內(nèi)存映射技術(shù)運(yùn)行流程

        軟件設(shè)計(jì)過程中,為了實(shí)現(xiàn)一次性存儲(chǔ)大于4GB圖像數(shù)據(jù),并保證存儲(chǔ)的實(shí)時(shí)性,應(yīng)用內(nèi)存映射文件處理方式來滿足要求,并在映射中作了特殊處理保證存儲(chǔ)的穩(wěn)定性。圖1給出了內(nèi)存映射文件的流程圖。

        受Windows系統(tǒng)的限制,一個(gè)32位進(jìn)程最大可分配4GB的虛擬地址空間,實(shí)際工程應(yīng)用過程中不可能將大于這一容量的文件通過一次映射操作就完成存儲(chǔ)。當(dāng)需要處理的文件容量超過4GB時(shí),就只能將此大文件的各個(gè)部分映射到進(jìn)程的地址空間之后取消映射,然后重新映射文件的下一部分?jǐn)?shù)據(jù)。這需要對(duì)上面的一般流程進(jìn)行適當(dāng)?shù)母?,形成如圖2的大文件內(nèi)存映射流程圖。

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

        Windows可以采用64位值來進(jìn)行文件操作,那么就需要?jiǎng)澐忠欢ù笮〉奈锢泶鎯?chǔ)器空間用來存儲(chǔ)內(nèi)存映射文件,這時(shí)可以用2個(gè)重要參數(shù)“dwMaximumSizeHigh”與“dwMaximumSizeLow”分別指定內(nèi)存映射文件內(nèi)核對(duì)象大小的高32位值和低32位值。如果將其都設(shè)置為0,那么將為創(chuàng)建的“文件映射”內(nèi)核對(duì)象保留與物理文件實(shí)際容量相同大小的區(qū)域。

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

        已經(jīng)打開的內(nèi)核對(duì)象需要在使用完畢之后通過CloseHandle()函數(shù)將其關(guān)閉,這與Win32的大多數(shù)對(duì)象相同。假如此時(shí)不進(jìn)行關(guān)閉對(duì)象的操作,那么程序繼續(xù)運(yùn)行將出現(xiàn)資源泄露的現(xiàn)象。那么即使程序退出運(yùn)行后操作系統(tǒng)會(huì)自動(dòng)關(guān)閉在進(jìn)程中打開而未關(guān)閉的任何對(duì)象,也會(huì)在隨后的進(jìn)程運(yùn)行過程中必然不斷積累過多的資源句柄。所以,通過CloseHandle()函數(shù)將那些不再使用的內(nèi)核對(duì)象關(guān)閉是必須的。

        4 存儲(chǔ)效果及特殊處理

        實(shí)際測試證明,進(jìn)行大數(shù)據(jù)文件處理時(shí)采用內(nèi)存映射文件技術(shù)具有很好的效果,系統(tǒng)可以能夠穩(wěn)定存儲(chǔ)數(shù)據(jù)1h,滿足設(shè)計(jì)要求。采用此處理方式與通常用CFile類和ReadFile()和WriteFile()等函數(shù)的方式相比對(duì)系統(tǒng)性能的影響微乎其微,因?yàn)槠渌牡奈锢碣Y源極少。

        由于實(shí)際應(yīng)用中圖像數(shù)據(jù)每次存儲(chǔ)量均不同,可能僅有幾秒鐘的圖像即數(shù)十兆的數(shù)據(jù)量,為了使存儲(chǔ)滿足按需分配,在結(jié)束存儲(chǔ)時(shí)要進(jìn)行特殊的處理。圖4給出了實(shí)現(xiàn)此要求的主要步驟。

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

        參考文獻(xiàn):

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

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

        猜你喜歡
        多線程實(shí)時(shí)大數(shù)據(jù)
        Java并發(fā)工具包對(duì)并發(fā)編程的優(yōu)化
        基于多線程文件傳輸關(guān)鍵技術(shù)研究與實(shí)現(xiàn)
        一種改進(jìn)的混音算法的研究與實(shí)現(xiàn)
        基于大數(shù)據(jù)背景下的智慧城市建設(shè)研究
        科技視界(2016年20期)2016-09-29 10:53:22
        等公交,從“實(shí)時(shí)”開始
        人民周刊(2016年15期)2016-09-28 09:18:50
        基于GNSS實(shí)時(shí)在線監(jiān)測技術(shù)在天津市大型水工建筑位移監(jiān)測的關(guān)鍵技術(shù)研究
        網(wǎng)頁爬蟲技術(shù)的關(guān)鍵技術(shù)研究探索
        一種基于多線程的高速磁盤鏡像算法
        一種基于鼠標(biāo)定位原理的單目視覺定位技術(shù)
        科技視界(2016年7期)2016-04-01 11:30:10
        天天摸天天做天天爽水多| 资源在线观看视频一区二区| 蜜桃av一区二区三区| 亚洲色图在线免费观看视频| 亚洲日韩图片专区小说专区| 亚洲av午夜福利精品一区二区| 国产精品一区二区熟女不卡| 久久综合亚洲色一区二区三区| 国产成人亚洲精品青草天美| 国产人妖视频一区二区| 精品久久久久久国产潘金莲| 全部亚洲国产一区二区| 美女露内裤扒开腿让男人桶无遮挡| 老少交欧美另类| 第九色区Aⅴ天堂| 亚洲精品中文字幕导航| 国产av无码专区亚洲av蜜芽| 亚欧AV无码乱码在线观看性色| 人妻av午夜综合福利视频| 日本一区二区三区亚洲| 无码人妻丰满熟妇啪啪网不卡| 真实国产老熟女粗口对白| 人妻人妻少妇在线系列| 亚洲av天堂在线免费观看| 在厨房被c到高潮a毛片奶水| 欧美日本国产va高清cabal| 蜜芽尤物原创AV在线播放| 亚洲一区二区三区av资源| 欧美性xxxx极品高清| 精品十八禁免费观看| 三级日本午夜在线观看| 亚洲国产精品久久久久久无码| 国产又色又爽无遮挡免费| av无码特黄一级| 亚洲一区二区三区国产| 日夜啪啪一区二区三区| 美女污污网站| 国产精品毛片一区二区三区| 国产二区交换配乱婬| 国产欧美精品在线一区二区三区| 青青草在线成人免费视频|