[์šด์˜์ฒด์ œ ์ •๋ฆฌ] ํŒŒ์ผ & ํŒŒ์ผ์‹œ์Šคํ…œ

ํŒŒ์ผ ์‹œ์Šคํ…œ ์ •๋ฆฌ


๊ฐœ์š”

์˜ค๋žœ ๊ธฐ๊ฐ„ ๋™์•ˆ ์ €์žฅ๋˜์–ด์•ผํ•˜๋Š” ์ •๋ณด์˜ ์ €์žฅ์—๋Š” ๋ช‡๊ฐ€์ง€ ์กฐ๊ฑด์ด ์žˆ๋‹ค.

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋œ ํ›„์—๋„ ์ •๋ณด๊ฐ€ ์œ ์ง€๋˜๋Š” ๋น„ํœ˜๋ฐœ์„ฑ

  • ๋งŽ์€ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํฐ ์šฉ๋Ÿ‰

  • ๋‹ค์ˆ˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ์„ฑ

    ์˜ค๋žœ ๊ธฐ๊ฐ„๋™์•ˆ ํฐ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์žฅ์น˜ ์ค‘ ํ•˜๋‚˜์ธ Disk๋Š” ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ block๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋Š”๋ฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ๋“ค์„ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

  1. Disk์— ์ €์žฅํ•œ ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐพ์„ ๊ฒƒ์ธ๊ฐ€?

    ์ •๋ณด์˜ ์–‘์ด ๋ฐฉ๋Œ€ํ•ด์„œ ์ •๋ณด๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค.

  2. ๋นˆ ๊ณต๊ฐ„์„ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€?

    ์ƒˆ๋กœ์šด ์ •๋ณด๋ฅผ ์ €์žฅํ•  ๋•Œ ๋นˆ ๊ณต๊ฐ„์„ ์ฐพ์•„์„œ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

  3. ์‚ฌ์šฉ์ž ๋ณ„ ๊ถŒํ•œ์„ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€?

    ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•ด์•ผํ•œ๋‹ค.

์ด ํ•ด๋‹ต์€ ํŒŒ์ผ ๊ณผ ํŒŒ์ผ์‹œ์Šคํ…œ ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

ํŒŒ์ผ

ํŒŒ์ผ์€ ์ €์žฅ ์žฅ์น˜์— ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„์ด๋‹ค. byte ์ •๋ณด๋“ค์˜ ์—ฐ์†์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•œ๋‹ค. ํŒŒ์ผ์€ uniqueํ•œ path name์ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„์€ ๊ฐ™์„ ์ˆ˜ ์žˆ์œผ๋‚˜ ์ €์žฅ๋œ ๋””๋ ‰ํ† ๋ฆฌ๊นŒ์ง€ ๊ฐ™์„ ์ˆ˜๋Š” ์—†๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๋˜ํ•œ ํŒŒ์ผ์€ ์‚ฌ์šฉ์ž๋ณ„๋กœ r,w,x ๊ถŒํ•œ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ํŒŒ์ผ์˜ ํŠน์ง•์œผ๋กœ ๋ดค์„ ๋•Œ, ํฐ ์ €์žฅ์žฅ์น˜์—์„œ ์ €์žฅ๋‹จ์œ„๋กœ ํŒŒ์ผ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŒŒ์ผ ์‹œ์Šคํ…œ

ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ํŒŒ์ผ ์‚ฌ์šฉ๊ณผ ๊ด€๋ จ๋œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด์˜ set์ด๋‹ค.


ํŒŒ์ผ

์ด๋ฆ„ ์ง“๊ธฐ

ํŒŒ์ผ์ด๋ฆ„.ํ™•์žฅ์ž ๋กœ ์ด๋ฆ„์ด ๊ตฌ์„ฑ๋˜์–ด์žˆ์œผ๋ฉฐ ํ™•์žฅ์ž๋Š” 3๊ฐœ๊นŒ์ง€ ์ธ์‹ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ธ€์ž๋ฅผ ์ ์–ด๋„ ์ƒ๊ด€์—†๋‹ค. ์ „ํ†ต์ ์œผ๋กœ ๋ช‡๋ช‡ ํŒŒ์ผ์„ ์ •์˜ํ•˜๋Š” ํ™•์žฅ์ž๊ฐ€ ์žˆ์œผ๋‹ˆ ์›ฌ๋งŒํ•˜๋ฉด ์ง€ํ‚ค๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

ํŒŒ์ผ ๊ตฌ์กฐ

ํŒŒ์ผ์€ ์•ž์—์„œ ์„ค๋ช…ํ–ˆ๋“ฏ์ด byte๋“ค์˜ ์—ฐ์†์ด๋ฏ€๋กœ ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š”์ง€, ์–ด๋–ค ๊ตฌ์กฐ๋กœ ๋“ค์–ด๊ฐ€๋Š”์ง€์— ๋Œ€ํ•œ ์ œํ•œ์ด ์—†๋‹ค. ๋ฐ์ดํ„ฐ์™€ ๊ตฌ์กฐ๋Š” ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉํ”„๋กœ๊ทธ๋žจ์ด ๊ฒฐ์ •ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 'ํ•œ๊ธ€๊ณผ ์ปดํ“จํ„ฐ' ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” 'hwp'์˜ ํ˜•ํƒœ๋กœ ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์‹คํ–‰ํŒŒ์ผ๋งŒํผ์€ ์–ด๋–ค ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ์ง€๋ฅผ OS์—์„œ ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค. ์•„์นด์ด๋ธŒ ํŒŒ์ผ (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ) ๋˜ํ•œ ๊ทธ๋ ‡๋‹ค.

ํŒŒ์ผ์€ root ๋””๋ ‰ํ† ๋ฆฌ๋ถ€ํ„ฐ sub ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด์–ด์ง€๋Š” ํŠธ๋ฆฌ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

ํŒŒ์ผ ์†์„ฑ

ํŒŒ์ผ์€ ์ด๋ฆ„ + ์†์„ฑ + ๋ฐ์ดํ„ฐ ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ๊ทธ ์ค‘ ์†์„ฑ์—๋Š” Protection, Password, Creator, Owner ๋“ฑ์˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์ด๋ฆ„๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•œ ํŒŒ์ผ์˜ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ์†์„ฑ์— ๋“ค์–ด์žˆ๋‹ค. ํŒŒ์ผ ์‹œ์Šคํ…œ๋งˆ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์˜ ์†์„ฑ์ด ๋‹ค๋ฅด๋‹ค.

ํŒŒ์ผ ์ ‘๊ทผ

ํŒŒ์ผ์„ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • Sequential access

    Tape์˜ ํŒŒ์ผ์€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผํ•œ๋‹ค.

  • Random access

    Disk์˜ ํŒŒ์ผ์€ Randomํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์ž„์˜ ์ ‘๊ทผ์—๋Š” ๋˜ ๋‘๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ๋‹ค.

    1. read(id, &buf, from, rwbytes)

      ์ด์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๋ช…๋ น์–ด๋Š” from ์œ„์น˜๋ฅผ ๋ฐ›์•„์„œ ํ•ด๋‹น ์œ„์น˜์—์„œ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•œ๋‹ค. ์ฆ‰, offset์˜ ์œ„์น˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๋Š”๋‹ค.

    2. read(id, &buf, rwbytes)

      ์ด์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๋ช…๋ น์–ด๋Š” ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๋Š” offset์ด ํŒŒ์ผ๋งˆ๋‹ค ์กด์žฌํ•ด์„œ ํ•ด๋‹น offset๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๋ฉด์„œ offset๋Š” ์ž๋™ ์ฆ๊ฐ€ํ•œ๋‹ค. offset์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋ ค๋ฉด lseek์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

๋งŽ์€ ํ”„๋กœ์„ธ์Šค๋“ค์ด ํŒŒ์ผ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋‹ˆ๊นŒ 2๋ฒˆ ๋ฐฉ๋ฒ•์ด ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ณ‘๋ ฌ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” 1๋ฒˆ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

ํŒŒ์ผ ๊ณต์œ 

ํŒŒ์ผ์„ ๋‹ค์ˆ˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์‹œ์— ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์„๊นŒ?

๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜์ •ํ•œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ๋“ค์€ ์–ธ์ œ๋ถ€ํ„ฐ ์ˆ˜์ •๋œ ๋‚ด์šฉ์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ์„๊นŒ?

๋Œ€๋ถ€๋ถ„์˜ OS์—์„œ๋Š” ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜์ž๋งˆ์ž ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์ „ ๋ถ„์‚ฐ ํŒŒ์ผ์‹œ์Šคํ…œ(Andrew file system)์—์„œ๋Š” ์›๊ฒฉ ์„œ๋ฒ„์— ํŒŒ์ผ์„ ์ €์žฅํ•ด์•ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •ํ•ด๋„ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ”๋กœ ๋ณผ ์ˆ˜ ์—†์—ˆ๊ณ , ์ˆ˜์ •์ด๋ผ๋Š” ๋‹จ์–ด์˜ semantic์„ file์„ closeํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ํฌํ•จํ•ด์„œ ์ •์˜ํ•˜์˜€๋‹ค.

ํŒŒ์ผ ์—ฐ์‚ฐ

ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ์—ฐ์‚ฐ๋“ค์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ OS์—๊ฒŒ ์‹œ์Šคํ…œ ์ฝœ์„ ์š”์ฒญํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฐ์‚ฐ์—๋Š” create, delete, open, close, read, write, append, seek, get attribute, set attribute, rename ๋“ฑ์ด ์žˆ๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ (ํด๋”)

์œ ๋‹‰์Šค์—์„œ๋Š” ๋””๋ ‰ํ† ๋ฆฌ, ์œˆ๋„์šฐ์—์„œ๋Š” ํด๋”๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์ž๋ฃŒ์˜ ๋‹จ์œ„์ด๋‹ค. ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด๋‘๋Š” ํŒŒ์ผ๊ณผ ํ˜•ํƒœ๋Š” ๋˜‘๊ฐ™์ง€๋งŒ ์•ˆ์— ๋“  ๋‚ด์šฉ์€ ๋‹ค๋ฅด๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์ผ์€ ํ…Œ์ด๋ธ”์˜ ํ˜•ํƒœ๋กœ ๋‹ด๊ณ ์žˆ๋Š” ํŒŒ์ผ๊ณผ ์„œ๋ธŒ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋‚ด์šฉ์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชฉ์ ์€ _ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์†์„ฑ๊ณผ ๋ฐ์ดํ„ฐ ๊ฐ™์€ ์ •๋ณด๋กœ mapping ํ•ด์ฃผ๋Š” ๊ฒƒ_์ด๋‹ค.

ํŒŒ์ผ์€ ์ด๋ฆ„ + ์†์„ฑ + ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค๊ณ  ์ด์ „์— ์–ธ๊ธ‰ํ•œ ๋ฐ” ์žˆ๋Š”๋ฐ, ํŒŒ์ผ์€ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ๋˜์–ด ํ•ด๋‹น ํŒŒ์ผ์˜ ์‹ค์ œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋ฆ„์œผ๋กœ ์ •๋ณด๋ฅผ ์ฐพ์•„์•ผํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

๊ณ„์ธต ๋””๋ ‰ํ† ๋ฆฌ ์‹œ์Šคํ…œ

ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ Root ๋””๋ ‰ํ† ๋ฆฌ๋ถ€ํ„ฐ Sub ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ด์–ด์ ธ์žˆ๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค. ์›๋ž˜๋Š” Single ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ์žˆ์–ด์„œ ๋ชจ๋‘๊ฐ€ Root ๋””๋ ‰ํ† ๋ฆฌ์ด๊ณ  ํ•œ ํŒŒ์ผ๋งŒ์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด๋ผ '๋””๋ ‰ํ† ๋ฆฌ'๋ผ๋Š” ์šฉ์–ด๋„ ์กด์žฌํ•˜์ง€ ์•Š์•˜๋‹ค. ํ•˜์ง€๋งŒ ์ดํ›„ ํŒŒ์ผ๋“ค์„ ์ฐพ๊ธฐ ํž˜๋“ค์–ด์ง€์ž ๋””๋ ‰ํ† ๋ฆฌ๋ผ๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ํŒŒ์ผ์„ ๋ฌถ๊ธฐ ์‹œ์ž‘ํ•œ ๊ฒƒ์ด๋‹ค.

Path name (๊ฒฝ๋กœ ์ด๋ฆ„)

