亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2107 | 回復(fù): 6
打印 上一主題 下一主題

請教一個內(nèi)核內(nèi)存管理的問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-09-27 09:00 |只看該作者 |倒序瀏覽
內(nèi)核空間中,從3G到vmalloc_start這段地址是物理內(nèi)存映射區(qū)域(該區(qū)域中包含了內(nèi)核鏡像、物理頁框表mem_map等等)
比如我們使用的VMware虛擬系統(tǒng)內(nèi)存是160M,那么3G~3G+160M這片內(nèi)存就應(yīng)該映射物理內(nèi)存。在物理內(nèi)存映射區(qū)之后,就是vmalloc區(qū)域。
對于160M的系統(tǒng)而言,vmalloc_start位置應(yīng)在3G+160M附近(在物理內(nèi)存映射區(qū)與vmalloc_start期間還存在一個8M的gap來防止躍界),vmalloc_end的位置接近4G(最后位置系統(tǒng)會保留一片128k大小的區(qū)域用于專用頁面映射)

請問: 如果在上述160M的虛擬機中,用vmalloc申請一塊內(nèi)存,那此內(nèi)存塊的首地址將是在3G+160M~4G之間,也就是說這塊地址將不對應(yīng)實際的物理內(nèi)存;這樣的話如果我往此內(nèi)存塊中存一個字符串,那字符串實際存在于什么地方呢?(既然地址不與物理內(nèi)存對應(yīng),那肯定不會在某物理內(nèi)存中咯)
難道是存在與虛擬內(nèi)存中的?虛擬內(nèi)存好象一般對應(yīng)的是硬盤空間來的,這樣可以解釋存儲問題,但是如果那樣的話,對vmalloc出來的“內(nèi)存”塊操作將比kmalloc出的內(nèi)存塊要慢,因為讀取操作不同嘛

不知道我的理解是否正確,請大家指教下~~

論壇徽章:
0
2 [報告]
發(fā)表于 2008-09-27 09:33 |只看該作者
徹底把vmalloc中什么是虛擬地址,什么是物理地址混淆了。
vmalloc_start是虛擬地址

論壇徽章:
0
3 [報告]
發(fā)表于 2008-09-27 09:49 |只看該作者

回復(fù) #2 zx_wing 的帖子

我說的地址都是虛擬地址啊,vmalloc和kmalloc分配的不都是虛擬地址嗎?
想想在160M的機器上,一個3G+160M左右的地址難道會是物理地址嗎???

LS的大哥,我混淆了虛擬地址和物理地址么?不懂你什么意思。

論壇徽章:
0
4 [報告]
發(fā)表于 2008-09-27 10:04 |只看該作者
原帖由 cloudice 于 2008-9-27 09:49 發(fā)表
我說的地址都是虛擬地址啊,vmalloc和kmalloc分配的不都是虛擬地址嗎?
想想在160M的機器上,一個3G+160M左右的地址難道會是物理地址嗎???

LS的大哥,我混淆了虛擬地址和物理地址么?不懂你什么意思。

既然你知道是虛擬地址了,那應(yīng)該能想到虛擬地址映射到什么物理地址取決于頁表如何設(shè)定。
vmalloc分配到的虛擬地址同樣映射到了160M以內(nèi)的物理地址。3G+160M映射了物理地址是指內(nèi)核最初建頁表時會在頁表的3G~4G部分映射所有低端內(nèi)存(小于896M),這并不妨礙頁表的其它部分映射相同內(nèi)存的物理地址。

此外,即使你只有4M內(nèi)存,3G+4M也可能是物理地址,當(dāng)然這個和你這個問題沒有關(guān)系。

論壇徽章:
0
5 [報告]
發(fā)表于 2008-09-27 10:32 |只看該作者
我大概知道你意思了,就是說分配到的虛擬地址在被映射到實際物理地址之前是沒有什么實際意義的,在實際存儲的時候會將此虛擬地址映射到某物理地址,進(jìn)行讀寫等操作。
所以虛擬地址其實只對程序有意義,對內(nèi)核來說它是靠不斷地映射和調(diào)出內(nèi)存頁來達(dá)到管理目的。
可以說虛擬內(nèi)存實際上是內(nèi)核的內(nèi)存管理策略帶給程序的一種錯覺而已了。
對么?

但是還有個疑問:你說的“3G+4M也可能是物理地址”是什么意思呢,如果你只有4M內(nèi)存,那你的物理地址不就是0~4M嗎?(3G+4M)這樣的地址肯定不應(yīng)該稱為物理地址吧,它是物理地址加上了OFFSET的嘛,實際上就是所說的一開始就被映射了的啊。

論壇徽章:
0
6 [報告]
發(fā)表于 2008-09-27 10:41 |只看該作者
原帖由 cloudice 于 2008-9-27 10:32 發(fā)表
我大概知道你意思了,就是說分配到的虛擬地址在被映射到實際物理地址之前是沒有什么實際意義的,在實際存儲的時候會將此虛擬地址映射到某物理地址,進(jìn)行讀寫等操作。
所以虛擬地址其實只對程序有意義,對內(nèi)核來 ...

是的?梢钥纯http://linux.chinaunix.net/bbs/v ... p%3Bfilter%3Ddigest加強一下理解

物理地址可能對應(yīng)的是設(shè)備的寄存器和設(shè)備內(nèi)存,它可能占用固定的物理地址,不受你機器上有多少RAM的限制。

論壇徽章:
0
7 [報告]
發(fā)表于 2008-09-27 10:56 |只看該作者
哦,多謝大蝦,我去看看那文章~~
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP