File Systems Implementation
Last updated
Last updated
contigous allocation
linked allocation
indexed allocation
directory ๋ ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์์ ์๋ฅผ ํตํด์ ๋ณด๋ฉด, count ํ์ผ์ ์์์ 0๋ฒ๋ถํฐ ๊ธธ์ด๊ฐ 2๊ธฐ ๋๋ฌธ์ 0, 1 ์ ์์นํ๊ฒ ๋๋ค.
๋จ์
external fragment ์ธ๋ถ์กฐ๊ฐ์ด ๋ฐ์ํ๋ค. ์ธ๋ถ์ ๋จ๋ ๊ณต๊ฐ์ด ๋ฐ์ํ๋ค.
ํ์ผ์ด ์์ ๋์์ ๋, ํ์ผ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ ๊ฒ์ ๋๋นํ๊ธฐ๊ฐ ์ด๋ ต๋ค.
๋ฏธ๋ฆฌ ํ์ผ์ด ์ปค์ง ์ ์๋ ๊ฒ์ ๋๋นํ์ฌ ์ต๋ ๊ณต๊ฐ๋งํผ ์ฐจ์งํ๋๋ก ํ๋ค.
์ผ๋ง๋ ํฐ hole ์ ํ ๋นํ ๊ฒ์ธ๊ฐโฆ?
๊ณต๊ฐ ํ ๋น์ด ๋์ง๋ง ์ฐ์ด์ง ์๋ ๋ด๋ถ ์กฐ๊ฐ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
์ฅ์
๋น ๋ฅด๋ค
ํ๋ฒ์ seek/rotation ์ผ๋ก ๋ง์ ๋ฐ์ดํธ transfer
realtime file ์ฉ์ผ๋ก, ๋๋ ์ด๋ฏธ run ์ค์ด๋ process ์ swapping ์ฉ๋๋ก ์ฐ์ธ๋ค.
swapping : ๊ณต๊ฐ ํจ์จ์ฑ๋ณด๋ค๋ ์๋๊ฐ ํจ์ฌ ์ค์ํ ๊ฒฝ์ฐ
direct access (=randome access) ๊ฐ ๊ฐ๋ฅํ๋ค.
์์ ์ ํํ๋ ํ์ผ๋ค์ ๋ชจ๋ ๊ฑฐ์น์ง ์์๋ ๋ด๊ฐ ๋ณด๊ณ ์ถ์ ํน์ ํ ํ์ผ๋ง ๋ณผ ์ ์๋ค.
ํ์ผ์ ์์์์น๋ง ๋๋ ํ ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๊ณ , ๊ทธ ๋ค์ ์์น๋ค์ ํด๋น ํ์ผ ๋ด์ ์ ๊ทผํ์ฌ ํ์ธํ ์ ์๋ค.
์ฅ์
continous allocation ์ฐ์ํ ๋น๊ณผ ๋ค๋ฅด๊ฒ ํ์ผ์ ๊ธธ์ด๊ฐ ์๋ง์ ์ฌ์ฉ๋์ง ๋ชปํ๋ ์ธ๋ถ์กฐ๊ฐ์ด ๋ฐ์ํ์ง ์๋๋ค.
๋จ์
์ง์ ์ ๊ทผ์ด ๋ถ๊ฐํ๋ค.
4๋ฒ์งธ ๋ธ๋ก์ ๋ด์ฉ์ด ๊ถ๊ธํ๋ฉด 1โ2โ3โ4 ์์๋๋ก ํ์์ ํ์ฌ ๋ด์ฉ์ ํ์ธํด์ผ ํ๋ค.
์ฆ, ๊ฑด๋ ๋ฐ๋ ๊ฒ์ด ๋ถ๊ฐํ๋ค.
์์ฐจ์ ๊ทผ์ ๋ํด์ ํ์ ์๊ฐ์ด ์ค๋ ์์๋๋ค.
์์ ์ฑ ์ธก๋ฉด์๋ ๋ฌธ์ ๊ฐ ์๋ค. reliability
ํ sector ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๊ทธ ์ดํ ํฌ์ธํฐ์ ์์น๋ฅผ ์ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ผ ์ ์ฒด๋ฅผ ์ ๊ทผํ์ง ๋ชปํ๊ฒ ๋๋ค.
๋ค์ ํฌ์ธํฐ์ ์์น๋ฅผ ์ ์ฅํ๋๋ผ๊ณ ํ์ผ ๋ธ๋ก ๊ณต๊ฐ์ ์ฐจ์งํ๊ธฐ ๋๋ฌธ์ ์จ์ ํ ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
512bytessector
4bytes/pointer
๋จ์ ์ ๋ณด์
file-allocation table, FAT ํ์ผ ์์คํ
ํฌ์ธํฐ๋ฅผ ๋ณ๋์ ์์น์ ๋ณด๊ดํ์ฌ reliability ์ ๊ณต๊ฐ ํจ์จ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
๋๋ ํ ๋ฆฌ ๋ด์์ index block ์ ์์น๋ฅผ ๊ฐ์ง๊ณ ์๊ณ
ํด๋น ์ธ๋ฑ์ค๋ก ์ ๊ทผํ๋ฉด ๋ชจ๋ ํ์ผ๋ค์ ๋ด์ฉ์ ์ ๊ทผ ๊ฐ๋ฅํ๋ค.
์ฅ์
์์ฐจ์ ๊ทผ์ด ์๋๋ค. index ๋ง ์ ๊ทผํ๋ฉด ์ ๊ทผํ๊ณ ์ ํ๋ ์์น์ ๋ฐ๋ก ์ ๊ทผํ ์ ์๋ค.
์ธ๋ถ ๊ณต๊ฐ์ด ๋ฐ์ํ์ง ์๋๋ค.
๋จ์
์์ ๊ณต๊ฐ์ด๋ผ๊ณ ๋ ํ๋ index๋ฅผ ์ํ ๋ธ๋ก์ด ๋ณ๋๋ก ํ์ํ๋ค. ์์ ํ์ผ์ผ ๊ฒฝ์ฐ, ๊ณต๊ฐ๋ญ๋น๊ฐ ๋ฐ์ํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ๋ง์ ํ์ผ๋ค์ ๊ทธ ํฌ๊ธฐ๊ฐ ์๋ค.
๋ ๋๋ฌด ํฐ ํ์ผ์ ๊ฒฝ์ฐ๋ ํ๋์ ๋ธ๋ก์ผ๋ก index ๋ฅผ ์ ์ฅํ๊ธฐ์ ๋ถ์กฑํ๋ค.
linked scheme ์ ์ฌ์ฉํ๋ค. index ๊ณต๊ฐ์ด ๋ถ์กฑํด์ง๋ง ๊ฐ์ฅ ๋ง์ง๋ง ์ค์ 2๋ฒ์งธ index ์ ์์น๋ฅผ ๋จ๊ธด๋ค. ๊ทธ๋ฌ๋ฉด ์์ฐจ์ ์ผ๋ก ๋ค์ index ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
multi level index ๋ฅผ ์ฌ์ฉํ๋ค. 2๋จ๊ณ ํ์ด์ง ํ ์ด๋ธ์ฒ๋ผ index ์์ ๋ค๋ฅธ index ์ ์์น๋ฅผ ๋์ดํ๋ค.
์์ ์ธ ๊ฐ์ง ํ ๋น ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ด๋ก ์ ์ธ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ค์ ๋ก๋ ์ด๋ค ์์ผ๋ก ํ์ผ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ณด๊ดํ๊ณ ์์๊น
boot block
๋ชจ๋ ์ปดํจํฐ์ ํ์ผ์์คํ ์ ๋์ผํ๊ฒ ์ฒซ๋ฒ์งธ๋ก ์กด์ฌํ๋ค.
๋ถํ ์ ํ์ํ ์ ๋ณด, bootstrap loader
super block
ํ์ผ ์์คํ ์ ๊ดํ ์ด์ฒด์ ์ธ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค.
inode ์ ๊ธธ์ด, ์์์ ๋ฑ
inode list
inode = index node
ํ์ผ ํ๋ ๋น 1๊ฐ์ inode ๊ฐ ํ ๋น๋๋ค.
์ค์ ํ์ผ ์์คํ ์์๋ ๋๋ ํ ๋ฆฌ๊ฐ ๋ชจ๋ ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ ์๋๋ค. ์ค์ ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ๋ค์ ๋ณ๋์ ๊ณต๊ฐ์์ ๊ด๋ฆฌ๋ฅผ ํ๊ณ ์๋๋ฐ, ๊ทธ ๊ณต๊ฐ์ด ๋ฐ๋ก inode list ์ด๋ค.
ํ์ผ ์ด๋ฆ์ ์ ์ธํ ํ์ผ์ ๋ชจ๋ ๋ฉํ๋ฐ์ดํฐ๋ ์ด๊ณณ์ ์ ์ฅ๋์ด์๋ค.
์ ์ inode ๊ณต๊ฐ์ผ๋ก ํจ์จ์ ์ธ ํ์ผ ๋ฐ์ดํฐ ์ ๊ทผ ๊ด๋ฆฌ
direct block : ๋ฐ๋ก ํ์ผ๋ฐ์ดํฐ๋ก ์ ๊ทผ ๊ฐ๋ฅ
single indirect : ํ๋ฒ index ๋ฅผ ๊ฑฐ์ณ์ ๋ฐ์ดํฐ์ ์ ๊ทผ ๊ฐ๋ฅ
double indirect
triple indirect
data block
ํ์ผ์ ์ค์ ๋ด์ฉ์ ๋ณด๊ดํ๋ค.
ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ ์ค, ์ ๋ชฉ์ ๊ฐ์ง๊ณ ์๋ค.
directory file : <file ์ด๋ฆ + inode ๋ฒํธ> ํํ๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
boot block
FAT
ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ ์ค ์์น์ ๋ณด๋ฅผ FAT ์ด ๊ฐ์ง๊ณ ์๋ค.
data block ์ ๊ฐ์๋งํผ ์กด์ฌํ๋ค.
root directory
data block
ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ ์ค ์์น์ ๋ณด๋ฅผ ์ ์ธํ ๋ชจ๋ ์ ๋ณด๋ฅผ directory ๊ฐ ๊ฐ์ง๊ณ ์๋ค.
directory file : <file ์ด๋ฆ - FAT ์์คํ ๋ฒํธ>
์ฅ์
์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. FAT ํ์ผ ์์คํ ๋ด๋ถ์ ๋ฒํธ ์ฐ๊ฒฐ๋ง ๋ฐ๋ผ๊ฐ๋ฉด ์ง์ data block ์ ์ ๊ทผํ์ฌ ์ด์ด๋ณด์ง ์์๋ ์ง์ ์ํ๋ ํ์ผ์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
ํ sector ๊ฐ ๊ณ ์ฅ๋์ pointer ๊ฐ ์ ์ค๋๋๋ผ๋ FAT ๋ด๋ถ์ ์์น์ ๋ณด๊ฐ ์์ผ๋ reliability ๊ฐ ๋ณด์ฅ๋๋ค.
์์ ๋ ๊ฐ์ง ํ์ผ์์คํ ์ ๊ตฌ์กฐ๋ง ๋ณด์์ง๋ง, ์ค์ ๋ก๋ ๋ค์ํ ๊ตฌ์กฐ๋ค์ด ์กด์ฌํ๊ณ ๋ณํ๋์ด ์ฐ์ธ๋ค.
bit map/bit vector
linked list
grouping
counting
0, 1๋ก ๋ธ๋ก์ด ์ฌ์ฉ์ค์ธ์ง ํ์ํ๋ค.
๋จ์ : ๋์คํฌ ๋ด๋ถ์ ๋ถ๊ฐ์ ์ธ ๊ณต๊ฐ์ ํ์๋ก ํ๋ค.
์ฅ์ : ์ฐ์์ ์ธ n๊ฐ์ free block ์ ์ฐพ๋๋ฐ ํจ๊ณผ์ ์ด๋ค.
๋ชจ๋ free block ๋ค์ ๋งํฌ๋ก ์ฐ๊ฒฐํ๋ค. free list
์ฐ์์ ์ธ ๊ฐ์ฉ ๊ณต๊ฐ์ ์ฐพ๋ ๊ฒ์ด ์ฝ์ง ์๋ค.
๋ฐ๋ผ์ ํ์ค์์ ์ฌ์ฉํ๊ธฐ์๋ ์ฝ์ง ์๋ค.
ํ์ง๋ง ๊ณต๊ฐ์ ๋ญ๋น๊ฐ ์๋ค.
linked list ๋ฐฉ๋ฒ์ ๋ณํ
์ฒซ๋ฒ์งธ free block ์ด n๊ฐ์ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๋ค.
n-1 pointer ๋ free data block ์ ๊ฐ๋ฆฌํจ๋ค.
๋ง์ง๋ง pointer ๊ฐ ๊ฐ๋ฆฌํค๋ block ์ ๋๋ค์ n pointer ๋ฅผ ๊ฐ์ง๋ค.
ํ๋ก๊ทธ๋จ๋ค์ด ์ข ์ข ์ฌ๋ฌ๊ฐ์ ์ฐ์์ ์ธ block ์ ํ ๋นํ๊ณ ๋ฐ๋ฉํ๋ค๋ ์ฑ์ง์ ์ฐฉ์ํ๋ค.
(first free block, ์ฐ์์ ์ธ free blocks) ์ ํํ๋ก ๊ด๋ฆฌํ๋ค.
linear list
hash table
<file name, file metadata> ์ list
๊ตฌํ์ด ๊ฐ๋จํ๋ค.
๋๋ ํ ๋ฆฌ ๋ด์ ํ์ผ์ด ์๋์ง ์ฐพ๊ธฐ ์ํด์๋ linear search ๊ฐ ํ์ํ๋ค.
time-consuming
linear list + hashing
hash table์ ํ์ผ ์ด๋ฆ์ ์ด ํ์ผ์ linear list ์ ์์น๋ก ๋ฐ๊พธ์ด์ค๋ค.
search time ์ ์์ด๋ค.
collision ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
์๋ก ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ์ด ๊ฐ์ entry ๋ก ๋งคํ๋๋ ๋ฌธ์
hash ํจ์์์ ํํ ๋ฐ์ํ๋ ๋ฌธ์
๋๋ ํ ๋ฆฌ ๋ด์ ์ง์ ๋ณด๊ดํ๋ ๋ฐฉ๋ฒ๊ณผ
๋๋ ํ ๋ฆฌ์๋ ํฌ์ธํฐ๋ฅผ ๋๊ณ ๋ค๋ฅธ ๊ณณ์ ๋ณด๊ดํ๋ ๋ฐฉ๋ฒ
inode, FAT ๋ฑ
<file name, file์ ๋ฉํ๋ฐ์ดํฐ>์ list ์์ ๊ฐ entry ๋ ์ผ๋ฐ์ ์ผ๋ก ๊ณ ์ ํฌ๊ธฐ
file name ์ด ๊ณ ์ ํฌ๊ธฐ์ entry ๊ธธ์ด๋ณด๋ค ๊ธธ์ด์ง๋ ๊ฒฝ์ฐ, entry ์ ๋ง์ง๋ง ๋ถ๋ถ์ ์ด๋ฆ์ ๋ท๋ถ๋ถ์ด ์์นํ ๊ณณ์ ํฌ์ธํฐ๋ฅผ ๋๋ ๋ฐฉ๋ฒ
์ด๋ฆ์ ๋๋จธ์ง ๋ถ๋ถ์ ๋์ผํ directory file ์ ์ผ๋ถ์ ์กด์ฌํ๋ค.
์๋ก ๋ค๋ฅธ ๋ค์ํ file system ์ ๋ํด ๋์ผํ ์์คํ ์ฝ ์ธํฐํ์ด์ค api ๋ฅผ ํตํด ์ ๊ทผํ ์ ์๊ฒ ํด์ฃผ๋ OS layer
์๊ฒฉ์ ์ ์ฅ๋์ด์๋ ํ์ผ ์์คํ ์ ์ ๊ทผ์ ํด์ผํ๋ ๊ฒฝ์ฐ
๋ถ์ฐ ์์คํ ์์๋ ๋คํธ์ํฌ๋ฅผ ํตํด ํ์ผ์ด ๊ณต์ ๋ ์ ์๋ค. NFS๋ ์ด๋ฌํ ๋ถ์ฐํ๊ฒฝ์์ ๋ํ์ ์ผ๋ก ํ์ผ์ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ชจ๋ NFS ๋ชจ๋์ด ์์ด์ผ ํ๋ค.
NFS client
NFS server
virtual memory ์ paging system ์์ ์ฌ์ฉํ๋ page frame ์ caching ์ ๊ด์ ์์ ์ค๋ช ํ๋ ์ฉ์ด
memory-mapped i/o ๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ, file ์ i/o ์์๋ page cache ๋ฅผ ์ฌ์ฉํ๋ค.
ํ์ผ ์์คํ ์ ํตํ i/o ์ฐ์ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ํน์ ์์ญ์ธ buffer cache ๋ฅผ ์ฌ์ฉํ๋ค.
ํ์ผ ์ฌ์ฉ์ locality ๋ฅผ ํ์ฉํ๋ค.
ํ๋ฒ ์ฝ์ด์จ block ์ ๋ํ ํ์ ์์ฒญ ์, buffer cache ์์ ์ฆ์ ์ ๋ฌํ๋ค.
๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ๊ณต์ฉ์ผ๋ก ์ฌ์ฉ๋๋ค.
replacement algorithm์ด ํ์ํ๋ค. LRU, LFU ๋ฑ
์ต๊ทผ์ OS ์์๋ ๊ธฐ์กด์ buffer cache ๊ฐ page cache ์ ํตํฉ๋๋ค.
buffer cache ๋ฅผ ์ํ ๋ณ๋์ ๊ณต๊ฐ์ ๋ถ๋ฆฌํด๋์ง ์๊ณ , page cache ์์ ํ์ํ ๋๋ง๋ค ํ ๋นํด์ ์ด๋ค.
unified buffer cache ๋ฅผ ์ด์ฉํ์ง ์์ ๋
I/O read() & write() ๋ฅผ ์คํํ๋ฉด, buffer cache๋ฅผ ๊ฑฐ์ณ์ ์บ์ ๋ด ์กด์ฌํ๋ฉด ๋ฐ๋ก ์๋ตํ๊ณ , ์๋ค๋ฉด, file system ์์ ๊ฐ์ ธ์ buffer cache ์ ๋ฑ๋กํ ๋ค, ์๋ตํด์ค๋ค.
memory-mapped I/O ๋ฅผ ์คํํ๋ฉด, page cache ๋ฅผ ์ผ๋จ ๊ฒ์ฌํ ๋ค, ์๋ค๋ฉด buffer cache ๋ฅผ ๊ฒ์ฌํ๊ณ , ๊ทธ๊ณณ์๋ ์์ ๋, file system ์ ์ ๊ทผํ์ฌ ๊ฐ์ ธ์จ๋ค.
unified buffer cache ๋ฅผ ์ด์ฉํ ๋
ํตํฉ๋ ๋ฒํผ ์บ์๋ฅผ ์ฌ์ฉํ ๋๋ ์ด๋ฌํ ๊ณผ์ ์ด ๋ณด๋ค ๋จ์ํด์ง๋ค.
page cache ๋ฅผ buffer cache ๋ก ์ฐ๊ธฐ ๋๋ฌธ์ ์คํ ํ๋ก์ธ์ค๊ฐ ํ๊ฒฐ ๊ฐ๋จํด์ง๋ค.
file์ ์ผ๋ถ๋ฅผ virtual memory ์ mapping ์ํจ๋ค.
๋งคํ์ํจ ์์ญ์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ฐ์ฐ์ ํตํด ํ์ผ์ ์ ์ถ๋ ฅ์ ์ํํ ์ ์๋ค.
์์ ๊ทธ๋ฆผ์์ ๋ณด๋ฉด, ํ๋ก์ธ์ค ๋ด๋ถ์ code
์์ญ์ด memory-mapped i/o ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฅ ๋ํ์ ์ธ ์์ด๋ค.
ํ๋ก์ธ์ค๊ฐ ์คํ๋ ๋, ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ก๋๋๊ณ , ํ๋ก์ธ์ค๊ฐ ์ค์์นญ ๋๋ฉด, ๋๋ถ๋ถ์ ๋ฐ์ดํฐ๋ swap area ๋ก ์ด๋ํ์ฌ ์์ ๋ณด๊ด๋๋ค.
ํ์ง๋ง code ์์ญ์ ์ด๋ฏธ ์คํํ์ผ ์์ฒด์์ ๋ชจ๋ ๊ฒ์ด ์ฐ์ฌ์ง ์์ฑ๋ ํํ์ read only ์์ญ์ด๋ค. ๋ฐ๋ผ์ ํ๋ก์ธ์ค๊ฐ ์ค์์นญ ๋๋ ๋น์์ ์ํ๋ฅผ ์ ์ฅํ๋ swap area ์ ์ ์ฅํ ํ์๊ฐ ์์ด, virtual memory ์์ฒด์ ๋งคํ๋์ด ์ฝ์ผ๋ฉด ๋๋ค.
virtual memory ์ ์๋ ๋ด์ฉ์ผ ๊ฒฝ์ฐ, ํ์ด์ง ํดํธ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค. file system ์ธ ์คํํ์ผ์์ ํ์ํ ์ฝ๋์ ๋ด์ฉ์ ๋ ์ผ์ ๋ถ๋ถ ๋ถ๋ฌ์ virtual memory ์ ๋งคํ์์ผ ์ฝ์ผ๋ฉด ๋๋ค.
๊ฒฐ๊ตญ, ์ฌ์ฉ์๊ฐ file system ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง ์ธํฐํ์ด์ค๊ฐ ์๋ค.
I/O read() & write() ํจ์๋ฅผ ์ด์ฉํ๋ ๊ฒฝ์ฐ์ด๊ณ ,
memory-mapped I/O ๋ฅผ ์ด์ฉํ๋ ๊ฒฝ์ฐ์ด๋ค.
unifed buffer cache ์์ 1๋ฒ์ ์ด์ฉํ ๊ฒฝ์ฐ์๋ physical memory ์ ๋งคํ๋ ๋ฐ์ดํฐ ์์ฒด๊ฐ ์ด๋ฏธ buffer cache ์ด๋ฏ๋ก, ์์ฒญ๋ ๋ด์ฉ์ด ์กด์ฌํ๋ฉด ๊ทธ ๋ถ๋ถ์ copy
ํ์ฌ ํ๋ก์ธ์ค์๊ฒ ์๋ตํ๋ค. ๊ธฐ์กด ๋ฌผ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ์ ๋ณด๋ฅผ ๋งคํํ๋ ๊ฒ์ด ์๋๋ผ ๋ณต์ฌํด์ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ ์ผ๊ด์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ฌ์ง๊ฐ ์๊ณ ์ด์์ฒด์ ๊ฐ ์ค๊ฐ์ ํญ์ ์ค์ฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ์ ์ข ๋ ์์ํ๋ค๋ ์ฅ์ ์ด ์๋ค.
2๋ฒ์ผ ๊ฒฝ์ฐ์๋ physical memory ์ ์ฌ๋ ค์ ธ์๋ ๋ฐ์ดํฐ๋ฅผ virtual memory ์ ๋งคํ
ํ์ฌ ์ฌ์ฉํ๋ค. ์ด ๊ฒฝ์ฐ, ์ผ๋จ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ง ๋ฐ์ดํฐ๋ ์ด์์ฒด์ ๋ฅผ ์์คํ
์ฝ๋ก ํธ์ถํ์ง ์๊ณ ์์ ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ ๋ด์์ ์๋ตํ ์ ์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ณ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์์ ๋์ ๊ฐ์ ๋งค๋ชจ๋ฆฌ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๋ ์๊ฐ์ด๋ ๋
ธ๋ ฅ์ ๋ค์ด์ง ์์ ์ ์๋ค.
๋จ์ ์ด ์๋ค๋ฉด, physical memory ๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค๊ณผ ๊ณต์ ํด์ ์ด์ฉํ๋ฏ๋ก, ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.