ํŒŒ์ผ์˜ path name์€ uniqueํ•˜๋‹ค๊ณ  ํ–ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค์˜ ํŒŒ์ผ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ด๋ ‡๊ฒŒ root ๋””๋ ‰ํ† ๋ฆฌ๋ถ€ํ„ฐ ํ•ด๋‹น ํŒŒ์ผ๊นŒ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ path name์ด๋ผ๊ณ  ํ•˜๊ณ  ์œ„ ๊ทธ๋ฆผ์˜ '/usr/jim'์ด ์˜ˆ์‹œ์ด๋‹ค. ์ด๋Ÿฌํ•œ path name์€ uniqueํ•ด์•ผํ•˜๋ฉฐ ์ด๋ฆ„์ด ๊ฐ™์•„๋„ ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ๋‹ค๋ฅด๋‹ค๋ฉด path name์ด ๋‹ค๋ฅด๋‹ค.

์ ˆ๋Œ€ path

root ๋””๋ ‰ํ† ๋ฆฌ๋กœ๋ถ€ํ„ฐ์˜ path๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

ex_) C:\Document (์œˆ๋„์šฐ์ฆˆ) \usr (์œ ๋‹‰์Šค)

์ƒ๋Œ€ path

ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ(Current Working Directory)๋กœ๋ถ€ํ„ฐ์˜ path๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

ex_) ./Work ์—์„œ '.'๋Š” ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. '..'๋Š” ๋ถ€๋ชจ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ ์—ฐ์‚ฐ

create, delete, opendir, closedir, readdir, rename, link, unlink ๋“ฑ์˜ ์—ฐ์‚ฐ์ด ์กด์žฌํ•œ๋‹ค. link ์—ฐ์‚ฐ์€ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ด๋ฆ„์„ ํ•˜๋‚˜ ๋” ๋ถ€์—ฌํ•˜๋Š” ์—ฐ์‚ฐ์œผ๋กœ, ํŒŒ์ผ์˜ ์ •๋ณด๋Š” ํ•˜๋‚˜์ธ๋ฐ ์ด๋ฆ„์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. Unlink ์—ฐ์‚ฐ์€ ๋ฐ˜๋Œ€๋กœ ์ด๋ฆ„์„ ํ•˜๋‚˜์”ฉ ์ง€์šฐ๋Š” ์—ฐ์‚ฐ์ด๋‹ค. Unlink ์—ฐ์‚ฐ ์‹œ ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ์ด๋ฆ„์ด unlink๋˜๋ฉด ํŒŒ์ผ์˜ ์ •๋ณด ์ž์ฒด๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.


๋ ˆ์ด์•„์›ƒ

ํ•˜๋“œ๋””์Šคํฌ๋Š” ์›ํŒ์„ ํŠธ๋ž™๋‹จ์œ„๋กœ ์ชผ๊ฐœ์„œ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ทธ๋ฆผ์—์„œ A๋กœ ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์ด ํŠธ๋ž™์ด๋‹ค. ํŠธ๋ž™์€ ๋ฐ”๊นฅ์ชฝ๋ถ€ํ„ฐ ์•ˆ์ชฝ์œผ๋กœ ๋“ค์–ด๊ฐ€๋ฉด์„œ ์‚ฌ์šฉ๋˜๊ณ  ํŠธ๋ž™ ์ž์ฒด๋Š” 512byte์˜ ์„นํ„ฐ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ๊ทธ๋ฆผ์—์„œ C๋กœ ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์ด ์„นํ„ฐ์ด๋‹ค. ํŒŒ์ผ์‹œ์Šคํ…œ์€ ์ด ์„นํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋ชจ์•„์„œ ๋ธ”๋ก์ด๋ผ๋Š” ๋‹จ์œ„๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•˜๋“œ๋””์Šคํฌ์˜ ํŠธ๋ž™์„ ์ด๋ฃจ๋Š” ๋‹จ์œ„๊ฐ€ ์„นํ„ฐ์ด๊ณ  ํŒŒ์ผ์‹œ์Šคํ…œ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„นํ„ฐ๋กœ ๋œ ๋ธ”๋ก์„ ์‚ฌ์šฉํ•œ๋‹ค.

์›ํ˜• ๋ชจ์–‘์˜ ํ•˜๋“œ๋””์Šคํฌ๋ฅผ ์ผ์ž๋กœ ํŽผ์ณ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๊ฐ€ ๋‚˜์˜จ๋‹ค.

๋‚˜๋‰˜์–ด์ง„ ๋‹จ์œ„๋ฅผ ์„นํ„ฐ๋ผ๊ณ  ๋ณด๋ฉด, ์ฒซ๋ฒˆ์งธ ์„นํ„ฐ์—๋Š” MBR(master boot record)์ด๋ผ๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๊ณ , ๋ถ€ํŠธ ์„นํ„ฐ๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. ์ปดํ“จํ„ฐ์— ์ „์›์„ ์ผœ๋ฉด ROM BIOS (OS ์ค‘ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ปดํ“จํ„ฐ์˜ IO๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” Software) ๊ฐ€ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ํ•˜๋“œ๋””์Šคํฌ ์ฒซ๋ฒˆ์งธ ์„นํ„ฐ์— ์žˆ๋Š” MBR ์ฝ”๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•œ ํ›„ ์‹คํ–‰ํ•œ๋‹ค. MBR ์ฝ”๋“œ(๋ถ€ํŠธ ์ฝ”๋“œ)๋Š” ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ”์—์„œ ๋ถ€ํŠธ ํŒŒํ‹ฐ์…˜์„ ์ฐพ์•„์„œ OS์˜ ๋ถ€ํŠธ ๋ธ”๋ก ์ฝ”๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์ดํ›„ OS์˜ ๋ถ€ํŠธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

์ฆ‰, ์ฒ˜์Œ์—๋Š” MBR ์ฝ”๋“œ๋กœ ๋ถ€ํŒ…์„ ํ•˜๊ณ  ๋””์Šคํฌ์˜ ํŒŒํ‹ฐ์…˜ ์ค‘ OS ๋ถ€ํŠธ ํŒŒํ‹ฐ์…˜์„ ์ฐพ์•„์„œ OS ๋ถ€ํŒ…์„ ํ•œ๋‹ค.
MBR์—๋Š” ํŒŒํ‹ฐ์…˜์˜ ๊ฐฏ์ˆ˜์™€ ์‹œ์ž‘ ์œ„์น˜, ์‚ฌ์ด์ฆˆ ๋“ฑ์ด ๊ธฐ๋ก๋˜์–ด์žˆ๋‹ค.

ํŒŒํ‹ฐ์…˜ ํ…Œ์ด๋ธ”์—๋Š” ์ตœ๋Œ€ 4๊ฐœ์˜ ์—”ํŠธ๋ฆฌ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋Š” ํ•˜๋“œ๋””์Šคํฌ๋ฅผ ์ตœ๋Œ€ 4๋“ฑ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์ด๋‹ค. ์ด ์ค‘ ํ•˜๋‚˜๋Š” OS์˜ ๋ถ€ํŠธ ํŒŒํ‹ฐ์…˜์ด์—ฌ์•ผํ•œ๋‹ค. ํŒŒํ‹ฐ์…˜๋งˆ๋‹ค ์ƒˆ๋กœ์šด ํŒŒ์ผ์‹œ์Šคํ…œ๊ณผ ์šด์˜์ฒด์ œ๊ฐ€ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

์œ„์— ํ‘œ์‹œ๋œ ๊ทธ๋ฆผ ์ƒ์˜ ํŒŒํ‹ฐ์…˜ ๊ตฌ์กฐ๋Š” ์œ ๋‹‰์Šค ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ์ด๋‹ค.


ํŒŒ์ผ ์‹œ์Šคํ…œ ์„ค๊ณ„

ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผํ•  ์‚ฌํ•ญ๋“ค์€ ์•ž์˜ ๊ฐœ์š”์—์„œ ๋‹ค๋ค˜์—ˆ๋‹ค. ๊ทธ ์ค‘ ๋‘ ๊ฐœ๋ฅผ ๊ฐ€์ ธ์™€๋ณด์ž.

  1. ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ธ”๋ก์˜ ํ• ๋‹น / ๊ด€๋ฆฌ (์ •๋ณด ์ฐพ๊ธฐ)

    ํ•˜๋“œ๋””์Šคํฌ์˜ 512byte ์„นํ„ฐ๋Š” ๋„ˆ๋ฌด ์ž‘์•„์„œ ํŒŒ์ผ์‹œ์Šคํ…œ์€ ์„นํ„ฐ๋ฅผ ๋ชจ์•„ ๋ธ”๋ก๋‹จ์œ„๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

    ์œ ๋‹‰์Šค : block, ์œˆ๋„์šฐ์ฆˆ : cluster

  2. ๋นˆ ๊ณต๊ฐ„ ๊ด€๋ฆฌ

