您好,登錄后才能下訂單哦!
這篇文章主要介紹“linux需要mmu的原因是什么”,在日常操作中,相信很多人在linux需要mmu的原因是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux需要mmu的原因是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
因為mmu可以用于提供虛擬內存管理的支持;mmu是“Memory Management Unit”內存管理單元的縮寫,是中央處理器中用來管理虛擬存儲器、物理存儲器的控制線路,同時也是負責虛擬地址映射為物理地址以及提供硬件機制的內存訪問授權。
本教程操作環境:linux7.3系統、Dell G3電腦。
因為現代操作系統普遍采用虛擬內存管理(Virtual Memory Management)機制,這需要處理器中的MMU(Memory Management Unit,內存管理單元)提供支持。
MMU(Memory Management Unit) :內存管理單元,它是中央處理器(CPU)中用來管理虛擬存儲器、物理存儲器的控制線路,同時也負責虛擬地址映射為物理地址,以及提供硬件機制的內存訪問授權。
內存管理單元MMU(memory management unit)的主要功能是虛擬地址(virtual memory addresses)到物理地址(physical addresses)的轉換。除此之外,它還可以實現內存保護(memory protection)、緩存控制(cache control)、總線仲裁(bus arbitration)以及存儲體切換(bank switching)。
工作機制
CPU將要請求的虛擬地址傳給MMU,然后MMU先在高速緩存TLB(Translation Lookaside Buffer)查找轉換關系,如果找到了相應的物理地址則直接訪問;如果找不到則在地址轉換表(Translation Table)里查找計算。
虛擬地址
現代的內存管理單元是以頁的方式來分區虛擬地址空間(the range of addresses used by the processor)的。頁的大小是2的n次方,通常為幾KB。所以虛擬地址就被分為了兩個部分:virtual page number和offset。
頁表項(page table entry)
上面從虛擬頁號在頁表里找到的存放物理頁表號的條目就是頁表項(PTE)。PTE一般占1個字長,里面不僅包含了physical page number,還包含了重寫標志位(dirty bit)、訪問控制位(accessed bit)、允許讀寫的進程類型(user/supervisor mode)、是否可以被cached以及映射類型(PTE最后兩位)。
映射
映射方式
映射方式有兩種,段映射和頁映射。段映射只用到一級頁表,頁映射用到一級頁表和二級頁表。
映射粒度
段映射的映射粒度有兩種,1M section和16M supersection;頁映射的映射粒度有4K small page、64K large page和過時的1K tiny page。
到此,關于“linux需要mmu的原因是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。