<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          ARM·MMU

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

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


          關鍵詞: ARMMMU地址映

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();