ํŒŒ์ผ ํ• ๋‹น ๋ฐฉ๋ฒ•

  • Contiguous allocation

    ์—ฐ์†์ ์œผ๋กœ ๋ธ”๋ก์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

    ํ•ด๋‹น ํŒŒ์ผ์ด ์–ด๋–ค ๋ธ”๋ก์— ์žˆ๋Š” ์ง€ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋””๋ ‰ํ† ๋ฆฌ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์ž. ์ด ํ…Œ์ด๋ธ”์˜ ์—”ํŠธ๋ฆฌ๋Š” (ํŒŒ์ผ์ด๋ฆ„, ์‹œ์ž‘ ๋ธ”๋ก์œ„์น˜, ์‚ฌ์ด์ฆˆ)๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ์‹œ์ž‘ ๋ธ”๋ก์œ„์น˜๋ถ€ํ„ฐ ์—ฐ์†์ ์œผ๋กœ ์‚ฌ์ด์ฆˆ๋งŒํผ ์ฝ์œผ๋ฉด ํ•ด๋‹น ํŒŒ์ผ์ด๋ผ๋Š” ์ •๋ณด๊ฐ€ ๋œ๋‹ค.

    ์ด๋Ÿฌํ•œ ์—ฐ์†์  ๋ธ”๋ก ํ• ๋‹น ๋ฐฉ์‹์˜ ์žฅ์ ์€ ์ฝ๊ณ  ์“ฐ๊ธฐ ์ข‹๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‹จ์ ์€ external fragmentation ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•˜์—ฌ ์ €์žฅ๊ณต๊ฐ„ ํšจ์œจ์ด ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํ•˜๋“œ๋””์Šคํฌ์—์„œ๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๊ณ , ํ•œ ๋ฒˆ ๊ตฌ์šฐ๋ฉด ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•œ CD-ROM๊ณผ ๊ฐ™์€ ์ €์žฅ๋งค์ฒด์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

  • Chained allocation (=LinkedList allocation)

    ์—ฐ์†์ ์ด์ง€ ์•Š๊ณ , ๋™์ ์ธ ํ• ๋‹น ๋ฐฉ๋ฒ•์ด๋‹ค.

    ๋””๋ ‰ํ† ๋ฆฌ ํ…Œ์ด๋ธ”์˜ ์—”ํŠธ๋ฆฌ๋Š” (ํŒŒ์ผ์ด๋ฆ„, ์‹œ์ž‘ ๋ธ”๋ก์œ„์น˜, ์‚ฌ์ด์ฆˆ)๋กœ Contiguous allocation๊ณผ ๊ฐ™๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ ๋ธ”๋ก์— ๋‹ด๊ฒจ์žˆ๋Š” ์ •๋ณด์— ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. Contiguous allocation์—์„œ๋Š” ๋ธ”๋ก์— file data๋งŒ์ด ์กด์žฌํ–ˆ๋‹ค๋ฉด, Chained allocation์—์„œ๋Š” ๋ธ”๋ก์— file data์™€ meta data๊ฐ€ ํ•จ๊ป˜ ์กด์žฌํ•œ๋‹ค.

    ๋”ฐ๋ผ์„œ ํ•ด๋‹น ํŒŒ์ผ์ด ์ €์žฅ๋งค์ฒด์˜ ์–ด๋””์— ์ €์žฅ๋˜์–ด์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ, ์‹œ์ž‘ ๋ธ”๋ก์œ„์น˜์— ์žˆ๋Š” ๋ธ”๋ก์—์„œ file data๋ฅผ ์ฝ๊ณ , ๋‹ค์Œ ๋ธ”๋ก์˜ ์ •๋ณด๋ฅผ meta data์—์„œ ์ฝ์–ด์„œ ๋ธ”๋ก์„ ์‚ฌ์ด์ฆˆ๋งŒํผ ๋”ฐ๋ผ๊ฐ€๋ฉด์„œ ์ฝ๋Š”๋‹ค.

    ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ external fragmentation ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ฃผ๊ฒ ์ง€๋งŒ, ํ•œ ๋ธ”๋ก์— file data์™€ meta data๋ฅผ ํ•จ๊ป˜ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š๋‹ค. ํŒŒ์ผ ์†์ƒ ์‹œ meta data๊ฐ€ ์†์ƒ๋˜์–ด ์ดํ›„ ๋ธ”๋ก๋“ค์ด ๋ชจ๋‘ ์†์ƒ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋˜ํ•œ linked-list ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ์ˆœ์ฐจ์ ‘๊ทผ๋งŒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ๋„ ๋‹จ์ ์ด๋‹ค.

  • FAT (File Allocation Table)

    ๊ทธ๋ ‡๋‹ค๋ฉด Chained allocation ๋ฐฉ์‹์—์„œ meta data๋งŒ ๋‹ค๋ฅธ ๊ณณ์— ๋ชจ์•„๋ณด์ž. meta data(ํ•ด๋‹น ๋ธ”๋ก ๋‹ค์Œ์—๋Š” ์–ด๋–ค ๋ธ”๋ก์ด ์˜ค๋Š”์ง€)๋งŒ ๋ชจ์•„๋‘” ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์žˆ๊ณ , file data๋Š” ๋”ฐ๋กœ ์žˆ๋‹ค๋ฉด ํ•˜๋‚˜์˜ ๋‹จ์ ์€ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์‹ค์ œ๋กœ MS์‚ฌ์˜ FAT ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ์ด์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” Master Boot Block์œผ๋กœ ๋ถ€ํŒ…ํ•˜๊ณ  ํŒŒํ‹ฐ์…˜ ์ค‘ Partition Boot Block์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด OS ๋ถ€ํŒ…์ด ๋œ๋‹ค. ์—ฌ๊ธฐ์— ํŠน์ง•์ ์œผ๋กœ FAT Block table์ด ์žˆ๋Š”๋ฐ, ์ด ํ…Œ์ด๋ธ”์€ ๋ชจ๋“  ๋ฌผ๋ฆฌ์  ๋ธ”๋ก๋“ค์ด ๋Œ€์‘๋˜์–ด 'FF=-1'์€ ๋‹ค์Œ ๋ธ”๋ก์ด ์—†์Œ์„ '์ˆซ์ž'๋Š” ๋‹ค์Œ ๋ธ”๋ก์˜ ๋ฒˆํ˜ธ๋ฅผ '0'์€ ๋น„์–ด์žˆ๋Š” ํ”„๋ฆฌ ๋ธ”๋ก์„ ์˜๋ฏธํ•œ๋‹ค. meta data๋ฅผ ๋ชจ์•„๋‘๋Š” Fat block table์„ ๋”ฐ๋กœ ๋งŒ๋“  ๊ฒƒ์ด๋‹ค.

    FAT ํŒŒ์ผ์‹œ์Šคํ…œ์€ ์œ ๋‹‰์Šค ํŒŒ์ผ์‹œ์Šคํ…œ๊ณผ ๋‹ฌ๋ฆฌ ๋ฃจํŠธ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ .์™€ ..์„ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค. ๋˜ ์œ ๋‹‰์Šค ํŒŒ์ผ์‹œ์Šคํ…œ๊ณผ ๊ตฌ๋ถ„๋˜๋Š” ์ ์€ ๋ชจ๋“  ํŒŒ์ผ์˜ ์ •๋ณด(์ด๋ฆ„, ์†์„ฑ, ๋ฐ์ดํ„ฐ)๋ฅผ ํŒŒ์ผ ์—”ํŠธ๋ฆฌ์— ๊ธฐ๋กํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

    FAT ํŒŒ์ผ์‹œ์Šคํ…œ์€ ์˜ˆ์ „์— MS์—์„œ ์†Œ์šฉ๋Ÿ‰ ํ”Œ๋Ÿฌํ”ผ ๋””์Šคํฌ / ํ•˜๋“œ๋””์Šคํฌ ์šฉ์œผ๋กœ ์‚ฌ์šฉํ•œ ํŒŒ์ผ์‹œ์Šคํ…œ์ด๋‹ค. ํ˜ธํ™˜์„ฑ์ด ์ข‹์•„์„œ USB ๋“œ๋ผ์ด๋ธŒ ์šฉ๋„๋กœ๋„ ์‚ฌ์šฉ๋˜์ง€๋งŒ ์„ฑ๋Šฅ์€ ๊ทธ๋‹ค์ง€ ์ข‹์ง€ ์•Š๋‹ค.

์ €์žฅ์šฉ๋Ÿ‰์ด ์ปค์ง€๋ฉด FAT block table์˜ ํฌ๊ธฐ๋„ ์ปค์ ธ์„œ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„
ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋ฉด linked-list ํ˜•์‹์˜ ์ˆœ์ฐจํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ด ์‹œ๊ฐ„ ๋‚ญ๋น„

  • Indexed allocation

    ๋””๋ ‰ํ† ๋ฆฌ ํ…Œ์ด๋ธ”์˜ ์—”ํŠธ๋ฆฌ๋Š” (ํŒŒ์ผ์ด๋ฆ„, ์ธ๋ฑ์Šค ๋ธ”๋ก)์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ์ธ๋ฑ์Šค ๋ธ”๋ก์€ ํŒŒ์ผ ์ •๋ณด๊ฐ€ ๊ธฐ๋ก๋˜์–ด์žˆ๋Š” ๋ธ”๋ก์œผ๋กœ array ๊ตฌ์กฐ๋กœ ๋‚˜์—ด๋˜์–ด์žˆ์ง€๋งŒ, ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•˜๋ฉด linked-list๋‚˜ tree ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์ง€๊ธฐ๋„ ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๋ก๋˜๋Š” ๋ฐ์ดํ„ฐ ๋ธ”๋ก์€ ์—ฐ์†๋˜๊ฒŒ ๋ฐฐ์น˜ํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ํ•˜๋“œ๋””์Šคํฌ์˜ ํŠน์„ฑ์„ ๊ณ ๋ คํ•œ๋‹ค๋ฉด ๊ฐ€๋Šฅํ•œ ์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

    ํ•˜๋“œ๋””์Šคํฌ์˜ ํ—ค๋“œ ์ด๋™ ์‹œ๊ฐ„์ด ๋งŽ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ

    => ์œ ๋‹‰์Šค V7 FS ๋ณด๊ธฐ

    • inode

      inode๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •๋ณด๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•œ ์†์„ฑ์ด๋ฉฐ, ์ด๋ฆ„๊ณผ ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ๋ธ”๋ก์— ์ €์žฅ๋˜์–ด์žˆ๋‹ค.

์ด๋Ÿฌํ•œ indexed ๋ฐฉ์‹์€ ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ ์ž„์˜ ์ ‘๊ทผ์„ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์„ฑ๋Šฅ๋„ ์ข‹๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ธ”๋ก์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ์—๋Š” indirect block์ด ๋งŒ๋“ค์–ด์ ธ ์ˆœ์ฐจ์ ‘๊ทผ์„ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.
  • ์œ ๋‹‰์Šค ํŒŒ์ผ์‹œ์Šคํ…œ์—์„œ indexed allocation ๋ฐฉ์‹์„ ์•ฝ๊ฐ„ ๋ณ€ํ˜•ํ•ด์„œ ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ๋Š” ์ธ๋ฑ์Šค ๋ธ”๋ก์„ inode๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

ํŒŒ์ผ ๊ณต์œ 

์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๊ณต์œ ํ•˜๋Š” ํŒŒ์ผ์ด ์žˆ์„ ์ˆ˜ ์žˆ์„๊นŒ? ๊ฐ€๋Šฅํ•˜๋‹ค. Unix ํŒŒ์ผ์‹œ์Šคํ…œ์—์„œ ์ด๋Š” link๋ผ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌํ˜„๋œ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์–ด์ฐจํ”ผ ํŒŒ์ผ์ด๋ฆ„์„ inode๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด๋ฏ€๋กœ ์•Œ๋งž์€ inode๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๊ธฐ๋งŒ ํ•œ๋‹ค๋ฉด ๋ฌธ์ œ ์—†๋‹ค.

๋”ฐ๋ผ์„œ ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ์™€ ์†์„ฑ์€ ํ•˜๋‚˜์ธ๋ฐ, ์ด๋ฆ„์ด ๋‘ ๊ฐœ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. Unix ํŒŒ์ผ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ด๋ฆ„์„ link๋ผ๊ณ  ํ•˜๋ฉฐ ์ด๋ฆ„์˜ ๊ฐฏ์ˆ˜๋ฅผ link-count๋ผ๋Š” ํ˜•ํƒœ๋กœ ์œ ์ง€ํ•œ๋‹ค. link-count๊ฐ€ 0์ด๋˜๋ฉด ์‹ค์ œ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ์˜ ์ •๋ณด(inode)๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.

์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ด๋ฆ„์ด ์žˆ๋Š” ๊ฒƒ์ด ํ†ต๊ณ„ํ”„๋กœ๊ทธ๋žจ์—์„œ์˜ ์ค‘๋ณต๊ฐ€๋Šฅ์„ฑ, ์‚ญ์ œ๊ฐ€ ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ, 2๋ฒˆ ๋ฐฑ์—…๋˜๋Š” ๊ฒฝ์šฐ, ๋””๋ ‰ํ† ๋ฆฌ ๋งํฌ ๋•Œ๋ฌธ์— ๋ฌดํ•œ๋ฃจํ”„๋ฅผ ๋„๋Š” ๊ฒฝ์šฐ ๋“ฑ์˜ ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Š” ๋ฐ”๋กœ๊ฐ€๊ธฐ ํŒŒ์ผ(Symbolic link)์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋กœ๊ฐ€๊ธฐ ํŒŒ์ผ์€ ์›๋ณธ๊ณผ ๋‹ค๋ฅธ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ์จ ์›๋ณธ ํŒŒ์ผ์˜ path name์„ ์ €์žฅํ•˜๋Š” ํŒŒ์ผ์ด๋‹ค. ๋ฐ”๋กœ๊ฐ€๊ธฐ ํŒŒ์ผ์„ ์—ด๊ณ ์žํ•  ๋•Œ, ํ•ด๋‹น path name์œผ๋กœ ๊ฐ€์„œ ๋‹ค์‹œ ์›๋ณธ ํŒŒ์ผ์„ ์—ด์–ด์•ผํ•˜์ง€๋งŒ ์ด์ •๋„ overhead๋Š” ๊ดœ์ฐฎ๋‹ค๊ณ  ๋ณธ๋‹ค.

Log-structured ํŒŒ์ผ์‹œ์Šคํ…œ (LFS)

๋ช‡๋ช‡ ์—ฐ๊ตฌ์ž๋“ค์ด ํ•˜๋“œ๋””์Šคํฌ์— write ์‹œ seek time์„ ์ค„์—ฌ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•œ ๋ฐฉ์•ˆ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ธ”๋ก๋“ค์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ณ€์œผ๋กœ ํ•˜๋Š” ๋ฐฉ์‹์„ ์—ฐ๊ตฌํ–ˆ๋‹ค. ์œ„์—์„œ ๋ฐฐ์šด FAT, UNIX ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ํ•œ๋ฒˆ ํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ธ”๋ก๋“ค์˜ ์œ„์น˜๊ฐ€ ๋“ฑ๋ก๋˜๋ฉด ๋ณ€ํ™”ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๊ธฐ๋ณธ์ ์ธ ์•„์ด๋””์–ด๋Š” log ํ˜•์‹์œผ๋กœ disk์— ๊ณ„์† ์ ์–ด๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜๋“œ๋””์Šคํฌ ๊ณต๊ฐ„์˜ ํ˜„์žฌ writingํ•  point์—์„œ segment ๋‹จ์œ„๋กœ log๋ฅผ ๊ธฐ๋กํ•  ๊ฒƒ์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•  ๋•Œ ์ด์ „ ํŒŒ์ผ์‹œ์Šคํ…œ๋“ค์€ ํ•ด๋‹น ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๋ธ”๋ก์„ ์ฐพ์•„๊ฐ€์„œ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ, LFS์˜ ๊ฒฝ์šฐ ํ˜„์žฌ writing point์—์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ writeํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์œ„์น˜์— ๋ณ€๊ฒฝ๋œ inode๊นŒ์ง€ ์ž‘์„ฑํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋Š” ์™€์ค‘ LFS๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” GC๋Š” cleaning point๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋งŒ copyํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋นˆ๊ณต๊ฐ„(segment)์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

