• toc {:toc}

File System Structure

  • Disk๋Š” ๋ฎ์–ด์“ฐ๊ธฐ, ๋žœ๋ค ์ ‘๊ทผ์„ ์ œ๊ณตํ•œ๋‹ค.

    • I/O ์ „์†ก์€ ํ•˜๋‚˜ ์ด์ƒ์˜ sector๋กœ ์ด๋ฃจ์–ด์ง„ block๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. (512bytes or 4KB)
    • ์ผ๋ฐ˜์ ์œผ๋กœ 4KB
  • File system โ†’ secondary storage์— ์œ„์น˜ํ•œ๋‹ค.

  • Mapping Logical to physical

  • Logical file system ์€ metadata ์ •๋ณด๋ฅผ ๋‹ค๋ฃฌ๋‹ค.

  • Metadata : ๊ตฌ์กฐ ์œ ์ง€๋ฅผ ์œ„ํ•œ ์ •๋ณด. ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋ฅผ ํฌํ•จํ•œ๋‹ค.

  • File Control Block (FCB)๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค.

  • File organization module โ†’ logical block๊ณผ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

    • ๊ฐ ํŒŒ์ผ์˜ logical block โ‡’ 0~N ์œผ๋กœ ๋ฒˆํ˜ธ ๋งค๊ฒจ์ง„๋‹ค.
    • Free-space manager๋ฅผ ํ†ตํ•ด ํ• ๋‹น๋˜์ง€ ์•Š์€ block์„ ์ถ”์ ํ•œ๋‹ค.
  • Basic file system

    • logical block ์ฃผ์†Œ๋“ค์— ๋Œ€ํ•ด ๋“œ๋ผ์ด๋ธŒ์— ๋ช…๋ น์„ ๋‚ด๋ฆฐ๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ์™€ ์บ์‰ฌ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
    • Block I/O subsystem์ด๋ผ ๋ถˆ๋ฆฐ๋‹ค.
  • Device driver

    • I/O device๋ฅผ ๋‹ค๋ฃฌ๋‹ค.
    • ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋””์Šคํฌ ์‚ฌ์ด ์ •๋ณด๋ฅผ ์ „์†กํ•œ๋‹ค.
    • High level ๋ช…๋ น์ด ์ฃผ์–ด์ง€๊ณ  low level instruction์„ ์ถœ๋ ฅํ•œ๋‹ค.

Disk Structure

  • Partition : ๋””์Šคํฌ์˜ ๋…ผ๋ฆฌ์  ๋ถ„ํ• ์„ ๋œปํ•œ๋‹ค. โ‡’ ๋””์Šคํฌ๋ฅผ ๋ถ„ํ• ํ•œ ๊ฒƒ์„ ๋งํ•จ.

    • Raw(w/o file system), Formatted(w/ file system)์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.
  • Volumn : ํ•˜๋‚˜์˜ file system์˜ logical area

    • Device directory ๋˜๋Š” volume table of contents๋ฅผ ์ด์šฉํ•ด file system ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.

File System Operation

  • Boot control block (per volumn) : OS๋ฅผ bootํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค.
    • OS๋ฅผ ํฌํ•จํ•œ volumn์˜ ๊ฒฝ์šฐ ์ฃผ๋กœ volumn์˜ ์ฒซ block์„ boot control block์ด ์ฐจ์ง€ํ•œ๋‹ค.
  • Volumn control block (per volumn) : volumn์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค.
    • ์ด block ์ˆ˜, free block ์ˆ˜, ํฌ๊ธฐ, ๋“ฑ
  • Directory structure (per file system) : file์„ ๊ด€๋ฆฌํ•œ๋‹ค.
  • File control block (per file) : file์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค.
  • Mount table : file system mount, mount point ๋“ฑ์„ ์ €์žฅํ•œ๋‹ค.
  • Directory structure cache : ์ตœ๊ทผ ์ ‘๊ทผํ•œ directory ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • System-wide open-file table : ์‹œ์Šคํ…œ ์ „์ฒด์˜ ์—ด๋ฆฐ file์˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค.
  • Per-process open-file table : system-wide open-file table์—์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฐ pointer๋ฅผ ํฌํ•จํ•œ๋‹ค.

