新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux中代碼段和數據段的加載

        Linux中代碼段和數據段的加載

        作者: 時間:2016-09-12 來源:網絡 收藏

        請注意:

        entry = mk_pte(new_page, vma->vm_page_prot); /*這里是PAGE_COPY,_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED */

        當我們對這樣的頁進行寫操作的時候,mmu當然會觸發page_fault.

        if (write_access) {

        if (!pte_write(entry))

        return do_wp_page(mm, vma, address, pte, entry);

        entry = pte_mkdirty(entry);

        }

        當一個vma是可寫的,而vma中對應的pte又是不可寫的,這就觸發了copy_on_write機制:do_wp_page會進行相應的copy_on_write處理過程。

        所以,不存在是否第一份不能被換出的情況。如果對數據段都是只讀的操作,那么你可以把數據段的頁想象成一個軟鏈接。一旦有了寫操作,那么數據段就變成了一份本地的page。


        上一頁 1 2 下一頁

        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汕尾市| 明水县| 宁海县| 额敏县| 全州县| 中西区| 高邮市| 大竹县| 涞源县| 金门县| 宜宾市| 房山区| 综艺| 翁牛特旗| 濮阳县| 蕲春县| 邹平县| 奉新县| 沛县| 营口市| 静安区| 滦南县| 林甸县| 鄯善县| 德保县| 肥东县| 彝良县| 莒南县| 和政县| 遂川县| 西青区| 桂平市| 且末县| 文登市| 和田市| 静乐县| 东山县| 星子县| 文昌市| 宁陕县| 托克逊县|