์ด์ „ Unix ํŒŒ์ผ์‹œ์Šคํ…œ์—์„œ๋Š” inode์˜ ์œ„์น˜๊ฐ€ ๊ณ ์ •๋˜์–ด์žˆ์–ด inode ๋ฒˆํ˜ธ๋งŒ ์•Œ๋ฉด ๋ฐ์ดํ„ฐ๋ธ”๋ก์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, LFS์—์„œ๋Š” inode๋„ ์ƒˆ๋กœ ๊ธฐ๋กํ•˜๋ฏ€๋กœ(๊ฐ€๋ณ€ ์œ„์น˜์ด๋ฏ€๋กœ) inode์˜ ์œ„์น˜๋„ ๊ธฐ๋กํ•ด๋‘์–ด์•ผํ•œ๋‹ค. ์ด ๋•Œ ํŒŒ์ผ์„ ๋ฐ”๊พธ๊ณ , inode๋ฅผ ๋ฐ”๊พธ๊ณ , ์ˆ˜ํผ ๋ธ”๋ก์„ ๋ฐ”๊พธ๋Š” ์ˆœ์œผ๋กœ log๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ ๋•Œ๋ฌธ์— read์‹œ์—๋Š” ๋ฐ˜๋Œ€๋กœ ํ—ค๋“œ๋ฅผ ์›€์ง์ด๋ฉฐ ์ฝ์–ด์ฃผ์–ด์•ผํ•œ๋‹ค๋Š” ์ ์—์„œ ์„ฑ๋Šฅ์ด ์•ฝ๊ฐ„ ์ €ํ•˜๋œ๋‹ค. ์ผ์ •์ฃผ๊ธฐ๋งˆ๋‹ค ์ˆœ์ฐจ์ ์œผ๋กœ ๊ธฐ๋กํ•˜๋ฉด์„œ ํ•˜๋“œ๋””์Šคํฌ์˜ ๊ณ ์ •๋œ ์œ„์น˜์— ์žˆ๋Š” inode map์— inode๋“ค์˜ ์œ„์น˜๋ฅผ ๊ธฐ๋กํ•˜๋Š” ์‹์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค.

์ด ์ผ์ •์ฃผ๊ธฐ๋ฅผ check point๋ผ๊ณ  ํ•˜๋ฉฐ check pointing์„ ํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ์ฒดํฌํฌ์ธํŠธ ์œ„์น˜์—์„œ๋ถ€ํ„ฐ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋“ค์„ ๋ชจ๋‘ inode map์— ๊ธฐ๋กํ•œ๋‹ค.

=> write ์ธก๋ฉด์—๋Š” ์•ฝ๊ฐ„์˜ ์ด๋“์ด ์žˆ์ง€๋งŒ GC๋„ ์‚ฌ์šฉํ•˜๊ณ  inode๋„ map์„ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ์ฉ ์ข‹์ง€ ์•Š๋‹ค. ํ•˜์ง€๋งŒ SSD์™€ ๊ฐ™์€ ํ”Œ๋ž˜์‹œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํฐ ๋‹จ์œ„๋กœ ์ง€์šฐ๊ณ  ์‚ฌ์šฉํ•˜๋Š” ํŠน์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— LFS ๊ตฌ์กฐ์™€ ์ž˜ ๋งž์•„์„œ LFS๋Š” ํ”Œ๋ž˜์‹œ ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์žฅ์น˜์— ๋งŽ์ด ์“ฐ์ธ๋‹ค.

์‚ผ์„ฑ์˜ F2FS๋„ LFS๋ฅผ ์‘์šฉํ•ด์„œ ๋งŒ๋“  ํŒŒ์ผ์‹œ์Šคํ…œ์ด๋‹ค.

Journaling ํŒŒ์ผ์‹œ์Šคํ…œ

FFS์—์„œ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ ์žํ•˜๋ฉด inode๋ฅผ ํ• ๋‹นํ•˜๊ณ  ํŒŒ์ผ์˜ ์†์„ฑ์„ ๊ธฐ๋กํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ธ”๋ก์„ ํ• ๋‹นํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ธ”๋ก์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋””๋ ‰ํ† ๋ฆฌ์— ์ด๋ฆ„๊ณผ inode๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋น„ํŠธ๋งต์„ ์„ธํŒ…ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

์ด ๋•Œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ธ”๋ก์„ ๊ฑฐ์น˜๋Š”๋ฐ ํŒŒ์ผ์‹œ์Šคํ…œ์€ ํ•ด๋‹น ๋ธ”๋ก๋“ค์˜ ์ผ๊ด€์„ฑ์ด ์™„๋ฒฝํ•˜๊ฒŒ ํ•ด๊ฒฐ๋œ ์ƒํƒœ์—์„œ๋งŒ ๋™์ž‘ํ•ด์•ผํ•œ๋‹ค. ์ผ๊ด€์„ฑ์„ ๋งž์ถ”๋Š” ๊ฒƒ์— ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆฌ์ž Journaling ๊ธฐ๋ฒ•์ด ๋‚˜์™”๋‹ค.

Journaling๊ธฐ๋ฒ•์€ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ Log Area์— log๋ฅผ ๋งŒ๋“ค๊ณ  ๋™์ž‘์„ ํ•œ๋‹ค. ํ•ด๋‹น ๋™์ž‘์ด ์™„๋ฃŒ๋˜๋ฉด log๋ฅผ ์‚ญ์ œํ•˜์ง€๋งŒ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ๋ฆฌ๋ถ€ํŒ… ์‹œ log๋ฅผ ๋ณด๊ณ  roll back์ด๋‚˜ roll forwardํ•ด์„œ ์ผ๊ด€์„ฑ์„ ํšŒ๋ณตํ•œ๋‹ค. ์ „์ฒด ํŒŒ์ผ์‹œ์Šคํ…œ์„ ๋งž์ถฐ๋ณด๋ฉด์„œ ์ผ๊ด€์„ฑ์„ ์ฒดํฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค log ๊ธฐ๋ก๋งŒ ๋ณด๋ฉด ๋˜๋‹ˆ๊นŒ ์†๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋นจ๋ผ์ง„๋‹ค.

๊ฐ€์ƒ ํŒŒ์ผ์‹œ์Šคํ…œ (VFS)

์˜ˆ์ „์—๋Š” OS๋งˆ๋‹ค ํ•˜๋‚˜์˜ ํŒŒ์ผ์‹œ์Šคํ…œ๋งŒ ์ง€์›ํ–ˆ์—ˆ๋‹ค. ํ˜„์žฌ๋Š” ๋‹ค์–‘ํ•œ ํŒŒ์ผ์‹œ์Šคํ…œ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. Unix Sun Micro Systems๋ผ๋Š” ํšŒ์‚ฌ์—์„œ Unix OS์—์„œ ์—ฌ๋Ÿฌ ํŒŒ์ผ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด VFSlayer๋ฅผ ๊ฐœ๋ฐœํ–ˆ๋‹ค. VFSlayer๋Š” ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๊ณตํ†ต๋œ ๋ถ€๋ถ„์„ VFSlayer๋กœ ๋งŒ๋“ค๊ณ , ๊ฐ๊ฐ์˜ FS๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ถ€๋ถ„๋“ค๋งŒ ์•„๋ž˜์— ๋ถ™์—ฌ์„œ ๊ตฌํ˜„ํ•œ ๊ตฌ์กฐ์ด๋‹ค. ํ˜„์žฌ๋„ ๋งŽ์€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ํ•ด๋‹น ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

Linux์˜ VFS์„ ๊ฑฐ์ณ์„œ ๊ฐ FS์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์„œ ๋™์ž‘์‹œํ‚จ๋‹ค. ๋”ฐ๋ผ์„œ OS ์•ˆ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ FS๋ฅผ ๊ตฌ๋™ํ•˜๋ฉด์„œ ๊ฐ FS์— ํŠนํ™”๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๋ธ”๋ก ์‚ฌ์ด์ฆˆ ๊ฒฐ์ •

  • Large ๋ธ”๋ก ์‚ฌ์ด์ฆˆ (8KB ๋ธ”๋ก => 16๊ฐœ์˜ ์„นํ„ฐ)

    ์„ฑ๋Šฅ๋ฉด์—์„œ๋Š” ์ข‹์ง€๋งŒ ๊ณต๊ฐ„ ํšจ์œจ๋ฉด์—์„œ๋Š” ์ข‹์ง€ ์•Š๋‹ค. ๋ธ”๋ก์„ ๊ด€๋ฆฌํ•˜๋Š” table์˜ ์—”ํŠธ๋ฆฌ๊ฐ€ ์ ์œผ๋ฏ€๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์ข‹๋‹ค.

    FAT์—์„œ๋Š” FAT table ์—”ํŠธ๋ฆฌ๊ฐ€ ์ ๊ณ , FFS์—์„œ๋Š” inode์— ๊ธฐ๋ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋ธ”๋ก ๊ฐฏ์ˆ˜๊ฐ€ ์ ๋‹ค.

  • Small ๋ธ”๋ก ์‚ฌ์ด์ฆˆ (1KB ๋ธ”๋ก => 2๊ฐœ์˜ ์„นํ„ฐ)

    ๊ณต๊ฐ„ ํšจ์œจ๋ฉด์—์„œ๋Š” ์ข‹์ง€๋งŒ ํฐ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋ธ”๋ก์ด ํฉ์–ด์ ธ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ๋ฉด์—์„œ๋Š” ์ข‹์ง€ ์•Š๋‹ค. ๋ธ”๋ก ์—”ํŠธ๋ฆฌ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฏ€๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

์‹œ๊ฐ„์ด ์ง€๋‚  ์ˆ˜๋ก ์ ์  ํฌ๊ธฐ๊ฐ€ ํฐ ํŒŒ์ผ์ด ์ƒ๊ฒจ๋‚˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘์€ ํŒŒ์ผ๋“ค์ด ๋Œ€๋ถ€๋ถ„์ด๋‹ค. ๊ทธ๋ž˜ํ”„์˜ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ€์ˆ˜๋ก ๊ณต๊ฐ„ํ™œ์šฉ๋„๋Š” ์ฆ๊ฐ€ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ์€ ์ €ํ•˜ํ•œ๋‹ค. ์œ„์—์„œ ๋ถ„์„ํ–ˆ๋“ฏ์ด ์„ฑ๋Šฅ๊ณผ ๊ณต๊ฐ„ ํšจ์œจ์€ ๋ฐ˜๋น„๋ก€ํ•˜๋Š”๋ฐ ๊ทธ๋ž˜ํ”„๊ฐ€ ํฌ๋กœ์Šคํ•˜๋Š” ์ง€์ ์ด ์•„๋‹Œ 2,4KB ์ •๋„์—์„œ ๋ธ”๋ก์‚ฌ์ด์ฆˆ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•˜๋ฉด 8KB๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•˜๋ฉฐ ์•„์ฃผ ํŠน์ดํ•œ ๊ฒฝ์šฐ 64KB๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

๊ณต๊ฐ„ ๊ด€๋ฆฌ

