新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux中代碼段和數(shù)據(jù)段的加載

Linux中代碼段和數(shù)據(jù)段的加載

作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

請注意:

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

當(dāng)我們對這樣的頁進行寫操作的時候,mmu當(dāng)然會觸發(fā)page_fault.

if (write_access) {

if (!pte_write(entry))

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

entry = pte_mkdirty(entry);

}

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

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


上一頁 1 2 下一頁

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