image

image

  • ํŒŒ์ผ open ๊ณผ์ •
  1. Open
  2. ๋””์Šคํฌ์—์„œ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
  3. ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ์—์„œ ํŒŒ์ผ์„ ์„ ํƒํ•œ๋‹ค.
  4. FCB๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ๋‹ค.
  5. ์ฒ˜์Œ ์˜ฌ๋ฆฌ๋Š” ๊ฒฝ์šฐ system-wide open-file table์— entry๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  6. Per-process open-file table์— ํ•ด๋‹น ํŒŒ์ผ์˜ system-wide open-file table entry๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” pointer๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

Directory Implementation

  • Linear List : Data block์— ๋Œ€ํ•ด (file name / pointer) ์ €์žฅ
    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๊ธฐ ์‰ฝ๋‹ค.
    • ์‹œ๊ฐ„ ์†Œ์š”๊ฐ€ ์žˆ๋‹ค. (์„ ํ˜• ๋ณต์žก๋„)
    • linked list ๋˜๋Š” B+ tree ์ด์šฉํ•ด ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ์ •๋ ฌ ๊ฐ€๋Šฅ
  • Hash Table : hash ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ linear list
    • Search time์„ ๊ฐ์†Œ์‹œํ‚จ๋‹ค.
    • Collision : ํ•ด์‰ฌ ํ•จ์ˆ˜์— ์˜ํ•ด ๋ณ€ํ™˜๋์„ ๋•Œ ๊ฐ™์€ ์œ„์น˜์— 2๊ฐœ์˜ ํŒŒ์ผ์ด ์œ„์น˜ํ•˜๋Š” ์ƒํ™ฉ
      • ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ file๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ โ†’ Collision ๋ฐœ์ƒ X
      • ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๋ฉด linked list๋กœ ํŒŒ์ผ ์—ฐ๊ฒฐ

Contiguous Allocation Method

  • ๊ฐ file์ด contiguous block์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ ์œ ํ•œ๋‹ค.

  • ๊ฐ„๋‹จํ•˜๋‹ค.

  • (file, Start, Length) ๊ตฌ์กฐ

  • ๋ฌธ์ œ์ 

    • ๋น„์–ด์žˆ๋Š” ๊ณต๊ฐ„์„ ์ฐพ๋Š” ๊ณผ์ •(Free frame ์ฐพ๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค. Free disk block ์ฐพ๊ธฐ)
    • ๋™์  ์ €์žฅ์†Œ ํ• ๋‹น
    • External fragmentation
  • โ‡’ ๋ณ€ํ˜•

  • ์ฒ˜์Œ์—๋Š” contiguousํ•˜๊ฒŒ ์ €์žฅ

  • Hole์ด ์ƒ๊ฒผ์„ ๋•Œ contiguousํ•˜๊ฒŒ ์ €์žฅํ•œ ํ›„ ์ €์žฅํ•˜์ง€ ๋ชปํ–ˆ์„ ๋•Œ ๋‹ค์Œ hole์—์„œ contiguousํ•˜๊ฒŒ ์ €์žฅ

Linked Allocation Method

  • ๊ฐ file์ด block์˜ linked list๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

  • Block ์•ˆ์— ๋‹ค์Œ block์˜ ๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋œ๋‹ค.

  • (file, Start, End) ๊ตฌ์กฐ

  • ์••์ถ•, External fragmentation ์—†๋‹ค.

  • ๋ฌธ์ œ์ 

    • ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ๋‹ค. ---โ‡’ ์ค‘๊ฐ„ ์ •๋ณด๊ฐ€ ์œ ์‹ค๋˜๋ฉด ๋‹ค์Œ block์€ ์ „๋ถ€ ์ ‘๊ทผ ๋ถˆ๊ฐ€
    • Block์˜ ์ค‘๊ฐ„ ์œ„์น˜๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” disk seek ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.
  • File Allocation Table (FAT)

    • File๋“ค์ด ์—ฐ๊ฒฐ๋œ ๋ฒˆํ˜ธ๋“ค์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” table์ด๋‹ค.
    • Table์ด ๊ฐ block์— ๋Œ€ํ•ด ์—ฐ๊ฒฐ๋œ block number๋กœ ์ธ๋ฑ์‹ฑ๋œ ํ•˜๋‚˜์˜ entry๋งŒ ๊ฐ–๋Š”๋‹ค.
    • MS Dos ์—์„œ ์‚ฌ์šฉ๋๋‹ค.