ํ•˜๋“œ๋””์Šคํฌ ๋“ฑ ๊ฑฐ๋Œ€ํ•œ ์ €์žฅ์žฅ์น˜์˜ ๊ณต๊ฐ„์€ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ• ๊นŒ? ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š์€ ๋ธ”๋ก์„ ํ• ๋‹นํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์ด๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค. ๋ฐฉ๋ฒ•์—๋Š” 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. Bit map ( bit vector )

    ๋””์Šคํฌ์— ์žˆ๋Š” ๋ธ”๋ก์ด bit map์˜ ํ•œ bit์— ๋Œ€์‘ํ•˜์—ฌ ์‚ฌ์šฉ์ค‘์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ 0๊ณผ 1๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. bit๋กœ ํ‘œํ˜„ํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ฐจ์ง€๊ฐ€ ์ ์œผ๋ฉฐ ์—ฐ์†์ ์œผ๋กœ ๋นˆ ๋ธ”๋ก์„ ์ฐพ๊ธฐ๊ฐ€ ์ข‹๋‹ค. ๋”ฐ๋ผ์„œ ๋งŽ์€ ํŒŒ์ผ์‹œ์Šคํ…œ์ด free block ๊ด€๋ฆฌ ์‹œ ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด ๋ธ”๋ก์‚ฌ์ด์ฆˆ๊ฐ€ 2^12byte์ด๊ณ  ๋””์Šคํฌ์‚ฌ์ด์ฆˆ๊ฐ€ 2^30byte(1GB)๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ๋ธ”๋ก์€ 2^18๊ฐœ ๋งŒํผ ์กด์žฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ•œ ๋ธ”๋ก์„ ํ•œ bit๋กœ ํ‘œํ˜„ํ•˜๋ฏ€๋กœ 2^18bit์ธ 32Kbyte๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

  2. Linked List

    ํ•œ free block์ด ๋‹ค์Œ free block์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ํ•˜์—ฌ chain์œผ๋กœ ์—ฎ๋Š”๋‹ค. ํ•˜๋‚˜์˜ free block์ด ์ƒˆ๋กœ ์ƒ๊ฒผ์„ ๋•Œ linked list ํ˜•ํƒœ๋กœ ๋ถ™์—ฌ์ฃผ์–ด์•ผํ•˜๊ณ  free block์„ ํ• ๋‹นํ•  ๋•Œ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋ฉฐ ์ฝ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— overhead๊ฐ€ ํฌ๋‹ค.

  3. Grouping(Indexing)

    ์—ฌ๋Ÿฌ ๊ฐœ์˜ free block์„ ์ธ๋ฑ์Šค ๋ธ”๋ก ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ธ๋ฑ์Šค ๋ธ”๋ก ๋งˆ์ง€๋ง‰์—๋Š” ๋‹ค์Œ ์ธ๋ฑ์Šค ๋ธ”๋ก์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๊ฐ€ ๊ธฐ๋ก๋˜์–ด์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ธ๋ฑ์Šค ๋ธ”๋ก ์ž์ฒด๋Š” linked-list ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. Linked List ๋ฐฉ๋ฒ•๋ณด๋‹ค overhead๋Š” ์ค„์–ด๋“ค์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๊ณ  ํ•˜๋“œ๋””์Šคํฌ๊ฐ€ Aging ๋œ ํ›„์—๋Š” ํŒŒ์ผ๋“ค์ด ๋ถˆ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹น๋˜๋ฏ€๋กœ ํšจ์œจ์„ฑ์ด ๊ฐ์†Œํ•œ๋‹ค.

    ์›๋ž˜๋Š” free block์ด ์ƒ๊ฒผ์„ ๋•Œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ชจ์•„๊ฐ€๋ฉด์„œ ์ธ๋ฑ์Šค ๋ธ”๋ก์„ ์ค€๋น„ํ•˜๊ณ  ์ธ๋ฑ์Šค ๋ธ”๋ก์ด ๊ฐ€๋“ ์ฐจ๋ฉด ๋””์Šคํฌ์— ๊ธฐ๋กํ•˜๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ, ์ด๋Ÿฐ ๋ฐฉ์‹์€ free block์ด ํ•„์š”ํ•  ๋•Œ ๊ณ„์† ํ•œ ์ธ๋ฑ์Šค ๋ธ”๋ก์„ ์ฝ๊ณ  ์“ฐ๋Š” ์ž‘์—…์ด ๋ฐ˜๋ณต๋˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ํ•˜๋ฝํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ธ๋ฑ์Šค ๋ธ”๋ก์„ ๋ฐ˜๋งŒ ์ฑ„์šฐ๊ณ  ๋””์Šคํฌ์— ๊ธฐ๋กํ•˜์ž๋Š” ์˜๊ฒฌ๋„ ๋‚˜์™”์œผ๋‚˜ ์–ด์ฐจํ”ผ ํ˜„์žฌ๋Š” ๋งŽ์€ ํŒŒ์ผ์‹œ์Šคํ…œ์ด bitmap์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค

Disk Quotas

์˜ˆ์ „์—๋Š” ์ปดํ“จํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๋ช…์ด ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๊ฐ ์‚ฌ์šฉ์ž๋งˆ๋‹ค ์ •ํ•ด์ง„ ์ž์›์˜ ์ œ์•ฝ์ด ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ Quota๋ผ๊ณ  ํ•˜๋Š”๋ฐ, Quota table์— ์ œ์•ฝ๋“ค์„ ๊ธฐ๋กํ•ด๋‘ ์œผ๋กœ์จ ์‚ฌ์šฉ์ž๊ฐ€ ํ• ๋‹น๋œ ์šฉ๋Ÿ‰์„ ๋„˜์–ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ์ฒ˜์Œ์—๋Š” Soft Block Limit์—์„œ ๊ฒฝ๊ณ ๊ฐ€ ์˜ค๊ณ  Hard Block Limit์—์„œ๋Š” ๋”์ด์ƒ ํ•˜๋“œ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์—ˆ๋‹ค.

ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐฑ์—…

ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ •ํ•ด์ง„ ๊ทœ์น™์— ๋”ฐ๋ผ ๋ฐฑ์—…ํ•ด์•ผํ•˜๋ฉฐ, ๋ฐฑ์—… ์‹œ ๋ณดํ†ต ๊ฐ€๊ฒฉ์ด ์ €๋ ดํ•œ tape ์ €์žฅ๋งค์ฒด์— ํ•˜๋Š” ํŽธ์ด๋‹ค.

<tape ๋ฐฑ์—… ๋ฐฉ๋ฒ•>

  1. Physical dump : ์ˆœ์ฐจ์  ๋ฐฑ์—…
  2. Logical Dump : ํŒŒ์ผ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋Œ€๋กœ ๋ฐฑ์—…
    1. Complete Dump : ํŒŒ์ผ์‹œ์Šคํ…œ ๊ตฌ์กฐ์ž์ฒด๋ถ€ํ„ฐ ๋ชจ๋“  ํŒŒ์ผ์„ ๋ฐฑ์—… (์ฃผ๊ธฐ์ ์œผ๋กœ)
    2. Incremental Dump : ๋งˆ์ง€๋ง‰ ๋ณ€๊ฒฝ ์ดํ›„ ํŒŒ์ผ๋งŒ ๋ฐฑ์—… (์ฃผ๊ธฐ ์‚ฌ์ด์—)

Incremental Dump

ํŒŒ์ผ ๋ฐฑ์—… ์ด์ „์— ๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋จผ์ € ๋ฐฑ์—…ํ•œ๋‹ค. ์ด ๋•Œ, ๋ฐ”๋€ ํŒŒ์ผ์— ๊ด€๋ จ๋œ ๊ตฌ์กฐ๋งŒ ๋ฐฑ์—…ํ•˜๋ฉด ๋œ๋‹ค.๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ผˆ๋Œ€๋ฅผ ๋งŒ๋“  ํ›„์— ํŒŒ์ผ์˜ ์œ„์น˜์— ๋”ฐ๋ผ ๋ฐฑ์—…ํ•œ๋‹ค.

<dump ์ ˆ์ฐจ>

  1. ๋ชจ๋“  ํŒŒ์ผ / ๋””๋ ‰ํ† ๋ฆฌ ๋งˆ๋‹ค 1 bit ์”ฉ ๋Œ€์‘๋˜๋Š” bitmap์„ ๋งŒ๋“ ๋‹ค.
  2. ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋ชจ๋‘ 1๋กœ ์„ธํŒ…ํ•˜์—ฌ ์šฐ์„  dumpํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ‘œ์‹œํ•œ๋‹ค.
  3. ํŒŒ์ผ์€ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋งŒ 1๋กœ ์„ธํŒ…ํ•˜์—ฌ dumpํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ‘œ์‹œํ•œ๋‹ค.
  4. ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ 0์œผ๋กœ clearํ•˜์—ฌ dumpํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ํ‘œ์‹œํ•œ๋‹ค.
  5. ๋ฌด์—‡์„ dumpํ•ด์•ผํ•˜๋Š” ์ง€ ๊ฒฐ์ •๋˜์—ˆ์œผ๋ฏ€๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋จผ์ €๋ณด๋ฉด์„œ bitmap ์ƒ 1๋กœ ํ‘œ์‹œ๋œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ dumpํ•œ๋‹ค.
  6. ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋“ค์„ dumpํ•œ๋‹ค.

๋‹ค๋ฅธ ๊ณ ๋ ค์‚ฌํ•ญ

  1. ๋ฐฑ์—…์œผ๋กœ๋ถ€ํ„ฐ์˜ ํšŒ๋ณต

    ๋ฐฑ์—… ์‹œ complete dump => incremental dump ํ•˜๋ฏ€๋กœ complete dump๋ฅผ ํšŒ๋ณตํ•œ ํ›„ incremental dump๋ฅผ ์ ์šฉํ•œ๋‹ค.

  2. logical dump ๋ฌธ์ œ

    ํŒŒ์ผ์ด link๋˜์–ด์žˆ์–ด ์ด๋ฆ„์ด 2๊ฐœ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” inode์˜ link-count๋ฅผ ๋ณด๊ณ  ๊ฒฐ์ •ํ•ด์•ผํ•˜๋ฏ€๋กœ dump๊ฐ€ ์–ด๋ ค์›Œ์ง„๋‹ค.

    FFS์˜ ํŒŒ์ผ์—์„œ ์ค‘๊ฐ„์—๋Š” ๊ธฐ๋ก์ด ์—†๊ณ  ์•ž ๋’ค๋ถ€๋ถ„๋งŒ ๊ธฐ๋ก๋˜์–ด์žˆ๋Š” ํฐ ํŒŒ์ผ์„ Hole์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด ํŒŒ์ผ์€ ๋ฐฑ์—… ์‹œ ๋งŽ์€ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€ํ•˜๋ฏ€๋กœ ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

๊ธฐ๋ก๋˜์–ด์žˆ์ง€ ์•Š์€ ๋ถ€๋ถ„์€ OS์—์„œ ๋Œ€๋ถ€๋ถ„ 0์œผ๋กœ ์ฑ„์›Œ์„œ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ค‘๊ฐ„์— ๊ธฐ๋ก์ด ์—†๋Š” ๊ฒฝ์šฐ๋Š” seek๋กœ r/w offset์„ ์ด๋™ํ•˜์˜€๊ฑฐ๋‚˜ sparse matrix์ธ ๊ฒฝ์šฐ์ด๋‹ค.

  1. dev ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— ์žˆ๋Š” ๋””๋ฐ”์ด์Šค ํŒŒ์ผ์ด๋‚˜ ํŒŒ์ดํ”„ ํŒŒ์ผ์€ dumpํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

ํŒŒ์ผ ์‹œ์Šคํ…œ ์ผ๊ด€์„ฑ

์•ž์— ์–ธ๊ธ‰ํ•œ Journaling ํŒŒ์ผ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค. ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ธ”๋ก(inode, ๋ฐ์ดํ„ฐ ๋ธ”๋ก, bitmap, ๋””๋ ‰ํ† ๋ฆฌ ์—”ํŠธ๋ฆฌ ๋“ฑ)์ด ๋ชจ๋‘ ์ˆ˜์ •๋˜์–ด์•ผํ•˜๋Š”๋ฐ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์ผ๊ด€์„ฑ์ด ๊นจ์ง„ ์ƒํƒœ(inconsistent state)๊ฐ€ ๋œ๋‹ค. ์ด๋Ÿฐ ์ผ๊ด€์„ฑ์ด ๊นจ์ง„ ์ƒํƒœ๋Š” ์‹œ์Šคํ…œ์ด ๊ฐ‘์ž๊ธฐ ๋‹ค์šด๋  ๋•Œ ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค.

์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ์‹œ์Šคํ…œ์—๋Š” ํšŒ๋ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ๋Š”๋ฐ UNIX ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ fsck, ์œˆ๋„์šฐ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ scandisk๊ฐ€ ํ•ด๋‹นํ•œ๋‹ค. ๋งŽ์€ ํŒŒ์ผ์‹œ์Šคํ…œ์ด ํšŒ๋ณต์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด journaling ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ธ”๋ก์„ ๊ธฐ๋กํ•ด๋‘๋Š” bit map๊ณผ ์ธ๋ฑ์Šค ๋ธ”๋ก ์•ˆ์— ๊ธฐ๋ก๋˜์–ด์žˆ๋Š” free block ๋ฒˆํ˜ธ๋“ค์„ ๋งค์น˜์‹œ์ผœ์„œ ์ผ๊ด€์ ์ธ์ง€ ํ™•์ธํ•œ๋‹ค. ๊ฐ€๋” ์ผ๊ด€์ ์ด์ง€ ์•Š์€ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

  1. ํŒŒ์ผ ์ƒ์„ฑ ์‹œ free block์„ ํ• ๋‹นํ•ด์„œ inode์— ๋“ฑ๋กํ•ด์•ผํ•˜๋Š”๋ฐ, ํ• ๋‹น ์ง์ „์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๊ฒฝ์šฐ

    ์ด ๊ฒฝ์šฐ์—๋Š” free block์„ ๋‹ค์‹œ ํ• ๋‹นํ•ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

  2. ํŒŒ์ผ ์‚ญ์ œ ์‹œ ์ƒ๊ธด free block์„ ๊ธฐ๋กํ•˜๋ คํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ์„œ ๋‹ค์‹œ ๋“ฑ๋ก๋˜๋Š” ๊ฒฝ์šฐ

    free block์ด 2๋กœ ๋˜์–ด์žˆ์œผ๋ฏ€๋กœ 1๋กœ ๋ณ€๊ฒฝ์‹œ์ผœ์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. ์ผ๊ด€์„ฑ์„ ํšŒ๋ณตํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฐ™์€ ๋ธ”๋ก์— 2๋ฒˆ ํŒŒ์ผ์ด ํ• ๋‹น๋˜์–ด ํฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.

  3. ๋ฐ์ดํ„ฐ ๋ธ”๋ก์ด 2๊ฐœ์˜ ํŒŒ์ผ์— ํ• ๋‹น๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ

    ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๋ฅผ ์ดˆ๋ž˜ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ํŒŒ์ผ์‹œ์Šคํ…œ์€ ๋ฐ˜๋“œ์‹œ ์ผ๊ด€์„ฑ์ด ํšŒ๋ณต๋œ ์ƒํƒœ์—์„œ ๋™์ž‘ํ•ด์•ผํ•œ๋‹ค.

 

