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

        ?

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

        2010-06-13 02:11:06
        科技傳播 2010年19期
        關(guān)鍵詞:信號量共享內(nèi)存硬盤

        張 乾

        同濟(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ù):信號量、消息隊(duì)列、共享內(nèi)存和socket。信號量是初始值非負(fù)的整數(shù)值,在信號量上的操作只有兩種:加和減,在操作中要保證信號量一直非負(fù)[2]。消息隊(duì)列是一個消息鏈表,具有添加消息權(quán)限的進(jìn)程可以向其添加消息,有獲取消息權(quán)限的進(jìn)程可以從其中取得消息。由于消息隊(duì)列比信號量的信息更為豐富,所以可以用于更復(fù)雜的情況[3]。共享內(nèi)存技術(shù)則是開辟一塊特殊內(nèi)存區(qū)域,使得不同進(jìn)程可以共享這塊內(nèi)存進(jìn)行讀寫操作,其優(yōu)勢在于通過共享內(nèi)存進(jìn)程間可以交換大批量數(shù)據(jù)。Socket編程是不同機(jī)器進(jìn)程間通信的基本方法,當(dāng)然也可用于同一機(jī)器的進(jìn)程間通信。

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

        在多任務(wù)操作系統(tǒng)中,進(jìn)程的地址空間是相對獨(dú)立的,相互并不影響,就是說相同的一個地址,在不同的進(jìn)程中,對應(yīng)有不同的數(shù)據(jù)。這樣每個進(jìn)程的地址空間就變大了,而且安全性也提高了。進(jìn)程的地址空間是虛擬的地址空間,在讀寫內(nèi)存時(shí),需要內(nèi)存管理單元(MMU)將虛擬內(nèi)存映射到實(shí)際的物理內(nèi)存。但是,當(dāng)進(jìn)程間需要交換大量數(shù)據(jù)時(shí),需要多個進(jìn)程使用同一塊物理內(nèi)存,而不是每個進(jìn)程都保留共享數(shù)據(jù)的一個拷貝。這個功能的實(shí)現(xiàn)是通過將不同進(jìn)程的虛擬內(nèi)存頁映射到同一個實(shí)際內(nèi)存頁上。不同的操作系統(tǒng)提供了不同的API函數(shù)實(shí)現(xiàn)共享內(nèi)存的操作。在linux下主要有有兩個函數(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)程保證并行操作,這便需要這多個進(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ù)仍然要存儲于硬盤上,實(shí)例所用數(shù)據(jù)均存儲于一個文件內(nèi),文件格式則是程序中既定的。在啟動數(shù)據(jù)庫時(shí),整個文件將被加載到內(nèi)存中。加載結(jié)束后,后臺讀寫進(jìn)程啟動。每個進(jìn)程啟動后,都將用共享內(nèi)存映射函數(shù)將進(jìn)程地址映射到內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)地址。這樣,這些進(jìn)程將同時(shí)操作一塊內(nèi)存,而不是每個進(jìn)程都有一個數(shù)據(jù)拷貝。至于讀寫的同步問題,數(shù)據(jù)文件中設(shè)置有一個位圖,用來監(jiān)控內(nèi)存中數(shù)據(jù)的可用信息。當(dāng)進(jìn)程需要讀寫內(nèi)存數(shù)據(jù)時(shí),首先將查看位圖,以找出數(shù)據(jù)可用與否的信息,然后再進(jìn)行真實(shí)讀取。位圖信息的同步則通過信號量來控制。

        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

        猜你喜歡
        信號量共享內(nèi)存硬盤
        基于STM32的mbedOS信號量調(diào)度機(jī)制剖析
        HiFi級4K硬盤播放機(jī) 億格瑞A15
        Egreat(億格瑞)A10二代 4K硬盤播放機(jī)
        通過QT實(shí)現(xiàn)進(jìn)程間的通信
        Nucleus PLUS操作系統(tǒng)信號量機(jī)制的研究與測試
        基于PCI總線的多處理器協(xié)同機(jī)制研究
        我區(qū)電視臺對硬盤播出系統(tǒng)的應(yīng)用
        QNX下PEX8311多路實(shí)時(shí)數(shù)據(jù)采集的驅(qū)動設(shè)計(jì)
        電子世界(2014年21期)2014-04-29 06:41:36
        一種高效RTAI 共享內(nèi)存管理層的研究與實(shí)現(xiàn)*
        μC/OS- -III對信號量的改進(jìn)
        国产一区二区精品在线观看| 亚洲男人在线天堂av| 日韩美女av一区二区三区四区| 校园春色日韩高清一区二区| 又粗又黄又猛又爽大片app| 成片免费观看视频大全| 中文在线а√天堂官网| 日韩中文字幕网站| 少妇被粗大猛进进出出男女片| 久久亚洲道色综合久久| 亚洲av福利无码无一区二区 | 香蕉亚洲欧洲在线一区| 大尺度极品粉嫩嫩模免费| 黄片视频免费在线观看国产| 美丽人妻在夫前被黑人| 亚洲一区爱区精品无码| 国产亚洲精品综合在线网址| 漂亮的小少妇诱惑内射系列| 蜜桃av一区二区三区久久| 美利坚合众国亚洲视频| 亚洲小说区图片区色综合网| 日韩国产成人无码av毛片蜜柚| 极品粉嫩嫩模大尺度无码| 日韩精品一区二区三区中文9| 男女啪啪在线视频网站| 国产精品av在线| 996久久国产精品线观看| 久久激情人妻中文字幕| 虎白女粉嫩粉嫩的18在线观看| 久久久久久人妻无码| 国产男女猛烈视频在线观看| 亚洲AⅤ永久无码精品AA| 国产91精品清纯白嫩| 亚洲欧洲av综合色无码| 久久精品国产亚洲av高清漫画 | 午夜国产精品视频在线观看| 女人被弄到高潮的免费视频| 久久无码av三级| 538在线视频| 美丽的小蜜桃在线观看| av无码av天天av天天爽|