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

  免費注冊 查看新帖 |

Chinaunix

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

[內(nèi)存管理] 高端內(nèi)存的疑問 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-06-19 10:56 |只看該作者 |倒序瀏覽
我看了很多相關的高端內(nèi)存的文章,里面幾乎都是這樣闡述的:
因為“內(nèi)核直接映射空間”最多只能從 3G 到 4G,只能直接映射1G 物理內(nèi)存,對于大于1G 的物理內(nèi)存無法使用。

我的疑問是:
    如果內(nèi)核的地址空間(3G~4G)和用戶空間一樣,采用頁表的方式,也可以映射到物理內(nèi)存(4G)的任何地方啊?為什么說對應1G的物理內(nèi)存無法使用?

論壇徽章:
0
2 [報告]
發(fā)表于 2012-06-19 11:46 |只看該作者
是可以映射到,但是無法永久維持固定的映射,因為物理內(nèi)存大于1G時,物理內(nèi)存空間要大于虛擬地址空間,所以要騰出一部分虛擬地址空間來建立高端內(nèi)存的臨時性映射

論壇徽章:
0
3 [報告]
發(fā)表于 2012-06-19 12:12 |只看該作者
效率

而且你這個是偽命題, 高端內(nèi)存的解釋就是說大于1G的內(nèi)存*得有*頁表而已, 和你說的全都變成頁表并不矛盾啊.

http://adam8157.info/blog/2011/03/about-highmem

論壇徽章:
0
4 [報告]
發(fā)表于 2012-06-19 15:20 |只看該作者
建議你先跳出頁表的框框,考慮一下什么是直接映射,為什么直接映射的尺寸有限制,遇到這種限制的話,要你做你會怎么做,想一想,自然而然的高端內(nèi)存的解決方案就出來了。

論壇徽章:
0
5 [報告]
發(fā)表于 2012-06-19 16:56 |只看該作者
謝謝您的回復!
"默認情況下, 內(nèi)核空間是指3GB-4GB的虛擬地址, 用戶空間則是0-3GB. 內(nèi)核進程和用戶進程分別活動在自己的空間內(nèi). 這里重點說內(nèi)核空間, 3G-(3G+896MB)這塊是直接映射, 減去PAGE_OFFSET(0xC000000)就是真實物理地址, 剩下那128MB(4G-3G-896MB)是用來做各種映射的, 包括整個高端內(nèi)存的映射, 如果不留出這么一段做映射, 內(nèi)核就只能管理1G的物理內(nèi)存, 余下部分就只能浪費了"
可能我的意思沒有表述清楚:內(nèi)核的虛擬地址空間為3G~4G,直接映射就是將內(nèi)核的虛擬地址減去PAGE_OFFSET,這樣就導致只能用到1G的物理內(nèi)存。如果3G~4G地址空間采用頁表映射(和用戶空間一樣),應該就可以將3G~4G的虛擬地址空間映射到任何的物理內(nèi)存。之所以采用只是將3G~3G+896M的地址空間采用直接映射,剩下的128M采用其它的映射,是不是僅僅處于效率方面的考慮?畢竟直接映射的效率更高。


   

論壇徽章:
0
6 [報告]
發(fā)表于 2012-06-19 16:57 |只看該作者
"默認情況下, 內(nèi)核空間是指3GB-4GB的虛擬地址, 用戶空間則是0-3GB. 內(nèi)核進程和用戶進程分別活動在自己的空間內(nèi). 這里重點說內(nèi)核空間, 3G-(3G+896MB)這塊是直接映射, 減去PAGE_OFFSET(0xC000000)就是真實物理地址, 剩下那128MB(4G-3G-896MB)是用來做各種映射的, 包括整個高端內(nèi)存的映射, 如果不留出這么一段做映射, 內(nèi)核就只能管理1G的物理內(nèi)存, 余下部分就只能浪費了"
可能我的意思沒有表述清楚:內(nèi)核的虛擬地址空間為3G~4G,直接映射就是將內(nèi)核的虛擬地址減去PAGE_OFFSET,這樣就導致只能用到1G的物理內(nèi)存。如果3G~4G地址空間采用頁表映射(和用戶空間一樣),應該就可以將3G~4G的虛擬地址空間映射到任何的物理內(nèi)存。之所以采用只是將3G~3G+896M的地址空間采用直接映射,剩下的128M采用其它的映射,是不是僅僅處于效率方面的考慮?畢竟直接映射的效率更高。

