 struct page * nopage(struct vm_area_sruct *area,

unsigned long address,

int unused)

     -  
(page fault),     ,    -
 .

 int populate(struct vm_area_struct *area,
unsigned long address,
unsigned long len, pgprot_t prot,
unsigned long pgoff, int nonblock)
      remap_pages ()  -
      (prefault)  
 .

    

  ,       
    :  mmap  mm_rb.   -
          ,  
  .         
vm_area_struct,        -.

 ,  mmap,       -
 .  vm_area_struct      -
  vm_next.       
(    ).     -
 vm_area_struct,      mmap.   
    NULL.

 , mm_rb,       --
 (red-black) .      mm_rb,   
vm_area_struct       vm_rb.

-        .  
-   .     .
     :      -
 .       , , , , -
   ,  .      ,
     ,     ,  -
  ,    ,     
,    ,    .  ,  
  (  ,      )  -
    :     -
             
  .    . ,   
         (log () ).

  ,      . -
  ,      
 .  ,    
       , -
     .

320                                                                     14