PDA

View Full Version : [C] generare un page fault su kernel linux


Negroni
28-09-2011, 12:23
ciao a tutti,
volevo una mano per scrivere un programmino in C per kernel Linux che mi generi un page fault(generato da un evento qualsiasi...non uno in particolare). qualcuno può darmi una mano?

Floris
28-09-2011, 12:28
Ad esempio potresti sfruttare la mappatura dei file in memoria.
Crei un programmino per accedere ad un file.
Quando lo apri, il file non viene caricato in memoria ma viene semplicemente "mappato". Quando accedi a qualche suo contenuto, la parte relativa di file viene caricata in memoria tramite un page fault.

(Sempre che non ricordi male!:fagiano:)

Generare un page fault dovuto allo swap dei frame del processo credo sia più complicato perchè dipende dalle euristiche del page daemon.

Negroni
28-09-2011, 12:41
mmmm...ma qualcosa di più facile?tipo allocare un array di dimensione maggiore della cache e quindi accedere al di fuori di esso???è cattiva come idea??

Floris
28-09-2011, 13:23
Beh...allora intendi un segmentation fault...non page fault.

Se intendi segmentation fault allora sì...basta creare un array statico (non intendo static...ma sullo stack) e accedere al di fuori di esso.

eraser
28-09-2011, 14:33
xor eax,eax
jmp eax


:fagiano: