wince 6.0
是乙個32
位的作業系統,提供了
4gb的虛擬位址空間,其中系統核心使用高區的
2gb,
使用者程序使用低區的
2gb。我們的記憶體管理單元(
memory management unit
)用來管理虛擬記憶體和實際物理記憶體的對映。
在wince 6.0
中,虛擬記憶體的頁面有三種情況:
lfree
頁面沒有被系統使用或者分配
lreserved
頁面被系統保留但是並沒有對映到物理記憶體
lcommitted
頁面已經影射到物理記憶體
如上圖所示,下面我們就分別來看一下核心位址空間和使用者位址空間
1.
核心位址空間
記憶體範圍
大小(mb
)主要作用
0x80000000-0x9fffffff
512帶緩衝的靜態對映區
0xa0000000-0xbfffffff
512不帶緩衝的靜態對映區
0xc0000000-0xc7ffffff
128對映
xip dlls
0xc8000000-0xcfffffff
128用以資料庫,檔案系統以及登錄檔的檔案儲存
0xd0000000-0xdfffffff
256作業系統核心模組
0xe0000000-0xefffffff
256作業系統核心模組(具體處理的支援)
0xf0000000-0xffffffff
256捕獲系統呼叫以及核心資料頁面
值得注意的是,相同的虛擬記憶體可以被對映到具有不同訪問能力的實體地址。對於帶有緩衝的虛擬位址,
cpu將直接訪問緩衝區,這樣可以獲得更快的訪問速度。對於不帶緩衝的虛擬位址,
cpu將跳過緩衝區直接訪問對應的物理記憶體。
2.使用者位址空間
記憶體範圍
大主要作用
0x00000000-0x00010000
64kb
使用者核心資料
0x00010000-0x3fffffff
1gb-64kb
程序空間,包括可執行**,堆和棧
0x40000000-0x5fffffff
512mb
程序包含的
dll,
**以及資料
0x60000000-0x6fffffff
256mb
記憶體對映檔案
0x70000000-0x7fefffff
256mb
核心和使用者程序之間的共享堆
0x7ff000000-0x7fffffff
1mb使用者位址和核心位址之間的保護帶
其中被不同程序載入的相同
lib,dll
都回被放在相同的虛擬記憶體位址,同時,**頁會被放在相同的物理頁,資料頁放在不相同的物理頁從而區分不同程序的操作。
另外我們可以利用
wince api
中的以下函式來獲取系統記憶體相關資訊
void getsysteminfo(lpsystem_info lpsysteminfo);
void globalmemorystatus(lpmemorystatus lpbuffer);
Wince6 0 儲存記憶體與程式記憶體比例調整
wince600 platform files config.bib 找到 config 在autosize on後新增一行 fsrampercent 40404040 說明 fsrampercent 格式 fsrampercent number 預設值為0x80808080。指定為檔案系統分配的記...
Wince6 0 儲存記憶體與程式記憶體比例調整
開啟檔案 wince600 platform files config.bib 找到 config 在autosize on後新增一行 fsrampercent 40404040 說明 fsrampercent 格式 fsrampercent number 預設值為0x80808080。指定為檔案系...
WINCE6 0體系結構學習
wince6.0的體系結構圖如下圖所示 圖1 wince的體系結構 根據上圖可以把wince6.0體系結構分為硬體層 oem層 作業系統層和應用層,這四層緊密合作,相互配合來完成從應用程式的呼叫到對硬體的操作和互動。1.硬體層 硬體平台的核心是嵌入式處理器,而嵌入式處理器的種類很多,處理能力和主頻的...