mmap - horoyoiiv/linux GitHub Wiki
mmap
1. Read File From DISK using "read()"
#define BUF_SIZE 1024
int main(){
char buf[BUF_SIZE];
int fd=open("file.txt",O_CREAT|O_RDWR|O_TRUNC);
int n=read(fd, buf, BUF_SIZE); // fd์์ BUF_SIZE ์ดํ๋ก ์ฝ์ด์, buf์ ์ ์ฅํ๋ค.
// ํด๋น read๊ฐ ๋ฐํ๋๋ ์์ ์ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ์ page cache์์ ๋ฐ์ดํฐ๊ฐ ๋ณต์ฌ๋์ด, ์ ์ ๋ฉ๋ชจ๋ฆฌ์ buf์ ์ ์ฅ๋ ํ์ด๋ค.
...
}

2. Read File From DISK using "mmap()"
- Disk์์ ์ฝ์ด์จ ๋ฐ์ดํฐ๋ฅผ ์ปค๋์ page cache์ ์ ์ฅํ ํ AP์ Page Table Entry๊ฐ ์ง์ ์ ์ผ๋ก ๊ทธ๊ณณ์ ๊ฐ๋ฆฌํค๊ฒ ํจ์ผ๋ก์จ,
"user buffer์ ๋ํ ๋ณต์ฌ ๊ณผ์ ์์ด", memory๋ฅผ ์ฝ๊ณ ์ฐ๋ฏ ํ์ผ์ ์กฐ์ํ ์ ์๋ ๋ฐฉ๋ฒ.