論壇徽章:
0
7 [報告]
發(fā)表于 2012-06-19 16:59 |只看該作者
謝謝您的回復!
"默認情況下, 內(nèi)核空間是指3GB-4GB的虛擬地址, 用戶空間則是0-3GB. 內(nèi)核進程和用戶進程分別活動在自己的空間內(nèi). 這里重點說內(nèi)核空間, 3G-(3G+896MB)這塊是直接映射, 減去PAGE_OFFSET(0xC000000)就是真實物理地址, 剩下那128MB(4G-3G-896MB)是用來做各種映射的, 包括整個高端內(nèi)存的映射, 如果不留出這么一段做映射, 內(nèi)核就只能管理1G的物理內(nèi)存, 余下部分就只能浪費了"
可能我的意思沒有表述清楚:內(nèi)核的虛擬地址空間為3G~4G,直接映射就是將內(nèi)核的虛擬地址減去PAGE_OFFSET,這樣就導致只能用到1G的物理內(nèi)存。如果3G~4G地址空間采用頁表映射(和用戶空間一樣),應該就可以將3G~4G的虛擬地址空間映射到任何的物理內(nèi)存。之所以采用只是將3G~3G+896M的地址空間采用直接映射,剩下的128M采用其它的映射,是不是僅僅處于效率方面的考慮?畢竟直接映射的效率更高。

4# 灌水菜鳥



   

論壇徽章:
0
8 [報告]
發(fā)表于 2012-06-19 17:02 |只看該作者
謝謝您的回復!
"默認情況下, 內(nèi)核空間是指3GB-4GB的虛擬地址, 用戶空間則是0-3GB. 內(nèi)核進程和用戶進程分別活動在自己的空間內(nèi). 這里重點說內(nèi)核空間, 3G-(3G+896MB)這塊是直接映射, 減去PAGE_OFFSET(0xC000000)就是真實物理地址, 剩下那128MB(4G-3G-896MB)是用來做各種映射的, 包括整個高端內(nèi)存的映射, 如果不留出這么一段做映射, 內(nèi)核就只能管理1G的物理內(nèi)存, 余下部分就只能浪費了"
可能我的意思沒有表述清楚:內(nèi)核的虛擬地址空間為3G~4G,直接映射就是將內(nèi)核的虛擬地址減去PAGE_OFFSET,這樣就導致只能用到1G的物理內(nèi)存。如果3G~4G地址空間采用頁表映射(和用戶空間一樣),應該就可以將3G~4G的虛擬地址空間映射到任何的物理內(nèi)存。之所以采用只是將3G~3G+896M的地址空間采用直接映射,剩下的128M采用其它的映射,是不是僅僅處于效率方面的考慮?畢竟直接映射的效率更高。
3# adam8157



   

論壇徽章:
0
9 [報告]
發(fā)表于 2012-06-19 17:34 |只看該作者
直接映射當然效率更高

只要有一塊用頁表映射就好了. 你的方案可以看做整個1G都是高端內(nèi)存, 沒問題啊. 這只是一種安排, 你可以自己改嘛.[1]

本來說的是如果全部直接映射的話大于1G的沒法用, 和你說的全部分頁不是一回事兒啊, 不沖突啊.

[1] 當然有一部分不能分頁, 例如dma那塊兒

論壇徽章:
0
10 [報告]
發(fā)表于 2012-06-19 17:53 |只看該作者
回復 8# yxjfish


    所謂直接映射,不是指映射過程,而是指映射的結果。直接映射也要通過頁表映射,跟用戶空間一樣,只是結果變成線性地址物理地址相差PAGE_OFFSET,所以跟你說的效率沒有關系。有時說到跟效率有關,那是內(nèi)存分配的效率,如果分配的線性地址在PAGE_OFFSET與PAGE_OFFSET+896M之間,可以省掉映射過程,因為先前做好了。如果分配的線性地址在PAGE_OFFSET+896M之外,就需要建立映射,所以效率就差點。之所以這樣直接映射,一是方便初始化時實模式到保護模式的切換,二是方便內(nèi)核找到得到某一線性地址的物理地址或相反。
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP