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

共享內(nèi)存在內(nèi)存數(shù)據(jù)庫系統(tǒng)中的應(yīng)用

2010-06-13 02:11:06
科技傳播 2010年19期
關(guān)鍵詞:進(jìn)程數(shù)據(jù)庫

張 乾

同濟(jì)大學(xué)軟件學(xué)院,上海 201804

共享內(nèi)存在內(nèi)存數(shù)據(jù)庫系統(tǒng)中的應(yīng)用

張 乾

同濟(jì)大學(xué)軟件學(xué)院,上海 201804

共享內(nèi)存是進(jìn)程間通信的重要手段之一,并在實(shí)際中得到了廣泛應(yīng)用。本文將介紹不共享內(nèi)存的原理和內(nèi)存數(shù)據(jù)庫的相關(guān)概念,并用內(nèi)存數(shù)據(jù)庫給出共享內(nèi)存的應(yīng)用實(shí)例。

共享內(nèi)存;內(nèi)存數(shù)據(jù)庫;進(jìn)程通信

0 引言

計(jì)算機(jī)硬件的快速發(fā)展帶來了多核技術(shù),這使得并行編程真正得以實(shí)現(xiàn)[1]。為了使并行編程模型中的各進(jìn)程相互協(xié)作,目前有如下幾種技術(shù):信號(hào)量、消息隊(duì)列、共享內(nèi)存和socket。信號(hào)量是初始值非負(fù)的整數(shù)值,在信號(hào)量上的操作只有兩種:加和減,在操作中要保證信號(hào)量一直非負(fù)[2]。消息隊(duì)列是一個(gè)消息鏈表,具有添加消息權(quán)限的進(jìn)程可以向其添加消息,有獲取消息權(quán)限的進(jìn)程可以從其中取得消息。由于消息隊(duì)列比信號(hào)量的信息更為豐富,所以可以用于更復(fù)雜的情況[3]。共享內(nèi)存技術(shù)則是開辟一塊特殊內(nèi)存區(qū)域,使得不同進(jìn)程可以共享這塊內(nèi)存進(jìn)行讀寫操作,其優(yōu)勢(shì)在于通過共享內(nèi)存進(jìn)程間可以交換大批量數(shù)據(jù)。Socket編程是不同機(jī)器進(jìn)程間通信的基本方法,當(dāng)然也可用于同一機(jī)器的進(jìn)程間通信。

1 共享內(nèi)存的原理

在多任務(wù)操作系統(tǒng)中,進(jìn)程的地址空間是相對(duì)獨(dú)立的,相互并不影響,就是說相同的一個(gè)地址,在不同的進(jìn)程中,對(duì)應(yīng)有不同的數(shù)據(jù)。這樣每個(gè)進(jìn)程的地址空間就變大了,而且安全性也提高了。進(jìn)程的地址空間是虛擬的地址空間,在讀寫內(nèi)存時(shí),需要內(nèi)存管理單元(MMU)將虛擬內(nèi)存映射到實(shí)際的物理內(nèi)存。但是,當(dāng)進(jìn)程間需要交換大量數(shù)據(jù)時(shí),需要多個(gè)進(jìn)程使用同一塊物理內(nèi)存,而不是每個(gè)進(jìn)程都保留共享數(shù)據(jù)的一個(gè)拷貝。這個(gè)功能的實(shí)現(xiàn)是通過將不同進(jìn)程的虛擬內(nèi)存頁映射到同一個(gè)實(shí)際內(nèi)存頁上。不同的操作系統(tǒng)提供了不同的API函數(shù)實(shí)現(xiàn)共享內(nèi)存的操作。在linux下主要有有兩個(gè)函數(shù):

其中,mmap函數(shù)用于創(chuàng)建共享內(nèi)存,munmap則是取消共享內(nèi)存的映射。在windows下創(chuàng)建共享內(nèi)存、解除內(nèi)存映射則分別用CreateFileMapping和UnmapViewOfFile函數(shù)[4]。在.net framework下,沒有API用于內(nèi)存映射,所以,需要在.net代碼中調(diào)用以上所列c函數(shù),完成內(nèi)存映射。

2 內(nèi)存數(shù)據(jù)庫介紹

內(nèi)存數(shù)據(jù)庫就是將數(shù)據(jù)放入內(nèi)存中直接操作的數(shù)據(jù)庫,與傳統(tǒng)的數(shù)據(jù)庫有很大不同,主要在于傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)主要存在硬盤上,而內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)主要存放于內(nèi)存中。因?yàn)橛脖P的io讀寫速度遠(yuǎn)慢于cpu和內(nèi)存讀寫,因此,傳統(tǒng)數(shù)據(jù)庫在讀寫方面的主要研究點(diǎn)在于盡量減少硬盤的讀寫次數(shù),而內(nèi)存數(shù)據(jù)庫的主要研究點(diǎn)在于快速算法、并行操作等保證實(shí)時(shí)性數(shù)據(jù)存取方面。

3 共享內(nèi)存在內(nèi)存數(shù)據(jù)庫系統(tǒng)中的應(yīng)用實(shí)例

內(nèi)存數(shù)據(jù)庫用多進(jìn)程保證并行操作,這便需要這多個(gè)進(jìn)程共享內(nèi)存中的數(shù)據(jù),而數(shù)據(jù)庫數(shù)據(jù)通常是龐大的,因此共享內(nèi)存在內(nèi)存數(shù)據(jù)庫中有很好的應(yīng)用價(jià)值。在內(nèi)存數(shù)據(jù)庫中應(yīng)用共享內(nèi)存進(jìn)行數(shù)據(jù)的加載與共享操作如圖1所示。

圖 1 內(nèi)存數(shù)據(jù)庫中共享內(nèi)存的使用