Indexed Allocation Method

  • ๊ฐ block์˜ pointer๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” index block๋ฅผ ์ง€๋‹Œ๋‹ค.
  • (file, index block)

Performance of Allocation Methods

  • File access type์— ๋”ฐ๋ผ ์ข‹์€ ๋ฐฉ๋ฒ• ๋‹ค๋ฅด๋‹ค.

    • Contiguous โ†’ sequential / random
    • Linked โ†’ sequential / not random
  • ๋งŒ๋“ค ๋•Œ contiguous or linked๋ฅผ ์„ ํƒํ•œ๋‹ค.

  • Indexed๊ฐ€ ๋” ๋ณต์žกํ•˜๋‹ค.

    • ํ•˜๋‚˜์˜ block์„ ์ฝ์œผ๋ คํ•ด๋„ index block์„ ์ฝ์–ด์•ผ ํ•˜๋ฏ€๋กœ ์ถ”๊ฐ€ ์—ฐ์‚ฐ ๋ฐœ์ƒ
    • โ‡’ ์—ฌ๋Ÿฌ ๊ฐœ ์—ฐ์†๋œ ๋ฌถ์Œ์œผ๋กœ ํ• ๋‹นํ•œ๋‹ค. โ‡’ throughput ํ–ฅ์ƒ, CPU overhead ๊ฐ์†Œ
  • NVM โ†’ disk head ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•„์š”

Free-Space Management

  • ์ด์šฉ ๊ฐ€๋Šฅํ•œ block, cluster๋ฅผ ์ถ”์ ํ•˜๋Š” free-space list๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • Bit vector or bit map (n blocks)

  • block free : 1

  • block occupied : 0

  • word โ‡’ bit๋ฅผ ์ผ์ •ํ•œ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ

  • (0์œผ๋กœ ๊ตฌ์„ฑ๋œ word) X (word ์•ˆ์˜ bit์˜ ์ˆ˜) + (1์ด ๋‚˜์˜ฌ ๋•Œ ๊นŒ์ง€์˜ bit ์ˆ˜) โ‡’ free block

  • Contiguous file์„ ์–ป๊ธฐ ์‰ฝ๋‹ค.

  • Linked List (Free List) : free block์ด linked list๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.

  • Grouping : n ๊ฐœ์˜ free block์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋„๋ก linked list ๊ตฌ์„ฑ

  • Counting : (start addr, length)๋กœ countingํ•ด ์ €์žฅ [(0, 2), (6, 2), (14, 3) โ€ฆ]

  • Space Maps

