page fault
-
korkulmasi gerekmeyen x86 i$lemcilerde implement edilen tum virtual memory mekanizmalarinda zaman zaman saniyede yuzlerce kez olu$an exception.. cpu'nun "baba burada memory yok bir$eyler ayarla" mesajidir.. bu exception'i alan memory manager gider diskteki swap file'dan o blogun kar$iligini yukler ve o page'e map eder.. eger kar$iligi olmayan bir block icin page fault olu$mu$sa ilgili process varolmayan bir hafiza bloguna ula$maya cali$iyordur ki bu o process'in sapittigina i$arettir. bu durumda bir access violation exception'i olu$ur..
-
pagera görev devretmek için cpu tarafından raise edilen exception'ın adıdır; access violation, invalid page fault gibi bir hata değildir. mesela şu şekilde çok rahatlıkla page fault yapılabilir:
int main()
{
return 0;
}
inanmayan kernel mode debuggerıyla saysın. -
nt mimarisinde herhangi bir device driver icinde sebep olur da handle etmezseniz ya da dispatch level denilen irql veya ustunde bu hataya sebebiyet verirseniz bsod suratiniza tokat gibi carpar.
-
-
ayni zamanda; erisilmek istenen hafizanin memory'de olmasina ragmen, diskteki orjinali ile farkli olmasi yani disk'e guncellenmemis olmasi sebebi ile de olusabilir. buna minor page fault ya da soft page fault denir.
-
her page fault'un page file'dan okumaya yol actigina dair yanli$ bir inani$, ve bu inani$in getirdigi "page fault degeri yuksek process kotu performans gosteriyordur" yanilgisi mevcuttur. bu en azindan windows nt ve sonrasi icin dogru degildir. bir page hafizadan atildiginda tamamen silinmesi gerekmez, standby list'te durabilir. eger tekrar ihtiyac olursa geri hafizadan aktive edilir, ya da ait oldugu hafizaya ihtiyac duyulursa free list'e atilir.
(bkz: zero page thread)
ekşi sözlük kullanıcılarıyla mesajlaşmak ve yazdıkları entry'leri
takip etmek için giriş yapmalısın.
hesabın var mı? giriş yap