ํŒŒ์ผ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ํ–ฅ์ƒ

ํŒŒ์ผ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์˜ ๋ณ‘๋ชฉ์ ์€ ํ•˜๋“œ๋””์Šคํฌ์™€ ๊ฐ™์€ ๋ฌผ๋ฆฌ์  ์žฅ์น˜์ด๋‹ค. ๋”ฐ๋ผ์„œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ ์‹œํ‚ค๋ ค๋ฉด ๋ฌผ๋ฆฌ์  ์žฅ์น˜์˜ ๊ธฐ๋Šฅ์„ ๊ฐœ์„ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

  • Caching

    ํ•˜๋“œ๋””์Šคํฌ์—์„œ data๋ฅผ ์ฝ์–ด์˜ค๋Š” ํšŸ์ˆ˜๋ฅผ ์ค„์ด์ž. ์บ์‹œ๋Š” disk์บ์‹œ, buffer์บ์‹œ, block์บ์‹œ๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. ์ด๋Š” CPU์™€ DRAM ์‚ฌ์ด์˜ ์บ์‹œ์™€๋Š” ๋‹ค๋ฅด๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ๋•Œ ํ•˜๋“œ๋””์Šคํฌ ์ ‘๊ทผ ์ „ DRAM์— ์žˆ๋Š” ํ•ด๋‹น ์บ์‹œ๋ฅผ ๋จผ์ € ์‚ดํŽด๋ณธ๋‹ค. ์ด๋Ÿฌํ•œ ๋””์Šคํฌ์บ์‹œ์—๋„ ์šฉ๋Ÿ‰ ์ œํ•œ์ด ์žˆ์œผ๋ฏ€๋กœ ๊ต์ฒด์ •์ฑ…์ด ํ•„์š”ํ•œ๋ฐ ์—ญ์‹œ๋‚˜ LRU๊ฐ€ ๊ฐ€์žฅ ์ ์ ˆํ•˜๋ฏ€๋กœ ์•ฝ๊ฐ„์˜ ์ˆ˜์ •์„ ํ†ตํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

๋””์Šคํฌ ๋ธ”๋ก๋“ค์„ double linked-list ํ˜•์‹์œผ๋กœ ์ €์žฅํ•œ ํ›„ front๋Š” LRU์ด๊ณ  rear๋Š” MRU๊ฐ€ ๋˜๋„๋ก ์œ ์ง€ํ•œ๋‹ค. ์ด ๋•Œ ๊ฐ ์š”์†Œ๋“ค์„ ์ž„์˜๋กœ ์ฐพ๊ธฐ ์œ„ํ•ด ํ•ด์‹œํ…Œ์ด๋ธ”์„ ์ด์šฉํ•ด์„œ ์ฐพ๋Š” ์‹œ๊ฐ„์„ ์ค„์—ฌ์ค€๋‹ค. ํ•ด์‹œ ๊ฐ’์ด ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๋ธ”๋ก๋“ค์€ double linked-list์™€ ๋ณ„๊ฐœ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ์œผ๋ฏ€๋กœ ๋น ๋ฅด๊ฒŒ ํ•ด๋‹น ๋ธ”๋ก์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

๋ธ”๋ก๋“ค์„ LRU์œ„์น˜์— ๋„ฃ์–ด๋‘˜ ๊ฒƒ์ธ์ง€ MRU์œ„์น˜์— ๋„ฃ์–ด๋‘˜ ๊ฒƒ์ธ์ง€๋Š” ํ•ด๋‹น ๋ธ”๋ก์˜ ํŠน์„ฑ(์ˆœ์ฐจ์ ์ธ์ง€ ์•„๋‹Œ์ง€)์— ๋”ฐ๋ผ ๊ฒฐ์ •๋  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์ผ๊ด€์„ฑ๊ณผ ๊ด€๋ จ๋œ ๋ธ”๋ก์€ ๋น ๋ฅด๊ฒŒ write-throughํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  • meta data ๊ฐ™์€ ์ค‘์š”ํ•œ ์ •๋ณด์˜ ๊ฒฝ์šฐ ์ˆ˜์ • ์ฆ‰์‹œ ํ•˜๋“œ๋””์Šคํฌ์— ์ ์–ด์ฃผ๋Š” Write-Through ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์ •๋ณด๋Š” MS-DOS์—์„œ๋Š” Write-Through ๋ฐฉ์‹์œผ๋กœ Unix์—์„œ๋Š” Write-back ๋ฐฉ์‹์œผ๋กœ ๊ธฐ๋กํ•œ๋‹ค. ๋งŽ์€ ํŒŒ์ผ์‹œ์Šคํ…œ์ด ์„ฑ๋Šฅ๋•Œ๋ฌธ์— Write-back ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ์ผ์ •์ฃผ๊ธฐ(Unix์˜ ๊ฒฝ์šฐ 30์ดˆ)์— ํ•œ๋ฒˆ์”ฉ syncํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•œ๋‹ค.

  • Read-ahead

    ์‹ค์ œ ๋ฆฌ๋ˆ…์Šค์—์„œ๋„ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํŒŒ์ผ ํ•˜๋‚˜๋ฅผ ์ฝ์„ ๋•Œ, ๋’ท๋ถ€๋ถ„๋„ ๋ฏธ๋ฆฌ ์ฝ์–ด์„œ disk์บ์‹œ์— ๋„ฃ์–ด๋‘๋Š” ๋ฐฉ์‹์ด๋‹ค. ์บ์‹œ์— ๋„ฃ์–ด๋‘” ๋ถ€๋ถ„์ด ํ•„์š”์—†๋Š” ๋ถ€๋ถ„์ด๋ฉด ์†ํ•ด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ ์  read-ahead ๊ฐ„๊ฒฉ์„ ๋Š˜๋ ค๊ฐ€๋Š” ์‹์œผ๋กœ ๋™์ž‘ํ•ด์•ผํ•œ๋‹ค. ์ˆœ์ฐจ์ ์œผ๋กœ ํŒŒ์ผ์„ ์ ‘๊ทผํ•  ๋•Œ๋งŒ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค.

  • ๋””์Šคํฌ ์•” ์›€์ง์ž„ ์ถ•์†Œ

    ํ•˜๋“œ ๋””์Šคํฌ๋Š” ํ—ค๋“œ๊ฐ€ ์›ํŒ ์œ„์—์„œ ์›€์ง์ด๋ฉด์„œ ์ฝ๋Š”๋ฐ, ์›€์ง์ด๋Š” ์‹œ๊ฐ„ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ๋‚˜๋น ์ง„๋‹ค. ๋”ฐ๋ผ์„œ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊พผ๋‹ค.

    ๊ธฐ์กด์—๋Š” ํ•˜๋“œ๋””์Šคํฌ๋ฅผ ์ผ๋ ฌํ™”ํ•ด๋ณด์•˜์„ ๋•Œ super block => block bitmap => inode bitmap => inode list => data block ์ˆœ์œผ๋กœ ๊ธฐ์žฌ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ˆœ์œผ๋กœ ๋ฐ”๊นฅ์ชฝ ํ—ค๋“œ๋ถ€ํ„ฐ ์•ˆ์ชฝ ํ—ค๋“œ๋กœ ๋“ค์–ด๊ฐ€๋ฉด์„œ ๋””์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ํ•œ ํŒŒ์ผ์„ ์ฝ์œผ๋ ค๋ฉด inodelist์™€ data block์„ ๊ณ„์† ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ์™”๋‹ค๊ฐ”๋‹ค ํ•ด์•ผํ•˜๋ฏ€๋กœ ํ—ค๋“œ์˜ ์›€์ง์ž„์ด ๋งŽ์•„์„œ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์ด ๋‚˜๋นด๋‹ค. ๋˜ํ•œ ํŠธ๋ž™์˜ ๋ฐ”๊นฅ ๋ถ€๋ถ„์— ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋“œ๋””์Šคํฌ์˜ ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ์•˜๋‹ค.

๋”ฐ๋ผ์„œ Unix ํŒŒ์ผ์‹œ์Šคํ…œ์—์„œ๋Š” FastFileSystem์ด๋ผ๋Š” FFS๋ฐฉ์‹์„ ๋„์ž…ํ•˜์˜€๋‹ค. ์ด๋Š” ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์ด๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•œ ๊ธฐ๋ฒ•์ธ๋ฐ, ์‹ค๋ฆฐ๋”๋ž€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์›ํŒ์— ๋™์ผํ•œ ํŠธ๋ž™๋“ค์„ ๋ชจ์€ ๊ฒƒ์ด๊ณ  ์ด๋Ÿฌํ•œ ์‹ค๋ฆฐ๋”๋ฅผ ๋ชจ์€ ๊ฒƒ์ด ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ํŒŒ์ผ์‹œ์Šคํ…œ์€ ์ „์ฒด๊ณต๊ฐ„์„ ๋ช‡ ๊ฐœ์˜ ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์ƒˆ๋กœ์šด ๋ถ„ํ• ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉฐ, ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์˜ ํŠน์„ฑ ์ƒ ํ—ค๋“œ๊ฐ€ ํ•œ ๋ฒˆ ์ž๋ฆฌ ์žก์œผ๋ฉด ๊ฑฐ์˜ ์›€์ง์ด์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

FFS์—์„œ ๋””๋ ‰ํ† ๋ฆฌ์— ํŒŒ์ผ์„ ๋งŒ๋“ค๋ฉด ๋™์ผํ•œ ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์— ํŒŒ์ผ์„ ํ• ๋‹นํ•˜์ง€๋งŒ, ํ•œ ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์—์„œ์˜ ํŒŒ์ผ์ด ๋„ˆ๋ฌด ์ปค์„œ ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•˜๋‹ค๋ฉด ์ธ์ ‘ ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์˜ ๋ฐ์ดํ„ฐ๋ธ”๋ก์„ ์†Œ๋ชจํ•˜๋„๋ก ์œ ๋„ํ•˜๋Š” ๋“ฑ์˜ ์ •๊ตํ•œ ํŒจํ„ด ์ •์ฑ…์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋””์Šคํฌ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋‰˜๋ฏ€๋กœ ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน๋งˆ๋‹ค ํŒŒ์ผ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŒŒ์ผ์‹œ์Šคํ…œ์€ ์ด๋Ÿฌํ•œ ์ •๋ณด๋„ ์œ ์ง€ํ•ด์•ผํ•˜๋ฏ€๋กœ Group descriptor๋ฅผ ๋„์ž…ํ•˜์—ฌ Super block์—๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ์ „์ฒด ๊ตฌ์กฐ์— ๋Œ€ํ•œ ํ˜•์ƒ์ •๋ณด๋ฅผ, Group descriptor์—๋Š” ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน ๋‚ด์˜ ํ˜•์ƒ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.

