新聞中心

        ARM·MMU

        作者: 時間:2016-11-24 來源:網絡 收藏
        MMU
        MMU的主要功能:1)設置權限 2)地址映射
        (這里我們主要講的是地址映射)
        【虛擬地址到物理地址的映射】
        問題一:為什么要虛擬地址?
        原因1:我們先來看一個問題,A程序需要10MB的內存,B程序需要110MB的內存,A和B同時運行就需要20M的內存,這時如果只剩下10M的內存,如果C程序需要20M的內存又該如何呢?所以這樣對我們的物理內存的容量要求就十分的大。
        原因2:如果這時候因為某些程序的退出,有了20M的內存,但這些內存不是連續的,是隨機分配的,但是總共加起來有20M,可以讓c程序運行,可是c程序沒有確定的運行地址;
        原因3:
        這里使用物理地址的內存分配,試想一下如果B程序出錯了,訪問到了A程序的地址,修改了A程序的內存,那么A程序也就出錯了。也就是說一個程序的崩潰引發多個程序的崩潰,這樣導致系統十分不穩定。
        結合上面2個原因,我們就可以看出來,虛擬地址的發明的必要性。
        【虛擬地址的改進】
        (1)

        分段方式映射內存
        這樣雖然解決了問題2,問題3,但是物理地址和虛擬地址是一一對應的關系,物理地址并沒有得到擴大,容量依然十分小
        (2)分頁的方法(ARM中頁的大小1MB)
        分段的方法中,每次程序運行總是把程序全部裝入內存;分頁則是程序運行到哪頁就為哪頁分配內存
        我們用一個例子來說明一下:
        假設一個A文件在內存中被執行的時候,操作系統會先為改程序創建一個4GB的進程虛擬地址空間(并不是真實的空間,只是一種數據結構,就是頁目和頁表)
        分頁方法的核心思想就是當可執行文件執行到第x頁時,就為第x頁分配一個內存頁y,然后再講這個內存頁添加到進程虛擬地址空間的映射表中,這個映射表就相當于一個y=f(x)的函數


        關鍵詞: ARMMMU地址映

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 阜平县| 文昌市| 获嘉县| 临沧市| 洛南县| 余干县| 盖州市| 黔西县| 秦皇岛市| 合山市| 普定县| 清徐县| 酉阳| 凉城县| 尤溪县| 白沙| 察隅县| 邵东县| 壤塘县| 黔西县| 寿光市| 满洲里市| 家居| 河间市| 自治县| 乐山市| 上栗县| 栾城县| 德江县| 蛟河市| 广州市| 建德市| 黄平县| 南投市| 上蔡县| 永善县| 新源县| 延庆县| 呼和浩特市| 德阳市| 曲水县|