๐Ÿ“Œ ํŒŒ์ผ์‹œ์Šคํ…œ

4 minute read

๐ŸŒทFile System

๐ŸŒธ File and File System

  • File
    • โ€œA named collection of related informationโ€
    • ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„ํœ˜๋ฐœ์„ฑ์˜ ๋ณด์กฐ ๊ธฐ์–ต ์žฅ์น˜์— ์ €์žฅ
    • ์šด์˜์ฒด์ œ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ์–ต ์žฅ์น˜๋ฅผ file์ด๋ผ๋Š” ๋™์ผํ•œ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์คŒ
    • Operation
      • create, read, write, reposition (Iseek): ํŒŒ์ผ์˜ ์œ„์น˜๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ, delete, open, close ๋“ฑ
  • File attribute (ํ˜น์€ ํŒŒ์ผ์˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ)
    • ํŒŒ์ผ ์ž์ฒด์˜ ๋‚ด์šฉ์ด ์•„๋‹ˆ๋ผ, ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ข… ์ •๋ณด๋“ค
    • ํŒŒ์ผ ์ด๋ฆ„, ์œ ํ˜•, ์ €์žฅ๋œ ์œ„์น˜, ํŒŒ์ผ ์‚ฌ์ด์ฆˆ
    • ์ ‘๊ทผ ๊ถŒํ•œ(์ฝ๊ธฐ/์“ฐ๊ธฐ/์‹คํ–‰), ์‹œ๊ฐ„(์ƒ์„ฑ/๋ณ€๊ฒฝ/์‚ฌ์šฉ์ž), ์†Œ์œ ์ž
  • File System
    • ์šด์˜์ฒด์ œ์—์„œ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„
    • ํŒŒ์ผ ๋ฐ ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ, ๋””๋ ‰ํ† ๋ฆฌ ์ •๋ณด ๋“ฑ์„ ๊ด€๋ฆฌ
    • ํŒŒ์ผ ์ €์žฅ ๋ฐฉ๋ฒ• ๊ฒฐ์ •
    • ํŒŒ์ผ ๋ณดํ˜ธ ๋“ฑ

๐ŸŒบ Directory and Logical Directory

  • Directory
    • ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ค‘ ์ผ๋ถ€๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ๋Š” ์ผ์ข…์˜ ํŠน๋ณ„ํ•œ ํŒŒ์ผ
    • ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ์— ์†ํ•œ ํŒŒ์ผ ์ด๋ฆ„ ๋ฐ ํŒŒ์ผ attribute๋“ค
    • operation
      • Search for a file, create for a file, delete for a file
      • list a directory, rename a file, traverse the file system
  • Partition (=Logical Disk)
    • ํ•˜๋‚˜์˜ ํŒŒํ‹ฐ์…˜ ์•ˆ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์„ ๋‘๋Š”๊ฒŒ ์ผ๋ฐ˜์ ์ž„
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌผ๋ฆฌ์  ๋””์Šคํฌ๋ฅผ ํ•˜๋‚˜์˜ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ธฐ๋„ ํ•จ
    • ๋ฌผ๋ฆฌ์  ๋””์Šคํฌ๋ฅผ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๊ตฌ์„ฑํ•œ ๋’ค ๊ฐ๊ฐ์˜ ํŒŒํ‹ฐ์…˜์— file system์„ ๊น”๊ฑฐ๋‚˜ swapping ๋“ฑ ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Œ

โ˜˜๏ธ open() ์˜ ๊ณผ์ •

