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 ๋ฅผ ํฌํจํ๋ค.


- Open
- ๋์คํฌ์์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.
- ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์์ ํ์ผ์ ์ ํํ๋ค.
- FCB ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.
- ์ฒ์ ์ฌ๋ฆฌ๋ ๊ฒฝ์ฐ system-wide open-file table ์ entry ๋ฅผ ์ถ๊ฐํ๋ค.
- 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)
- 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
- 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 ์์ ๋จ์์๋ ๋ชจ๋ ๊ฑฐ๋๋ ์ฒ๋ฆฌ๋์ด์ผ ํ๋ค.