Linux$B%W%m%;%9$rJ*M}%a%b%j$K%m%C%/$9$k$?$a$K$O(B
$B%7%9%F%`%3!<%k(Bmlockall$B$r8F$Y$P$h$$$3$H$K$J$C$F$$$^$9!#(B
$B$7$+$7!"(BL4-Linux$B$G$3$N%7%9%F%`%3!<%k$,H/9T$5$l$F$b(B
$B%a%b%j%m%C%/$5$l$J$$$3$H$,$o$+$j$^$7$?!#(B



$B>.ED@Z$5$s!'(B
$B!J#1!KDL>o$N(B Linux $B$G$N%a%b%j>oCs2=$K$D$$$F(B

$B!&(Bmlockall() $B$H$$$&%7%9%F%`!&%3!<%k$rMxMQ$7$^$9!#(B
$B!&(Bmlockall() $B$O%W%m%;%9$N2>A[%a%b%jNN0h$NA4$F$KBP$7$F(B
$B!!J*M}%Z!<%8$N3d$jEv$F$H%a%b%j$X$NFI$_9~$_!"%Z!<%8!&(B
$B!!%F!<%V%k!J(Bpte$B!K$N3d$jEv$F$r9T$$!"$3$l$i$r%9%o%C%W$NBP>](B
$B!!$+$i30$7$^$9!#(B
$B!&=>$C$F!"(Bmlockall() $B$+$iJV$C$?8e$O!"$=$N%W%m%;%9$O(B page
$B!!(Bfault $B$r5/$3$5$:$K7k$7$?(B
$B!!%a%b%j4IM}>pJs$G$9!#(B
$B!&!V(BLinux $B%W%m%;%9!W$,@8@.$5$l$?;~E@$G$O!"$3$N%Z!<%8!&(B
$B!!%G%#%l%/%H%j$N%+!<%M%kItJ,!J(BL4 $B$N!"$G$9!K$N$_$,=i4|2=(B
$B!!$5$l!"%f!<%66u4VItJ,$O6u$C$]$N$^$^$G$9!#(B
$B!&EvA3!"%W%m%;%9$,o$N(B Linux $B$,9T$&$N$HF1$8oCs2=$NLdBjE@(B

$B0J>e$NOC$+$i(B L4-Linux $B$N>l9g$K$O(B mlockall() $B$rH$9$k(B L4 $B%+!<%M%kFbIt(B
$B$N(B pgd $B$K$O!"A4$F$N(B pte $B$,(B Linux $B%5!<%P$+$iFO$1$i$l(B
$B$F$$$k$H$$$&J]>Z$,$J$$$+$i$G$9!#L$$@0lEY$b(B page fault
$B$r5/$3$7$F$$$J$$%Z!<%8$K$D$$$F$O(B L4 $BFbIt$N(B pgd $B$N(B
$B%(%s%H%j$O6u$C$]$N$^$^$G$9!#$3$N%Z!<%8$K%"%/%;%9$9$k(B
$B$H(B Linux $B%5!<%PFbIt$N(B pte $B$r(B L4 $BFbIt$N(B pgd $B$K%;%C%H(B
$B$9$k$@$1$N$?$a$K(B page fault $B$,5/$3$j$^$9!#(B



$B0B!'(B
$B$^$:$OI8=`(BLinux$B$G$N(Bmlockall$B$NOC(B
$B0J2<$NOC$K=P$F$/$k%+!<%M%k4X?t$O$3$N$h$&$J>l=j$K$"$j$^$9!#(B
/usr/src/linux/mm/memory.c    do_no_page, make_pages_present
                                             handle_mm_fault
/usr/src/linux/mm/mlock.c       mlockall
/usr/src/linux/mm/slab.c          kmem_cache_alloc
kmem_cache_alloc$B4X?t$GJ*M}%a%b%j$r3NJ]$7!"$b$7<:GT$7$?$i!"(B
make_pages_present()$B4X?t$r8F$S=P$7$F3NJ]$9$k!#!#!#(B
$B8fB8$8$N$h$&$K!"@8@.D>8e$N2>A[6u4V(B($B%Z!<%8(B)$B$K%"%/%;%9$r$9$k$H(B,
$B$^$@e$O!"%+!<%M%k(B2.4.0$B$G$NOC$G$7$?!#(B

L4$B$G(BLinux$B%5!<%P$r(Bpager$B$H$7$F$$$k$N$O$o$+$j$^$7$?!#(B
$B3N?.$O$"$j$^$;$s$,!"(Bmlock$B%7%9%F%`%3!<%k$G$O>e5-$N$h$&$K(B
kmem_cache_alloc$B$,8F$P$l$^$9$N$G!"J*M}%a%b%j$O3NJ]$5$l$k(B
$B$H;W$&$N$G$9$,!"4V0c$$$G$9$+!)(B



$B>.ED@Z$5$s!'(B
$BJ*M}%a%b%j$O3NJ]$5$l!"l9g(B
$B$K$O(B page fault $B$,5/$3$C$F$7$^$$$^$9!#(B

L4-Linux $B$G$O!"#2$D$N%Z!<%8!&%G%#%l%/%H%j$,B8:_$7$^$9!#(B

$B0l$D$OIaDL$N(B Linux $B$N%Z!<%8!&%G%#%l%/%H%j$G!"(BLinux $B$N%a%b%j(B
$B4IM}%k!<%A%s$,$=$NFbMF$rA`:n$9$k$b$N$G$9!#C"$7!"$3$l$O(B
$B%O!<%I%&%'%"$H$OD>@\$K$O7k$SIU$1$i$l$F$$$^$;$s!#(B

$B$b$&0l$D$O(B L4 $B%+!<%M%k$NFbIt$KB8:_$9$k%Z!<%8!&%G%#%l%/%H%j(B
$B$G$9!#$3$A$i$,(B MMU $B$,;2>H$9$kK\J*$G$9!#C"$7!"(BL4 $B<+BN$O(B
$B$=$NCf?H$K$D$$$F$O0l@Z4XCN$7$F$$$^$;$s!#(B

$BEvA3!"8e