Retrieves metadata from disk to main memory

  • open(/a/b/c)
    • ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ c์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ€์ ธ์˜ด
    • ์ด๋ฅผ ์œ„ํ•˜์—ฌ directory path๋ฅผ search
      • ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ โ€œ/โ€๋ฅผ openํ•˜๊ณ  ๊ทธ ์•ˆ์—์„œ ํŒŒ์ผ โ€œaโ€์˜ ์œ„์น˜ ํš๋“
      • ํŒŒ์ผ โ€œaโ€๋ฅผ openํ•œ ํ›„ readํ•˜์—ฌ ๊ทธ ์•ˆ์— ํŒŒ์ผ โ€œbโ€์˜ ์œ„์น˜ ํš๋“
      • ํŒŒ์ผ โ€œbโ€๋ฅผ openํ•œ ํ›„ readํ•˜์—ฌ ๊ทธ ์•ˆ์— ํŒŒ์ผ โ€œcโ€์˜ ์œ„์น˜ ํš๋“
      • ํŒŒ์ผ โ€œcโ€๋ฅผ openํ•œ๋‹ค.
    • Directory path์˜ search์— ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„ ์†Œ์š”
      • Open์„ read์™€ write์™€ ๋ณ„๋„๋กœ ๋‘๋Š” ์ด์œ ์ž„
      • ํ•œ ๋ฒˆ openํ•œ ํŒŒ์ผ์€ read / write ์‹œ directory search ๋ถˆํ•„์š”
    • Open file table
      • ํ˜„์žฌ open๋œ ํŒŒ์ผ๋“ค์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณด๊ด€์†Œ (in memory)
      • ๋””์Šคํฌ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ณด๋‹ค ๋ช‡ ๊ฐ€์ง€ ์ •๋ณด๊ฐ€ ์ถ”๊ฐ€
        • Openํ•œ ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜
        • File-Offset : ํŒŒ์ผ ์–ด๋А ์œ„์น˜์— ์ ‘๊ทผ ์ค‘์ธ์ง€ ํ‘œ์‹œ (๋ณ„๋„ ํ…Œ์ด๋ธ” ํ•„์š”)
    • file director(file handle, file control block)
      • Open file table์— ๋Œ€ํ•œ ์œ„์น˜ ์ •๋ณด (ํ”„๋กœ์„ธ์Šค ๋ณ„)
  • kernel ์˜์—ญ per-process file descriptor table, system-wide open file table ์ด ๋‘ ๊ฐœ ๋ชจ๋‘ ์˜ฌ๋ผ๊ฐ (process A์˜ PCB)
  • ์‚ฌ์šฉ์ž ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

๐ŸŒณ File Protection

  • ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•ด ๋ˆ„๊ตฌ์—๊ฒŒ ์–ด๋–ค ์ ‘๊ทผ(read/write/execution)์„ ํ—ˆ์šฉํ•  ๊ฒƒ์ธ๊ฐ€?
  • Access Control ๋ฐฉ๋ฒ•
    • Access control Matrix
      • Access control list: ํŒŒ์ผ๋ณ„๋กœ ๋ˆ„๊ตฌ์—๊ฒŒ ์–ด๋–ค ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ‘œ์‹œ
      • Capability: ์‚ฌ์šฉ์ž๋ณ„๋กœ ์ž์‹ ์ด ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ํŒŒ์ผ ๋ฐ ํ•ด๋‹น ๊ถŒํ•œ ํ‘œ์‹œ
    • Grouping
      • ์ „์ฒด user๋ฅผ owner, group, public์˜ ์„ธ ๊ทธ๋ฃน์œผ๋กœ ๊ตฌ๋ถ„
      • ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•ด ์„ธ ๊ทธ๋ฃน์˜ ์ ‘๊ทผ ๊ถŒํ•œ(rwx)์„ 3๋น„ํŠธ์”ฉ ํ‘œ์‹œ
      • ex) UNIX owner / group / other
    • Password
      • ํŒŒ์ผ๋งˆ๋‹ค password๋ฅผ ๋‘๋Š” ๋ฐฉ๋ฒ• (๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์ผ์— ๋‘๋Š” ๋ฐฉ๋ฒ•๋„ ๊ฐ€๋Šฅ)
      • ๋ชจ๋“  ์ ‘๊ทผ ๊ถŒํ•œ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ password: all-or-nothing
      • ์ ‘๊ทผ ๊ถŒํ•œ๋ณ„ password: ์•”๊ธฐ๋ฌธ์ œ, ๊ด€๋ฆฌ๋ฌธ์ œ