Efficiency and Performance

  • Efficiency
    • Fragmentation ๋ฐœ์ƒํ•˜๋ฉด ํšจ์œจ ๊ฐ์†Œ
    • Metadata ์ฆ๊ฐ€ โ‡’ ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ €์žฅ๊ณต๊ฐ„ ๊ฐ์†Œ โ‡’ ํšจ์œจ ๊ฐ์†Œ
    • Metadata ํ•„์š”์‹œ ์ถ”๊ฐ€ โ‡’ ๋นˆ๊ณต๊ฐ„ ์ฐพ๋Š” overhead โ‡’ ํšจ์œจ ๊ฐ์†Œ
    • FCB ๊ณต๊ฐ„ ๋ฏธ๋ฆฌ ํ• ๋‹น โ‡’ ์•ˆ ์“ฐ๋ฉด ํšจ์œจ ๊ฐ์†Œ
  • Performance
    • data์™€ metadata๊ฐ€ ๊ฐ™์ด ์œ„์น˜ํ•˜๋„๋ก ์œ ์ง€ํ•ด disk๊ฐ€ ๋œ ์›€์ง์ด๊ฒŒ ํ•œ๋‹ค.
    • Buffer cache : ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” block์— ๋Œ€ํ•œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์—ญ์„ ๋ถ„๋ฆฌํ•œ๋‹ค.
    • Synchronous : ๋ฐ”๋กœ disk์— ์ž‘์„ฑ
    • Asynchronous : buffer์— ๋†”๋‘๊ณ  ๋‚˜์ค‘์— disk์— ์ž‘์„ฑ (๋” ํ”ํ•œ ๋ฐฉ์‹)
      • ๋ชจ์•˜๋‹ค๊ฐ€ ์ž‘์„ฑํ•ด์„œ ๋” ๋น ๋ฅด๋‹ค. ๊ณ„์† ์ ‘๊ทผํ•  ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ๋•Œ๋ฌธ.
    • Free-behind / read-ahead : sequential access์— ์ตœ์ ํ™”
    • Read๊ฐ€ ์ฃผ๋กœ write๋ณด๋‹ค ๋А๋ฆฌ๋‹ค.
      • read โ†’ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ฝ์–ด์•ผ ํ•œ๋‹ค.
      • write โ†’ ๋ฐ์ดํ„ฐ buffer์— ์ €์žฅํ•ด๋’€๋‹ค๊ฐ€ ๋ฎ์–ด์”Œ์šฐ๋ฉด ๋œ๋‹ค.

Page Cache

  • Virtual memory, address๋ฅผ ์ด๋™ํ•ด page๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • ๋””์Šคํฌ๋กœ์˜ ์ ‘๊ทผ๋ณด๋‹ค cache ์ ‘๊ทผ์ด ๋” ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•œ๋‹ค.
  • ํ•œ ๋ฒˆ ์ฝ์€ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ page cache ์˜์—ญ์— ์ €์žฅ์‹œ์ผœ ๋†“๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹ โ‡’ ๋””์Šคํฌ ์ ‘๊ทผ ๊ฐ์†Œ
  • Memory-mapped I/O์ด page cache ์ด์šฉ
  • File system์˜ routine I/O๋Š” buffer cache ์ด์šฉ

Unified Buffer Cache

  • ๋Œ€๋ถ€๋ถ„์˜ block์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” block์ด๋‹ค.
  • โ†’ ํŒŒ์ผ์˜ ๋‚ด์šฉ์ด buffer cache์— ์กด์žฌ
  • โ†’ ๋”ฐ๋ผ์„œ buffer cache์—๋„ ์กด์žฌํ•˜๊ณ  page cache์—๋„ ์กด์žฌํ•˜๋Š” ์ด์ค‘ cache๋ฌธ์ œ ๋ฐœ์ƒ
  • โ†’ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ™์€ page cache๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

Recovery

  • Consistency checking : ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์ธ / ๋™์ผํ•˜์ง€ ์•Š์œผ๋ฉด ๋ณต๊ตฌ
  • Back up ํ•ด ๋†“๊ณ  ๋ณต๊ตฌํ•œ๋‹ค.

Log Structured File Systems

  • Log structured(or journaling) : ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.

  • ๋ชจ๋“  ๊ฑฐ๋ž˜๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ log์— ์จ์ง„๋‹ค.

  • ๊ฑฐ๋ž˜๊ฐ€ ๊ฐ€๋” device๋‚˜ disk section์— ์จ์ง€๋Š” ๊ฒฝ์šฐ ์žˆ๋‹ค.

  • log๋Š” asynchronousํ•˜๊ฒŒ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌ์กฐ์— ๋ฐ˜์˜๋œ๋‹ค.

    • log๊ธฐ๋ก๋งŒ ๋˜๊ณ  disk์— ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
  • ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ์ถฉ๋Œ์ด ๋‚˜๋ฉด log์—์„œ ๋‚จ์•„์žˆ๋Š” ๋ชจ๋“  ๊ฑฐ๋ž˜๋Š” ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค.