摘要: 缺頁異常被觸發通常有兩種情況——1.程序設計的不當導致訪問了非法的地址2.訪問的地址是合法的,但是該地址還未分配物理頁框下面解釋一下第二種情況,這是虛擬內存管理的一個特性。盡管每個進程獨立擁有3GB的可訪問地址空間,但是這些資源都是內核開出的空頭支票,也就是說進程手握着和自己相關的一個個虛擬內存區域(vma),但是這些虛擬內存區域並不會在創建的時候就和物理頁框掛鉤,由於程序的局部性原理,程序在一定時間內所訪問的內存往往是有限的,因此內核只會在進程確確實實需要訪問物理內存時才會將相應的虛擬內存區域與物理內存進行關聯(为相應的地址分配頁表項,並將頁表項映射到物理內存),也就是說這種缺頁異常是正常的 阅读全文
posted @ 2013-12-23 13:34 jeremyatchina 阅读(1338) 评论(0) 推荐(0) 编辑