Linux์˜ ext ํŒŒ์ผ์‹œ์Šคํ…œ๋„ ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน ๋‹จ์œ„๋กœ ํŒŒ์ผ์‹œ์Šคํ…œ์„ ๋”ฐ๋กœ ๋งŒ๋“ ๋‹ค.

  • ์ด๋ ‡๊ฒŒ ์‹ค๋ฆฐ๋”๋ฅผ ์ด์šฉํ•œ ๊ธฐ๋ฒ•์€ ๊ตฌ์กฐ๊ฐ€ ํ›ผ์†๋˜๋”๋ผ๋„ ํ•œ ๊ทธ๋ฃน๋งŒ ํ”ผํ•ด๋ฅผ ๋ณด๋Š” ์•ˆ์ •์„ฑ, ํ—ค๋“œ๋ฅผ ๊ฑฐ์˜ ์›€์ง์ด์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ์˜ ์žฅ์ ์„ ๋ณด์ธ๋‹ค.

  • ๋””์Šคํฌ ๋‹จํŽธํ™” ์ถ•์†Œ

    ์œˆ๋„์šฐ์ฆˆ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋””์Šคํฌ ์กฐ๊ฐ๋ชจ์Œ (defrag)์ด๋ผ๋Š” ๊ธฐ๋Šฅ์ด ํ•œ ์˜ˆ์ด๋‹ค. ๋””์Šคํฌ์˜ ๋‹จํŽธํ™”๋ฅผ ์ถ•์†Œํ•˜๊ธฐ ์œ„ํ•ด ๋นˆ๊ณต๊ฐ„์„ ํ†ตํ•ฉํ•˜๊ณ  ํ•œ ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ”๊พธ์–ด์ค€๋‹ค. ํ•˜์ง€๋งŒ ์ตœ๊ทผ ์ด๊ฒƒ์ด ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅํ–ฅ์ƒ์„ ๊ฐ€์ ธ๋‹ค์ฃผ์ง€ ๋ชปํ•œ๋‹ค๊ณ  ๋ฐํ˜€์กŒ๋‹ค.

 

The ISO 9660 ํŒŒ์ผ ์‹œ์Šคํ…œ

CD-ROM์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ์ด๋‹ค. ์—”ํŠธ๋ฆฌ๊ฐ€ MS-DOS์˜ FAT ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ์—”ํŠธ๋ฆฌ์™€ ์œ ์‚ฌํ•˜๋‹ค.

CD-ROM์€ ํ•œ ๋ฒˆ ์ฐ์–ด๋‚ด๋ฉด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์—ฐ์†ํ• ๋‹น๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  Contiguous allocation ๋ฐฉ์‹์—์„œ ์–ธ๊ธ‰ํ•˜์˜€๋‹ค. ์—”ํŠธ๋ฆฌ์—๋Š” (์‹œ์ž‘์œ„์น˜, ์‚ฌ์ด์ฆˆ, ...)๊ฐ€ ๊ธฐ๋ก๋˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” ๋ฏธ ์‚ฌ์šฉ ์˜์—ญ์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ ์“ด๋‹ค.

ํŒŒ์ผ์˜ ์ด๋ฆ„์€ 8.3๋ฐ–์— ์•ˆ๋˜๋ฉฐ Symbolic link๊ฐ€ ์—†๊ณ  ๋””๋ฐ”์ด์Šค ํŒŒ์ผ์„ ๊ธฐ๋กํ•˜๋Š” Major, minor ๋ฒˆํ˜ธ๊ฐ€ ์—†์œผ๋ฉฐ ๋””๋ ‰ํ† ๋ฆฌ depth๊ฐ€ ์งง๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ์ปค๋ฒ„ํ•˜๊ธฐ ์œ„ํ•ด Unix ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ํ™•์žฅํŒ์ธ _'Rock Ridge Extension'_์™€ _'Joliet Extension'_์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

ํŒŒ์ผ ์ ‘๊ทผ ์ œ์–ด

ํŒŒ์ผ์‹œ์Šคํ…œ์—๋Š” ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์˜ ํŒŒ์ผ์ด ์žˆ์œผ๋ฏ€๋กœ ์ ‘๊ทผ ์ œ์–ด ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ๋ณด์•ˆ์„ฑ์„ ๊ฐ–์ถ”์–ด์•ผํ•œ๋‹ค.

  • Access Control matrix

    ํ–‰์ด ํŒŒ์ผ์„, ์—ด์ด ์‚ฌ์šฉ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” matrix๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์™€ ํŒŒ์ผ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ RWED ์ ‘๊ทผ์ œ์–ด bit๋กœ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด ๋ฐฉ์‹์€ matrix๊ฐ€ ๋„ˆ๋ฌด ํฐ ๋‹จ์ ์ด ์žˆ๋‹ค.

  • Access Control List

    ํŒŒ์ผ์„ ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ธฐ๋กํ•œ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๊ธฐํƒ€ ์‚ฌ์šฉ์ž๋ผ๊ณ  ๊ธฐ๋กํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค. Unix๋Š” ์ด๋ฅผ ์•ฝ๊ฐ„ ๋ณ€ํ˜•ํ•œ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ '์†Œ์œ ์ž, ๊ทธ๋ฃน์†Œ์œ ์ž, ๊ธฐํƒ€์‚ฌ์šฉ์ž' 3๋ถ„๋ฅ˜๋กœ ๋‚˜๋ˆˆ๋‹ค.

  • Capability List

    ์‚ฌ์šฉ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒŒ์ผ๋งˆ๋‹ค ์–ด๋–ค ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ธฐ๋กํ•œ๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž์˜ ๋Šฅ๋ ฅ์„ ๊ธฐ๋กํ•œ๋‹ค. ๋งŽ์€ OS๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ ํŒŒ์ผ์ด ์•„๋‹Œ ์‹œ์Šคํ…œ๊ด€๋ฆฌ๋‚˜ ๋„คํŠธ์›Œํฌ ํ†ต์‹  ์ธก๋ฉด์—์„œ ํ•ด๋‹น ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.


ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

ํ•˜๋“œ๋””์Šคํฌ ๊ณต๊ฐ„์€ ํšŒ์ „ํ•˜๋Š” ์›ํŒ์ด๋ฉฐ ํŠธ๋ž™ ๋‹จ์œ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ํŠธ๋ž™์€ ์„นํ„ฐ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์–ด์ ธ์žˆ๊ณ  ์ด๋ฅผ ์ผ๋ ฌํ™”ํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๋””์Šคํฌ๋Š” ์œ„์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ๋‹ค. ๊ฐ€์žฅ ์•ž์—๋Š” MBR(Master Boot Record)์ด ์œ„์น˜ํ•˜๋ฉฐ ๋’ค์—๋Š” Partition table์ด ์œ„์น˜ํ•˜์—ฌ ํŒŒํ‹ฐ์…˜์˜ ๊ฐฏ์ˆ˜, boot ํŒŒํ‹ฐ์…˜์˜ ์œ„์น˜๋ฅผ ์ €์žฅํ•œ๋‹ค. ๊ฐ ํŒŒํ‹ฐ์…˜์—๋Š” boot block, super block๋“ฑ์˜ ๊ตฌ์กฐ๊ฐ€ ์žˆ๋‹ค. ํŒŒํ‹ฐ์…˜๋งˆ๋‹ค ๋‹ค๋ฅธ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐ ์šด์˜์ฒด์ œ๊ฐ€ ๋™์ž‘ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

PC์— ์ „์›์„ ๋„ฃ์œผ๋ฉด ROM-BIOS๊ฐ€ MBR์˜ ๋ถ€ํŠธ์ฝ”๋“œ๋ฅผ ์ ์žฌํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค. ๊ทธ ํ›„ boot partition์„ ์ฐพ์•„ OS์˜ ๋ถ€ํŠธ ์ฝ”๋“œ๋ฅผ ์ ์žฌํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉด OS๊ฐ€ ๋ถ€ํŒ…๋œ๋‹ค.

 

MS-DOS FAT ํŒŒ์ผ์‹œ์Šคํ…œ

MS ์‚ฌ์—์„œ PC์šฉ์œผ๋กœ ๋งŒ๋“  ํŒŒ์ผ์‹œ์Šคํ…œ์ด๋‹ค. ํ˜„์žฌ๋Š” USB ๋“œ๋ผ์ด๋ธŒ์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๋Œ€์šฉ๋Ÿ‰ ํ•˜๋“œ๋””์Šคํฌ์—๋Š” NTFS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. FAT ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

FAT block์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋ฉฐ FAT block table์˜ ์š”์†Œ ํ•˜๋‚˜ํ•˜๋‚˜๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ธ”๋ก๊ณผ ๋Œ€์‘๋œ๋‹ค. FAT block table์€ ๋ฐ์ดํ„ฐ๋ธ”๋ก์˜ ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ธ”๋ก์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ์— ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•˜๊ณ  ๋น„์–ด์žˆ๋Š” free block์„ ๋‚˜ํƒ€๋‚ด๋Š” ์—ญํ• ๋„ ํ•œ๋‹ค. ์ด๋Š” ์ด์ „์— ์„ค๋ช…ํ–ˆ๋“ฏ์ด contiguos allocation ๋ฐฉ์‹๊ณผ linked-list ๋ฐฉ์‹์„ ์ง€๋‚˜ meta data๋ฅผ FAT block table์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์— ๋ชจ์•„๋‘ ์œผ๋กœ์จ ๋งŒ๋“ค์–ด์ง„ ๊ตฌ์กฐ์ด๋‹ค.

ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ๋ธ”๋ก์˜ ์ฃผ์†Œ๋กœ ๊ธฐ์–ตํ•˜๋ฉฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๋ฉด ํ…Œ์ด๋ธ”์ด ๋งŒ๋“ค์–ด์ง€๊ณ  root ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ๋Š” .๊ณผ ..์ด ๊ธฐ๋ณธ์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ธ”๋ก์˜ ์‚ฌ์ด์ฆˆ๋Š” ๊ธฐ๋ก ์‹œ byte ๋‹จ์œ„๋กœ ๊ธฐ๋ก๋˜์ง€๋งŒ ๊ทธ๋ฆผ์—๋Š” ํŽธ์˜์ƒ block์˜ ๊ฐฏ์ˆ˜๋กœ ํ‘œ์‹œํ•ด๋‘์—ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ธ”๋ก์˜ ์œ„์น˜๋Š” FAT block table์—์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹น๋˜์–ด์žˆ์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

ํŒŒ์ผ์„ ์ฐพ๊ณ ์ž ํ•  ๋•Œ๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ์ด ์•Œ๊ณ ์žˆ๋Š” ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ฐพ์•„๋‚˜๊ฐ€๋ฉด ๋œ๋‹ค.

๋ฐ์ดํ„ฐ ๋ธ”๋ก ์—”ํŠธ๋ฆฌ์—์„œ ์ด๋ฆ„์€ 8๊ธ€์ž + ํ™•์žฅ์ž 3๊ธ€์ž๋กœ ๊ตฌ์„ฑ๋˜๊ณ  ์†์„ฑ์€ '๋””๋ ‰ํ† ๋ฆฌ','ํŒŒ์ผ','์‹œ์Šคํ…œํŒŒ์ผ'์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด 1bit๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜ํƒ€๋ƒˆ์—ˆ๋‹ค. ํ˜„์žฌ reserved ์˜์—ญ์€ ์—†์–ด์กŒ์œผ๋ฉฐ ํŒŒ์ผ ์ด๋ฆ„์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€๋ณ€๊ธธ์ด ์—”ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ธ”๋ก ์—”ํŠธ๋ฆฌ์˜ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ FAT-12(12bit), FAT-16, FAT-32 ์ˆœ์œผ๋กœ ๋ฐœ์ „ํ•˜๋‹ค๊ฐ€ ํ˜„์žฌ๋Š” NTFS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

UNIX V7 FS

์ดˆ๊ธฐ์˜ ์œ ๋‹‰์Šค ํŒŒ์ผ์‹œ์Šคํ…œ์ด๋‹ค. inode๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด ํŠน์ง•์ด๊ณ  Super block์—๋Š” ์ „์ฒด ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ํ˜•์ƒ๊ตฌ์กฐ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” Super block๊ณผ inode ์‚ฌ์ด์— inode bitmap๊ณผ block bitmap์ด ์กด์žฌํ•œ๋‹ค.

inode์˜ ํฌ๊ธฐ๋Š” ๋ฒ„์ „๋งˆ๋‹ค ๋‹ค๋ฅด๊ณ  ext-4 ํŒŒ์ผ์‹œ์Šคํ…œ์—์„œ๋Š” 256byte์ด๋‹ค. inode๋Š” ์œ„์น˜๊ฐ€ ์ •ํ•ด์ ธ์žˆ์–ด ๋ฒˆํ˜ธ๋งŒ ์•Œ๋ฉด ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค. 0,1๋ฒˆ inode๋Š” ์ „ํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  2๋ฒˆ inode block๋ถ€ํ„ฐ root ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ธฐ๋กํ•˜๋ฉด์„œ ์‚ฌ์šฉ๋œ๋‹ค. inode์—๋Š” ์ด๋ฆ„์„ ์ œ์™ธํ•œ ํŒŒ์ผ์˜ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค. inode์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ธ”๋ก์€ ์ด 13๊ฐœ์ด๋ฉฐ 10๊ฐœ์˜ directed ๋ฐ์ดํ„ฐ๋ธ”๋ก๊ณผ 3๊ฐœ์˜ indirected ๋ฐ์ดํ„ฐ๋ธ”๋ก์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. indirected ๋ฐ์ดํ„ฐ๋ธ”๋ก์€ ์‹ฑ๊ธ€, ๋”๋ธ”, ํŠธ๋ฆฌํ”Œ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์œผ๋ฉฐ ํฌ์ธํ„ฐ๋ฅผ ํ†ตํ•ด index block์— ์ ‘๊ทผํ•œ๋‹ค.

๋ชจ๋“  ๋””๋ ‰ํ† ๋ฆฌ ์—”ํŠธ๋ฆฌ์—๋Š” .๊ณผ ..์ด ์žˆ์œผ๋ฉฐ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ๋งŒ ๋‘ ๊ฐœ์˜ inode๊ฐ€ ๊ฐ™๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ๋Š” table ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ์œผ๋ฉฐ ์ด๋ฆ„๊ณผ inode๋ฅผ ๋งคํ•‘ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ(CWD)๋„ inode ๋ฒˆํ˜ธ๋กœ ๊ธฐ์–ตํ•œ๋‹ค. ํ˜„์žฌ๋Š” ์ด๋ฆ„์˜ ๊ธธ์ด๋ฅผ ๊ธธ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€๋ณ€ ์—”ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

ํŒŒ์ผ ์ ‘๊ทผ ์ œ์–ด์—์„œ ๋‹ค๋ค˜๋“ฏ์ด Unix FS๋Š” ํŒŒ์ผ์˜ ๊ถŒํ•œ์„ Access Control List(๊ฐ ํŒŒ์ผ์— ๋”ฐ๋ฅธ ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ์„ ๋‚˜ํƒ€๋‚ด๋Š” list)๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์†Œ์œ ์ž, ๊ทธ๋ฃน์‚ฌ์šฉ์ž, ๊ธฐํƒ€์‚ฌ์šฉ์ž๋กœ ๋‚˜๋ˆ„์–ด์ง€๋ฉฐ ๊ฐ bit๋Š” inode์— ์†์„ฑ์œผ๋กœ ์ €์žฅ๋˜์–ด์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ฐ ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ์— ๋Œ€ํ•ด ๋‚˜ํƒ€๋‚ธ bit๋Š” inode ์ƒ์— ์ €์žฅ๋˜์–ด์žˆ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ์— ๋Œ€ํ•œ ์ ‘๊ทผ์€ ํŒŒ์ผ์„ ์—ด ๋•Œ ๊ฒ€์‚ฌํ•˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํŒŒ์ผ์„ ์—ฐ ํ›„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ฐ”๊ฟ”๋„ ํŒŒ์ผ์„ ์—ด๊ณ ์žˆ๋Š” ๋™์•ˆ์€ ์ด์ „ ๊ถŒํ•œ์ด ์œ ์ง€๋œ๋‹ค.

<์œ ๋‹‰์Šค ํŒŒ์ผ์‹œ์Šคํ…œ>

๋ธ”๋ก์˜ ์ฒ˜์Œ์—๋Š” ์—ญ์‹œ Boot ๋ธ”๋ก์ด ์กด์žฌํ•˜๊ณ  Super ๋ธ”๋ก์ด๋ผ๋Š” ์ „์ฒด ํŒŒ์ผ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ˜•์ƒ์ •๋ณด๋ฅผ ๋‹ด์•„๋‘๊ณ  ์žˆ๋Š” ๋ธ”๋ก๋„ ์žˆ๋‹ค. i-node ๋ธ”๋ก์˜ ์œ„์น˜, ๋ฐ์ดํ„ฐ ๋ธ”๋ก์˜ ์œ„์น˜, ๋น„ํŠธ๋งต์˜ ์œ„์น˜ ๋“ฑ์ด ๋‹ด๊ฒจ์žˆ๋‹ค.

๊ทธ ํ›„ ๋‚˜์˜ค๋Š” i-node list๋Š” ๋ฆฌ๋ˆ…์Šค์—์„œ 256byte์ •๋„๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์œผ๋ฉฐ, ๊ณ ์ •๋œ ์œ„์น˜์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž„์˜์ ‘๊ทผํ•˜์—ฌ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ์ „ํ†ต์ ์œผ๋กœ 0๋ฒˆ๊ณผ 1๋ฒˆ inode๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  2๋ฒˆ inode๋ฅผ root ๋””๋ ‰ํ† ๋ฆฌ์šฉ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. 2๋ฒˆ inode๋ถ€ํ„ฐ root ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์„œ๋ธŒ ๋””๋ ‰ํ† ๋ฆฌ์™€ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์˜ ํŒŒ์ผ ์ •๋ณด๋ฅผ ๋ฐ์ดํ„ฐ๋ธ”๋ก์— ๊ธฐ๋กํ•œ๋‹ค. ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก ์ •๋ณด๋Š” inode์— ๊ธฐ๋กํ•˜์—ฌ ์ •ํ•ด์ง„ ์œ„์น˜์— ์žˆ๋Š” inode์— ์ ‘๊ทผํ•˜๋ฉด ํ•ด๋‹น ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๋ธ”๋ก์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๋™์ž‘์€ ๊ฐ„๋‹จํžˆ 'ํŒŒ์ผ์ด๋ฆ„'์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๋ธ”๋ก(๋””๋ ‰ํ† ๋ฆฌ)์—์„œ ํ•ด๋‹น ์ด๋ฆ„์„ inode ๋ฒˆํ˜ธ๋กœ ๋งคํ•‘ํ•ด์ฃผ๊ณ , ํ•ด๋‹น inode๋กœ ์ด๋™ํ•˜์—ฌ ํŒŒ์ผ์˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๋ธ”๋ก ์œ„์น˜๋ฅผ ์ฝ๋Š”๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ๋Š” ์ด๋ฆ„๊ณผ ํŒŒ์ผ์˜ ์ •๋ณด(inode)๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

inode ๋ธ”๋ก์—๋Š” ๋ฐ์ดํ„ฐ๋ธ”๋ก์„ 13๊ฐœ๋ฐ–์— ๊ธฐ๋กํ•˜์ง€ ๋ชปํ•˜๋Š”๋ฐ, ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด index๋ธ”๋ก์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ tree ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๋”ฐ๋ผ์„œ 10๊ฐœ์ด ๋ฐ์ดํ„ฐ๋ธ”๋ก์€ direct block์ด๊ณ  ๋‚˜๋จธ์ง€ 3๊ฐœ๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ single indirect block, double indirect block, triple indirect block์ด๋‹ค. ์‹ค์ œ๋กœ ์›ฌ๋งŒํ•œ ํฌ๊ธฐ๋Š” double์—์„œ ์ปค๋ฒ„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

FAT vs UNIX

์œ„์—์„œ ์„ค๋ช…ํ•œ FAT ๋ฐฉ์‹๊ณผ Indexed allocation ๋ฐฉ์‹์˜ ์ฐจ์ด์ ์„ ๋ณด๊ธฐ ์œ„ํ•ด FAT๊ณผ Unix ํŒŒ์ผ์‹œ์Šคํ…œ์„ ๋น„๊ตํ•ด๋ณด์ž

OS FAT UNIX
ํŒŒ์ผ ์ด๋ฆ„ ๋ฐ์ดํ„ฐ ๋ธ”๋ก ๋ฐ์ดํ„ฐ ๋ธ”๋ก
ํŒŒ์ผ ์†์„ฑ ๋ฐ์ดํ„ฐ ๋ธ”๋ก inode
ํŒŒ์ผ ๋ฐ์ดํ„ฐ ๋ฐ์ดํ„ฐ ๋ธ”๋ก ๋ฐ์ดํ„ฐ ๋ธ”๋ก

๋‘ ํŒŒ์ผ์‹œ์Šคํ…œ ๋ชจ๋‘ ์ด๋ฆ„์„ ๋ฐ์ดํ„ฐ๋ธ”๋ก์— ์ €์žฅํ•˜๋Š”๋ฐ, ์ฒ˜์Œ์—๋Š” ๊ณ ์ •๊ธธ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ์ด๋ฆ„์ด ๊ธธ์–ด์ง์— ๋”ฐ๋ผ์„œ ๊ฐ€๋ณ€ ์—”ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

๊ฐ€๋ณ€ ์—”ํŠธ๋ฆฌ ๊ตฌ์กฐ

a์™€ ๊ฐ™์ด ์—”ํŠธ๋ฆฌ๋งˆ๋‹ค ํŒŒ์ผ์ด๋ฆ„์„ ๋” ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋ณ€๊ธธ์ด ์—”ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•˜๊ณ , b์™€ ๊ฐ™์ด heap์— ํŒŒ์ผ์ด๋ฆ„์„ ๋ชจ์•„๋‘๊ณ  ํ•ด๋‹น ์œ„์น˜๋ฅผ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. b ๋ฐฉ๋ฒ•์€ ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉฐ FAT๊ณผ UNIX ํŒŒ์ผ์‹œ์Šคํ…œ ๋ชจ๋‘ a์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

FAT ํŒŒ์ผ์‹œ์Šคํ…œ ์—”ํŠธ๋ฆฌ

FAT ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๋ฐ์ดํ„ฐ๋ธ”๋ก ์—”ํŠธ๋ฆฌ์ธ๋ฐ, ์•ž์—์„œ ์–ธ๊ธ‰ํ•œ๋Œ€๋กœ ํŒŒ์ผ์˜ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ๋‹ค. ์‚ฌ์ด์— Reserved ๋ถ€๋ถ„์€ ์ฒ˜์Œ์— ๋นˆ๊ณต๊ฐ„์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์ง€๋งŒ ํ˜„์žฌ๋Š” ์ด ์˜์—ญ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๊ณ  ์—”ํŠธ๋ฆฌ๋„ ๊ฐ€๋ณ€์œผ๋กœ ํ•ด์„œ ํŒŒ์ผ ์ด๋ฆ„์„ ๊ธธ๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๋งŒ๋“ค์—ˆ๋‹ค.

 

FFS (Fast File System)

FFS๋Š” UNIX ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํ˜„์žฌ ๋ฒ„์ „์ด๋‹ค. ์ด์ „์— ์„ค๋ช…ํ–ˆ๋“ฏ์ด FFS๋Š” ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด ํ—ค๋“œ arm์˜ ์›€์ง์ž„์„ ์ตœ์†Œํ™”ํ•˜์—ฌ rotational delay(=seek time)์„ ์ค„์ด๊ณ ์ž ๊ณ ์•ˆํ•œ ํŒŒ์ผ์‹œ์Šคํ…œ์ด๋‹ค. ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์€ ํ—ค๋“œ๊ฐ€ ์ •์ฐฉํ•˜๋ฉด ๋” ์ด์ƒ ์›€์ง์ด์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ธ์ ‘ ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน์œผ๋กœ ๊ฐ€๊ธฐ์— ์šฉ์ดํ•˜๋‹ค.

 

Linux EXT 2,3,4 FS

http://esos.hanyang.ac.kr/tc/2015gradproject8/i/entry/3

  • Ext 2

    ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์‹ค๋ฆฐ๋” ๊ทธ๋ฃน ๋‹จ์œ„๋กœ ์ชผ๊ฐ  ํŒŒ์ผ์‹œ์Šคํ…œ

    Journaling์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • Ext 3

    Ext 2์—์„œ Journaling ๋ฐฉ์‹์„ ์ด์šฉํ•œ fsck ํ”„๋กœ๊ทธ๋žจ์„ ๋„์ž…ํ•ด์„œ ํšŒ๋ณต์‹œ๊ฐ„์„ ์ค„์ธ ํŒŒ์ผ์‹œ์Šคํ…œ

  • Ext 4

    Ext2, Ext3๊ฐ€ indirected ํฌ์ธํ„ฐ ๋งคํ•‘ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ Ext4๋Š” extent๋ผ๋Š” ์ƒˆ๋กœ์šด ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. indirected ๋ฐฉ์‹์ด ๊ฒฐ๊ตญ์—๋Š” ๋ชจ๋“  ๋ธ”๋ก์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ํ•„์š”ํ–ˆ์ง€๋งŒ, extent ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ธ”๋ก์„ ์—ฐ์†์ ์œผ๋กœ ๋ฌถ์–ด๋‘ ์œผ๋กœ์จ meta data์˜ ํฌ๊ธฐ๋ฅผ ์ค„์˜€๋‹ค.

    ๋ธ”๋ก์„ ์—ฐ์†์ ์œผ๋กœ ๊ธฐ๋ก, ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•