內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)仍然要存儲(chǔ)于硬盤上,實(shí)例所用數(shù)據(jù)均存儲(chǔ)于一個(gè)文件內(nèi),文件格式則是程序中既定的。在啟動(dòng)數(shù)據(jù)庫時(shí),整個(gè)文件將被加載到內(nèi)存中。加載結(jié)束后,后臺(tái)讀寫進(jìn)程啟動(dòng)。每個(gè)進(jìn)程啟動(dòng)后,都將用共享內(nèi)存映射函數(shù)將進(jìn)程地址映射到內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)地址。這樣,這些進(jìn)程將同時(shí)操作一塊內(nèi)存,而不是每個(gè)進(jìn)程都有一個(gè)數(shù)據(jù)拷貝。至于讀寫的同步問題,數(shù)據(jù)文件中設(shè)置有一個(gè)位圖,用來監(jiān)控內(nèi)存中數(shù)據(jù)的可用信息。當(dāng)進(jìn)程需要讀寫內(nèi)存數(shù)據(jù)時(shí),首先將查看位圖,以找出數(shù)據(jù)可用與否的信息,然后再進(jìn)行真實(shí)讀取。位圖信息的同步則通過信號(hào)量來控制。

4 結(jié)論

內(nèi)存數(shù)據(jù)庫因?yàn)槠鋵?shí)時(shí)性被用于嵌入式系統(tǒng)、電信計(jì)費(fèi)、股票交易等行業(yè)領(lǐng)域,并取得了良好的效果。內(nèi)存數(shù)據(jù)庫的概念出現(xiàn)在20世紀(jì)90年代,目前已經(jīng)有較為成熟的內(nèi)存數(shù)據(jù)庫產(chǎn)品產(chǎn)生,如oracle的TimesTen。但是商業(yè)內(nèi)存數(shù)據(jù)庫的價(jià)格昂貴,而且內(nèi)存數(shù)據(jù)庫技術(shù)仍在發(fā)展階段。因此,進(jìn)行內(nèi)存數(shù)據(jù)庫的研究和探索還是很有意義的。

[1]Dagum L,Menon R.IEEE COMPUTATIONAL SCIENCE & ENGINEERING.CA 94043 USA: IEEE COMPUTER SOC,1998.

[2]S.Rao Kosaraju.LIMITATIONS OF DIJKSTRA’S SEMAPHORE PRIMITIVES AND PETRI NETS[J].ACM SIGOPS Operating Systems Review,1973,7(4):122-126.

[3]William Gropp,Ewing Lusk,Anthony Skjellum.Using MPI:portable parallel programming with the message passing interface[M].The MIT Press,1999:3-11.

[4]Jeffery Richter. Windows 核心編程[M].北京:機(jī)械工 業(yè)出版社,2008:416-459.

TP392

A

1674-6708(2010)28-0213-01

猜你喜歡
進(jìn)程數(shù)據(jù)庫
債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
我國高等教育改革進(jìn)程與反思
Linux僵死進(jìn)程的產(chǎn)生與避免
男女平等進(jìn)程中出現(xiàn)的新矛盾和新問題
俄羅斯現(xiàn)代化進(jìn)程的阻礙
主站蜘蛛池模板: 日本国产精品一区久久久| 亚洲日韩精品无码专区97| 天堂在线www网亚洲| 日本高清视频在线www色| 丁香六月综合网| 免费Aⅴ片在线观看蜜芽Tⅴ | 99久久国产自偷自偷免费一区| 无码高潮喷水专区久久| 久久国产拍爱| 六月婷婷精品视频在线观看| 免费高清毛片| 凹凸精品免费精品视频| 69国产精品视频免费| 国产精品吹潮在线观看中文| 国产在线视频二区| 国产农村精品一级毛片视频| 国产香蕉97碰碰视频VA碰碰看 | 国产精品亚洲一区二区在线观看| 国产精品福利社| 亚洲欧洲日产国码无码av喷潮| 免费人成在线观看成人片| 欧美日韩高清在线| 少妇人妻无码首页| 狠狠v日韩v欧美v| 日韩第一页在线| 国产成人凹凸视频在线| 99久久婷婷国产综合精| 欧美区国产区| 中文字幕在线一区二区在线| AV不卡在线永久免费观看| 一级不卡毛片| 日韩成人在线视频| 亚洲最新在线| 日韩在线成年视频人网站观看| 国产成人精品一区二区不卡| 国产精品无码在线看| 国产99视频精品免费观看9e| 欧美专区在线观看| 日韩在线永久免费播放| 激情六月丁香婷婷| 高清精品美女在线播放| 欧美日韩国产高清一区二区三区| 欧美午夜小视频| 9丨情侣偷在线精品国产| 男女男精品视频| 青青网在线国产| 色婷婷成人| 亚洲av日韩av制服丝袜| 大香伊人久久| 国产电话自拍伊人| 欧美a√在线| 午夜国产小视频| 亚洲最新地址| 免费亚洲成人| 久久99国产视频| 无码久看视频| 中国成人在线视频| 欧美有码在线| 亚洲天堂网2014| 国产日韩丝袜一二三区| 国产精品第一区在线观看| 毛片免费观看视频| 国产成人高清亚洲一区久久| 波多野结衣一区二区三区AV| 99这里只有精品在线| 高清国产在线| 一级毛片在线免费视频| 中文字幕第1页在线播| 国产尤物视频网址导航| 夜夜操天天摸| 97在线免费| 毛片免费在线| 国产成人精品在线| 黄色污网站在线观看| 日本人又色又爽的视频| 国产爽妇精品| 中文字幕亚洲精品2页| 亚洲69视频| 久久黄色一级片| 午夜不卡视频| 色婷婷视频在线| 色婷婷在线播放|