๐Ÿ€ Access Methods

  • ์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•˜๋Š” ํŒŒ์ผ ์ •๋ณด์˜ ์ ‘๊ทผ ๋ฐฉ์‹
    • ์ˆœ์ฐจ ์ ‘๊ทผ (Sequensial Access)
      • ์นด์„ธํŠธ ํ…Œ์ดํ”„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ฒ˜๋Ÿผ ์ ‘๊ทผ
      • ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋ฉด offset์ด ์ž๋™์œผ๋กœ ์ฆ๊ฐ€
    • ์ง์ ‘ ์ ‘๊ทผ (direct access, random access)
      • LP ๋ ˆ์ฝ”๋“œ ํŒ๊ณผ ๊ฐ™์ด ์ ‘๊ทผํ•˜๋„๋ก ํ•จ
      • ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์ž„์˜์˜ ์ˆœ์„œ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ

๐ŸŒผ File System์˜ implementation

Allocation of File Data in Disk

  • Continuous Allocation

    • ๋‹จ์ 
      • externel fragmentation (์ค‘๊ฐ„ ์ค‘๊ฐ„์— hole์ด ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ)
      • file grow๊ฐ€ ์–ด๋ ค์›€
        • file ์ƒ์„ฑ์‹œ ์–ผ๋งˆ๋‚˜ ํฐ hole์„ ์ œ๊ณตํ•  ๊ฒƒ์ธ๊ฐ€?
        • grow ๊ฐ€๋Šฅ vs ๋‚ญ๋น„ (internal fragmentation)
    • ์žฅ์ 
      • Fast I/O
        • ํ•œ๋ฒˆ์˜ seek/location์œผ๋กœ ๋งŽ์€ ๋ฐ”์ดํŠธ transfer
        • realtime file์šฉ์œผ๋กœ, ๋˜๋Š” ์ด๋ฏธ run ์ค‘์ด๋˜ process์˜ swapping์šฉ์œผ๋กœ ์ ์ ˆํ•จ
      • Direct Access(random Access) ๊ฐ€๋Šฅ
  • Linked Allocation

    • ์žฅ์ 
      • External Fragmentation์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ
    • ๋‹จ์ 
      • No random access
      • Reliabilityํ•œ ๋ฌธ์ œ์ 
        • ํ•œ sector๊ฐ€ ๊ณ ์žฅ๋‚˜ pointer๊ฐ€ ์œ ์‹ค๋˜๋ฉด ๋งŽ์€ ๋ถ€๋ถ„์„ ์žƒ์Œ
      • Pointer๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„์ด block์˜ ์ผ๋ถ€๋ถ„์ด ๋˜์–ด ๊ณต๊ฐ„ ํšจ์œจ์„ฑ์„ ๋–จ์–ดํŠธ๋ฆผ
        • 512Bytes Sector, 4Bytes Pointer
    • ๋ณ€ํ˜•
      • File Allocation System (FAT) ํŒŒ์ผ์‹œ์Šคํ…œ
        • ํฌ์ธํ„ฐ๋ฅผ ๋ณ„๋„์˜ ์œ„์น˜์— ๋ณด๊ด€ํ•˜์—ฌ reliability์™€ ๊ณต๊ฐ„ ํšจ์œจ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ
  • Indexed Allocation

    • ์žฅ์ 
      • External fragmentation์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ
      • Direct Access ๊ฐ€๋Šฅ
    • ๋‹จ์ 
      • Small file์˜ ๊ฒฝ์šฐ ๊ณต๊ฐ„ ๋‚ญ๋น„๊ฐ€ ์žˆ์Œ(๊ทผ๋ฐ๋กœ ์‹ค์ œ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ํŒŒ์ผ์€ small์ž„)
      • Too large file์˜ ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ Block์œผ๋กœ index๋ฅผ ์ €์žฅํ•˜๊ธฐ ๋ถ€์กฑํ•จ
        • ํ•ด๊ฒฐ๋ฐฉ์•ˆ
          • Linked scheme
          • Multi-level index โ†’ ์ธ๋ฑ์Šค ๊ณต๊ฐ„ ๋‚ญ๋น„๋Š” ์–ด์ฉ” ์ˆ˜ ์—†์Œ

๐ŸŒฑ UNIX ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ

  • Partition์˜ ๊ตฌ์กฐ (=Logical Disk) / ์œ ๋‹‰์Šค ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ฃผ์š” ๊ฐœ๋…
    • Boot block (์–ด๋–ค ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋˜ boot block์ด ์ œ์ผ ์•ž์—์„œ ๋‚˜์˜ด)
      • ๋ถ€ํŒ…์— ํ•„์š”ํ•œ ์ •๋ณด(BootStrap Loader)
    • Super block
      • ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ด์ฒด์ ์ธ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.
    • Inode list
      • ํŒŒ์ผ ์ด๋ฆ„์„ ์ œ์™ธํ•œ ํŒŒ์ผ์˜ ๋ชจ๋“  ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
    • Data block
      • ํŒŒ์ผ์˜ ์‹ค์ œ ๋‚ด์šฉ์„ ์ €์žฅํ•œ๋‹ค.

๐ŸŒต FATํŒŒ์ผ ์‹œ์Šคํ…œ (์ง์ ‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•จ)

  • MS๊ฐ€ MS๋ด‡์„ ๋งŒ๋“ค์—ˆ์„ ๋•Œ ๋งŒ๋“  File System์ž„
  • Partition์˜ ๊ตฌ์กฐ (=Logical Disk)
    • Boot block
    • FAT (Data-block์˜ ํฌ๊ธฐ๋งŒํผ FAT์•ˆ์˜ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ง)
    • Root Directory
    • Data-block

๐ŸŒป Free-Space Management

  1. Bit map or bit vector (continuous Allocation์—์„œ hole๋กœ ์ธํ•ด ๋น„์–ด์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•)
    • Bit map์€ ์ถ”๊ฐ€์ ์ธ ๊ณต๊ฐ„์„ ํ•„์š”๋กœํ•จ
    • ์—ฐ์†์ ์ธ n๊ฐœ์˜ free block์„ ์ฐพ๋Š”๋ฐ ํšจ๊ณผ์ 
  2. Linked List
    • ๋ชจ๋“  Free block์„ ๋งํฌ๋กœ ์—ฐ๊ฒฐ
    • ์—ฐ์†์ ์ธ ๊ฐ€์šฉ๊ณต๊ฐ„์„ ์ฐพ๋Š” ๊ฒƒ์€ ์‰ฝ์ง€ ์•Š๋‹ค
    • ๊ณต๊ฐ„์˜ ๋‚ญ๋น„๊ฐ€ ์—†๋‹ค
  3. Grouping
    • Linked List ๋ฐฉ๋ฒ•์„ ๋ณ€ํ˜•
    • ์ฒซ๋ฒˆ์งธ free block์ด n๊ฐœ์˜ pointer๋ฅผ ๊ฐ€๋ฆฌํ‚ด
    • n-1 ํฌ์ธํ„ฐ๋Š” free data block์„ ๊ฐ€๋ฆฌํ‚ด
    • ๋งˆ์ง€๋ง‰ pointer๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” block์€ ๋˜ ๋‹ค์‹œ n pointer๋ฅผ ๊ฐ€์ง
  4. Counting
    • ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์ข…์ข… ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ข…์†์ ์ธ block์„ ํ• ๋‹นํ•˜๊ณ  ๋ฐ˜๋‚ฉํ•œ๋‹ค๋Š” ์„ฑ์งˆ์„ ์ฐฉ์•ˆ
    • First Free Block, of continuous free blocks๋ฅผ ์œ ์ง€

