page cache , process map issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Gurus ,

 

I need to understand the interaction between the page cache (which is
used for file systemn data cache) , and virtual memory map of a process
which uses data from the cache.

 

Where does the pages which are read from the disk is mapped inside a
process? 

 

Imagine a simple c program:

 

     char *buf;

     buf = (char *)malloc(1000);

 

This buf is allocated inside the heap , or in detail it is first
reserved (in swap file) ,and on demand , it is allocated (inside the
phy.ram)  

 

     Then imagine that the code has the following line:

  

     *buf = 65 ;  

 

So i modifed the contents the buffer.

 

As far as i know , if the pages which are modified like this , needs to
be written to the swap disk in order to be reused again .

So if these pages pageout by the os  , they are written to the swap
file.

 

      Now consider that ,i start to read data files by using read ,or
readv or pread system calls. ( readv and pread are the io calls which
oracle or other database systems uses on unix) 

 

       

fdes=open("/data/spss/x1.dat",O_RDONLY);

 

while (fdes)

{

 printf("%d\n",read(fdes, buf,sz));

}

 

I wonder how things happen now. 

How the data blocks which are cached inside the page cache mapped to the
process?

If the file is read first time by this process , the file must be read
from the disk. Then the blocks are cached inside the page cache. The
page cache has no backing storage inside the swap file ,

but instead it is directly mapped from the data file itself.

(Is this correct?)

 

When my process reads data from the disk , then does the page that is
inside the page cache copied into the process map ? Or is it shared and
no copy takes place?

 

Kind Regards,

tolga

-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subjecthttps://www.redhat.com/mailman/listinfo/redhat-list


[Index of Archives]     [CentOS]     [Kernel Development]     [PAM]     [Fedora Users]     [Red Hat Development]     [Big List of Linux Books]     [Linux Admin]     [Gimp]     [Asterisk PBX]     [Yosemite News]     [Red Hat Crash Utility]


  Powered by Linux