乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      圖解高端內(nèi)存[zz]

       ydzhang 2009-10-10
      高端內(nèi)存是指物理地址大于 896M 的內(nèi)存。
      對于這樣的內(nèi)存,無法在“內(nèi)核直接映射空間”進行映射。
      為什么?
      因為“內(nèi)核直接映射空間”最多只能從 3G 到 4G,只能直接映射 1G 物理內(nèi)存,對于大于 1G 的物理內(nèi)存,無能為力。
      實際上,“內(nèi)核直接映射空間”也達不到 1G, 還得留點線性空間給“內(nèi)核動態(tài)映射空間” 呢。
      因此,Linux 規(guī)定“內(nèi)核直接映射空間” 最多映射 896M 物理內(nèi)存。
      對于高端內(nèi)存,可以通過 alloc_page() 或者其它函數(shù)獲得對應的 page,但是要想訪問實際物理內(nèi)存,還得把 page 轉(zhuǎn)為線性地址才行(為什么?想想 MMU 是如何訪問物理內(nèi)存的),也就是說,我們需要為高端內(nèi)存對應的 page 找一個線性空間,這個過程稱為高端內(nèi)存映射。
      高端內(nèi)存映射有三種方式:
      1、映射到“內(nèi)核動態(tài)映射空間”
      這種方式很簡單,因為通過 vmalloc() ,在”內(nèi)核動態(tài)映射空間“申請內(nèi)存的時候,就可能從高端內(nèi)存獲得頁面(參看 vmalloc 的實現(xiàn)),因此說高端內(nèi)存有可能映射到”內(nèi)核動態(tài)映射空間“ 中。
      2、永久內(nèi)核映射
      如果是通過 alloc_page() 獲得了高端內(nèi)存對應的 page,如何給它找個線性空間?
      內(nèi)核專門為此留出一塊線性空間,從 PKMAP_BASE 到 FIXADDR_START ,用于映射高端內(nèi)存。在 2.4 內(nèi)核上,這個地址范圍是 4G-8M 到 4G-4M 之間。這個空間起叫“內(nèi)核永久映射空間”或者“永久內(nèi)核映射空間”
      這個空間和其它空間使用同樣的頁目錄表,對于內(nèi)核來說,就是 swapper_pg_dir,對普通進程來說,通過 CR3 寄存器指向。
      通常情況下,這個空間是 4M 大小,因此僅僅需要一個頁表即可,內(nèi)核通過來 pkmap_page_table 尋找這個頁表。
      通過 kmap(), 可以把一個 page 映射到這個空間來
      由于這個空間是 4M 大小,最多能同時映射 1024 個 page。因此,對于不使用的的 page,及應該時從這個空間釋放掉(也就是解除映射關(guān)系),通過 kunmap() ,可以把一個 page 對應的線性地址從這個空間釋放出來。

      3、臨時映射

      內(nèi)核在 FIXADDR_START 到 FIXADDR_TOP 之間保留了一些線性空間用于特殊需求。這個空間稱為“固定映射空間”
      在這個空間中,有一部分用于高端內(nèi)存的臨時映射。
      這塊空間具有如下特點:
      1、  每個 CPU 占用一塊空間
      2、  在每個 CPU 占用的那塊空間中,又分為多個小空間,每個小空間大小是 1 個 page,每個小空間用于一個目的,這些目的定義在 kmap_types.h 中的 km_type 中。
       當要進行一次臨時映射的時候,需要指定映射的目的,根據(jù)映射目的,可以找到對應的小空間,然后把這個空間的地址作為映射地址。這意味著一次臨時映射會導致以前的映射被覆蓋。
      通過 kmap_atomic() 可實現(xiàn)臨時映射。
       
      下圖簡單簡單表達如何對高端內(nèi)存進行映射
       
       
       
      本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/zhengaw/archive/2009/09/09/4537153.aspx

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多