日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 1. 地址空間的管理物理地址都是有內(nèi)核管理的, node-->zone-->mem_map-->page, 所有的物理頁面都在mem_map數(shù)組中的頁幀對應(yīng), 然后不同的page有分為DMA,normal,highmem

 1. 地址空間的管理

物理地址都是有內(nèi)核管理的, node-->zone-->mem_map-->page, 所有的物理頁面都在mem_map數(shù)組中的頁幀對應(yīng), 然后不同的page有分為DMA,normal,highmem三個zone。

內(nèi)核線性地址空間, 實際上只是低端內(nèi)存才有線性地址,0---896MB部分。

內(nèi)核虛擬地址, 低端內(nèi)存的虛擬地址與線性地址是一樣的。 高端內(nèi)存只有在映射了以后才有虛擬地址

用戶空間地址, tast_struct ---> mmap --> mm_struct ---> vm_area_struct

2.內(nèi)存的申請或使用

物理內(nèi)存的分配, 在內(nèi)核中最終都要調(diào)用__alloc_pages().它是最核心的分配函數(shù),申請大小最大不超過2的MAX_ORDER次冪,在現(xiàn)在好像最大定義為4MB。

線性地址, kmalloc和get_free_pages,線性地址, 對應(yīng)的物理內(nèi)存就是低端內(nèi)存,kmalloc是基于slab的分配技術(shù), 最大不能超過128KB。

虛擬地址, vmalloc申請, 他只是在內(nèi)核中建立類似與用戶空間的vm_area的一個虛擬內(nèi)存空間到vmlist中, 最終的物理內(nèi)存分配還是基于缺頁的。

用戶空間的虛擬內(nèi)存, malloc之類的, 最終在內(nèi)核中都是do_map()和do_brk()。實際上也只是建立了一塊虛擬空間,最終的物理內(nèi)存還是在缺頁異常時分配的。

3. 內(nèi)存的交換問題

在page結(jié)構(gòu)和用戶層的vm_area_struct結(jié)構(gòu)中, 都包含locked和reserved標(biāo)志。通過合適的途徑設(shè)置這些標(biāo)志, 可以是頁面鎖存在物理內(nèi)存中, 不被交換出去。

4. 設(shè)備內(nèi)存可以通過ioremap映射到內(nèi)核虛擬地址空間, 也可以通過mmap方法映射到用戶空間。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