๐Ÿฅ€ Directory Implememtation

  • Linear List
    • <file name, file์˜ metadata>์˜ List
    • ๊ตฌํ˜„์ด ๊ฐ„๋‹จ
    • ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” linear search๊ฐ€ ํ•„์š”(timing consuming)
  • Hash Table
    • linear list + hasing
    • Hash table์€ file name์„ ์ด ํŒŒ์ผ์˜ linear list์˜ ์œ„์น˜๋กœ ๋ฐ”๊ฟ”์คŒ
    • search time์„ ์—†์•ฐ
    • Collision ๋ฐœ์ƒ ๊ฐ€๋Šฅ
  • File์˜ metadata์˜ ๋ณด๊ด€ ์œ„์น˜
    • ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์ง์ ‘ ๋ณด๊ด€
    • ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” ํฌ์ธํ„ฐ๋ฅผ ๋‘๊ณ  ๋‹ค๋ฅธ ๊ณณ์— ์ €์žฅ
      • inode, FAT ๋“ฑ
  • Long file name์˜ ์ง€์›
    • ์˜ list์—์„œ ๊ฐ entry๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ณ ์ • ํฌ๊ธฐ
    • file name์ด ๊ณ ์ • ํฌ๊ธฐ์˜ entry ๊ธธ์ด๋ณด๋‹ค ๊ธธ์–ด์ง€๋Š” ๊ฒฝ์šฐ, entry์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— ์ด๋ฆ„์˜ ๋’ท๋ถ€๋ถ„์— ์œ„์น˜ํ•œ pointer๋ฅผ ๋‘๋Š” ๋ฐฉ๋ฒ•
    • ์ด๋ฆ„์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ๋™์ผํ•œ directory file์˜ ์ผ๋ถ€์— ์กด์žฌ

๐Ÿ’ VFS ์™€ NFS

  • Virtual File System
    • ์„œ๋กœ ๋‹ค๋ฅธ ๋‹ค์–‘ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ๋™์ผํ•œ ์‹œ์Šคํ…œ ์ฝœ ์ธํ„ฐํŽ˜์ด์Šค(API)๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” OS์˜ Layer
  • Network File System
    • ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์ด ๊ณต์œ ๋  ์ˆ˜ ์žˆ์Œ
    • NFS๋Š” ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ์˜ ๋Œ€ํ‘œ์ ์ธ ํŒŒ์ผ ๊ณต์œ  ๋ฐฉ๋ฒ•์ž„

๐ŸŒณ Page Cache And Buffer Cache

  • Page Cache
    • Virtual memory์˜ paging system์—์„œ ์‚ฌ์šฉํ•˜๋Š” page frame์„ caching์˜ ๊ด€์ ์—์„œ ์„ค๋ช…ํ•˜๋Š” ์šฉ์–ด
    • Memory Mapped I/O์„ ์“ฐ๋Š” ๊ฒฝ์šฐ, file์˜ I/O์—์„œ๋„ page cache ์‚ฌ์šฉ
  • Memory Mapped I/O
    • File์˜ ์ผ๋ถ€๋ถ„์„ virtual memory์— mapping ์‹œํ‚ด
    • ๋งคํ•‘ ์‹œํ‚จ ์˜์—ญ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์—ฐ์‚ฐ์€ ํŒŒ์ผ์˜ ์ž…์ถœ๋ ฅ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•จ
  • Buffered Cache
    • ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ํ†ตํ•œ I/O ์—ฐ์‚ฐ์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ์˜์—ญ์ด Buffer cache ์‚ฌ์šฉ
    • File ํ™œ์šฉ์˜ locality์‚ฌ์šฉ
      • ํ•œ๋ฒˆ ์ฝ์–ด์˜จ block์— ๋Œ€ํ•œ ํ›„์† ์š”์ฒญ์‹œ buffer cache์—์„œ ์ฆ‰์‹œ ์ „๋‹ฌ
    • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ
    • Replacement algorithm ํ•„์š”(LRU, LFU)
  • Unified Buffer Cache
    • ์ตœ๊ทผ์˜ OS์—์„œ Buffer cache๊ฐ€ page cache๋กœ ํ†ตํ•ฉ๋จ

BufferCache

Program running