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

        ?

        淺談嵌入式開發(fā)環(huán)境WinCE.net的內存管理

        2009-01-06 04:55:38張德迪
        數(shù)字技術與應用 2009年11期

        張德迪

        [摘 要]Windows CE是一種嵌入式實時性的操作系統(tǒng),在內存管理方面必須要比其它Windows操作系統(tǒng)更節(jié)約物理內存和虛擬地址空間。

        [關鍵詞]Windows CE 內存管理

        [中圖分類號]TP311 [文獻標識碼]A[文章編號]1007-9416(2009)11-0022-01

        Windows CE.NET支持32位虛擬內存機制、按需分配內存和內存映射文件,但是與其它Windows操作系統(tǒng)又有明顯的不同。畢竟Windows CE是一種嵌入式實時性的操作系統(tǒng),在內存管理方面必須要比其它Windows操作系統(tǒng)更節(jié)約物理內存和虛擬地址空間。

        對于早期采用的存儲設備一般采用ROM+RAM,在ROM中存放的所有文件可以是壓縮的也可以是不壓縮的,這取決于OEM(原始設備制造商)。OEM在定制CE內核時可以設置一個標志告訴ROM鏡像制作工具(romimage.exe)是否壓縮文件。對于ROM中存放的模塊(DLL、EXE文件)來說,如果是壓縮的,模塊在運行前先解壓=并全部存放到RAM中。如果是不壓縮的,并且ROM介質支持線性訪問(line-accessed),就可以本地執(zhí)行(executed in place,縮寫為XIP)。利用本地執(zhí)行方式運行應用程序、DLL的優(yōu)點是:采用這種技術在加載EXE或DLL時,其中的代碼段數(shù)據(jù)不加載到物理內存中,內核只是分配虛擬地址空間給代碼段,當執(zhí)行代碼時內核會到實際存放在ROM存儲設備上的文件中尋找代碼并執(zhí)行。采用這樣的技術既可以節(jié)省可用內存又可以減少加載的時間。但是這種技術有一定的局限性,如果要讓CPU到ROM中去尋找代碼執(zhí)行,那么ROM介質必須支持線性訪問,這就要求ROM介質支持線性訪問,而不是塊訪問。XIP這種加載方式的缺點是執(zhí)行速度相對較慢,CPU訪問ROM的速度要慢于訪問RAM的速度。

        基于Windows CE的產品開始采用FLASH、IDE等永久存儲設備時,內核鏡像和其它應用程序文件開始存放到永久存儲設備中而不是ROM中,這不僅僅是因為硬盤或者FLASH的I/O速度比ROM快,更因為現(xiàn)在的內核包含的功能多并且文件數(shù)量增加,因而需要的存儲空間很大,一般都在20MB左右。再加上其它開發(fā)商開發(fā)的應用程序文件,要求的空間就更大了。CE啟動時內核鏡像由加載程序解壓并將系統(tǒng)文件加載到RAM的NK,NK是在config.bib中定義的一段RAM區(qū)域,專用于保存內核鏡像解壓出來的所有文件。Windows CE將NK看作是ROM,當執(zhí)行一個應用程序時,CE內核將這個應用程序需要的系統(tǒng)DLL(在NK中保存)加載到Slot 1(地址范圍0x0200 0000-0x03FF FFFF,在Windows CE.NET中Slot 1專用于XIP DLL使用)。Slot 1是一段虛擬地址,當CPU執(zhí)行DLL的代碼時,CPU會根據(jù)地址映射關系到NK中尋找實際的代碼執(zhí)行,因為NK是一段實際的物理內存,I/O速度非常快,所以相對于在ROM中執(zhí)行,DLL的運行效率得到很大提高。

        RAM和ROM文件系統(tǒng)是Windows CE默認的文件系統(tǒng)。RAM文件系統(tǒng)的優(yōu)點是支持文件壓縮、支持事務機制(和數(shù)據(jù)庫中的事務機制相似)、數(shù)據(jù)I/O較快。Windows CE.NET啟動時把除了NK以外的RAM分為對象存儲(object store)區(qū)域和應用程序內存(program memory)區(qū)域,并且默認各使用一半RAM。在基于Windows CE的設備沒有采用永久存儲器之前,對象存儲的作用相當于永久存儲器,對象存儲區(qū)域采用RAM文件系統(tǒng)來保存文件,對象存儲中可以存儲的對象類型有文件、目錄、數(shù)據(jù)庫、記錄、數(shù)據(jù)庫卷。默認在對象存儲中存儲的對象全部是壓縮的。當整個系統(tǒng)關閉時,設備的電源還繼續(xù)提供電力給RAM,這樣對象存儲中保存的所有數(shù)據(jù)就不會丟失。應用程序內存區(qū)域留給所有應用程序運行時使用?;赪indows CE的設備采用永久存儲器后,對象存儲的作用就被永久存儲器替代了,所以采用永久存儲器后,應該減小對象存儲區(qū)域的大小。如果定制的Windows CE的內核包含了資源管理器,那么打開“控制面板”,在“系統(tǒng)”-“內存”中,可以調節(jié)這兩個存儲區(qū)域的比例?;瑝K向左,則釋放對象存儲區(qū)域的一些可用內存并將這些內存劃到應用程序內存區(qū)域中。滑塊向右則相反。

        Windows CE.NET只能管理512MB的物理內存和4GB大小的虛擬地址空間。不同的CPU內存管理方法也不同。對于MIPS和SHX系列CPU來說,物理地址映射是由CPU完成的,CE內核可以直接訪問512MB的物理內存。對于x86系列和ARM系列的CPU來說,在內核啟動過程中它會將現(xiàn)有物理內存地址全部映射到0x8000 0000以上的虛擬地址空間中供內核以后使用。OEM可以通過OEMAddressTable來詳細定義虛擬地址和物理地址的映射關系。OEMAddressTable本身并不是一個文件,它只是存在于其它文件中描述虛擬地址和實際物理地址的映射關系的數(shù)據(jù)。比如文件oem init.asm中包含一段代碼:dd 80000000h, 0, 04000000h。它表示將整個物理地址(0x0400 0000=64MB)共64MB映射到虛擬地址從0x8000 0000到0x8400 0000中。

        當一個應用程序啟動時,內核為這個程序選擇一個空閑的槽(Slot),并且加載所有的代碼、資源,并分配堆棧,加載DLL等。當這個進程得到CPU使用權時,它的整個地址空間被內核映射到Slot0,也就是當前進程使用的地址空間,然后開始運行。圖中給出的地址實際上是經(jīng)過映射到Slot 0之后的結構。從圖中可以看出,進程首先加載代碼段,因為每個進程最低部64KB作為保留區(qū)域,所以代碼段從0x0001 0000開始,內核為代碼段分配足夠的虛擬地址空間后,接著分配空間為只讀數(shù)據(jù)和可讀/可寫數(shù)據(jù),接著分配空間為資源數(shù)據(jù),之后分配空間為默認堆和棧。非XIP DLL從進程最高地址向下開始加載。非XIP DLL的加載按如下規(guī)則:內核先檢查要加載的DLL是否被其它進程加載過,如果加載過,就做一個地址的重定位。這樣就避免了整個系統(tǒng)內多次加載相同DLL。如果沒有加載過,就按照從槽的高地址到槽的低地址的順序查找空閑地址空間。然后分配足夠的地址空間用于加載DLL。因為每個進程在執(zhí)行前都要映射到Slot 0,而且進程使用的所有DLL可能來自不同的槽(Slot),為避免所有使用的DLL在映射到Slot 0中出現(xiàn)地址空間沖突的現(xiàn)象,內核的加載器(Loader)在加載DLL時會查找所有槽中加載的DLL的地址,保證在映射到Slot 0時不會發(fā)生地址沖突。假如系統(tǒng)內有兩個進程,進程A只加載了DLL A,進程B需要加載DLL A和DLL B,那么進程B會留出DLL A的地址空間,然后加載DLL B,也就是說進程B映射到Slot 0時,DLL A的地址空間和DLL B的地址空間是相鄰的,不會發(fā)生沖突。實際情況是Windows CE下DLL都很小,而且一個應用程序使用DLL多數(shù)是系統(tǒng)的DLL(存在于Slot 1)。所以目前來看進程的地址空間是夠用的。

        [參考文獻]

        [1]基于Windows CE 平臺的嵌入式GIS 開發(fā)與應用,河南,2003.

        [2]劉文峰,李程遠,李善平.D嵌入式L inux 操作系統(tǒng)的研究.

        [3]錢靜,蘆東昕.嵌入式軟件虛擬內存管理技術的研究和實現(xiàn),2008.

        [4]付曉軍,夏應清,何軒.嵌入式LwIP協(xié)議棧的內存管理,湖北,2008.

        岛国av无码免费无禁网站下载| 成人国产激情自拍视频| 成人片黄网站a毛片免费| 无码ol丝袜高跟秘书在线观看 | 无码毛片高潮一级一免费| 亚洲成生人免费av毛片| 色吧噜噜一区二区三区| 日本老熟妇乱| 亚洲七七久久综合桃花| 丰满人妻一区二区三区免费| 亚洲国产精品av在线| 人妻激情另类乱人伦人妻| 日韩中文字幕不卡网站| 日本熟女视频一区二区三区| 成年美女黄网站色大免费视频| 蜜臀av 国内精品久久久| 国内精品一区二区2021在线| 国产精品黄色在线观看| 免费成人电影在线观看| 精品无码人妻一区二区三区| avtt一区| 亚洲一区二区三区日韩在线观看| 亚洲国产成人av在线观看| 久久久精品免费观看国产| 亚洲区1区3区4区中文字幕码| 亚洲综合中文字幕综合| 国产成人无码一区二区在线播放 | 国产欧美久久久另类精品| 亚洲天堂一区二区三区视频| 风韵丰满熟妇啪啪区老老熟妇| 国产99视频精品免视看9| 亚洲一级电影在线观看| 日本人妻高清免费v片| 免费人成在线观看网站| 国产女人18毛片水真多| 国产精品女同一区二区久| 91精品亚洲成人一区二区三区| 亚洲日本在线电影| 精品的一区二区三区| 中文字幕精品一区二区的区别 | 久久国产精品二国产精品|