๋ณด์กฐ ๊ธฐ์–ต ์žฅ์น˜์— ์ €์žฅ๋˜๋Š” ํŒŒ์ผ์˜ ํ• ๋‹น์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.

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

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

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

ํŒŒ์ผ ํ• ๋‹น์ด๋ž€

์œ„ ๊ทธ๋ฆผ์€ pool of free blocks๋ฅผ ๋…ผ๋ฆฌ์ ์ธ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๋ชจ์Šต์ด๊ณ  ๋ธ”๋ก๋งˆ๋‹ค ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•˜์˜€๋‹ค. ๋ธ”๋ก๋“ค์ด ์œ„์™€ ๊ฐ™์ด ์žˆ์„ ๋•Œ ํŒŒ์ผ์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ์—ฐ์† ํ• ๋‹น, ์—ฐ๊ฒฐ ํ• ๋‹น, ์ƒ‰์ธ ํ• ๋‹น ์„ธ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

2.1 ์—ฐ์† ํ• ๋‹น (Contiguous Allocation)

์—ฐ์† ํ• ๋‹น์€ ๋ง๊ทธ๋Œ€๋กœ ์—ฐ์†๋œ ๋ธ”๋ก์— ํŒŒ์ผ์„ ํ• ๋‹น ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ธ”๋ก ํฌ๊ธฐ๊ฐ€ 1KB์ด๊ณ , ํ• ๋‹นํ•  ํŒŒ์ผ์€ f1, f2, f3 3๊ฐœ๊ฐ€ ์žˆ๊ณ  ๊ฐ๊ฐ์˜ ํฌ๊ธฐ๋Š” 5KB, 3KB, 4KB์ด๋‹ค.

์•ž์„  ์˜ˆ์ œ๋กœ ์—ฐ์† ํ• ๋‹น์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ๋ชจ์Šต์ด ๋‚˜์˜จ๋‹ค.

2.1.1 ์—ฐ์†ํ• ๋‹น์˜ ์žฅ์ 

์—ฐ์† ํ• ๋‹น์—๋Š” ์„ธ ๊ฐ€์ง€ ํŠน์ง•์ด ์žˆ๋‹ค.

  • ์—ฐ์† ํ• ๋‹น์˜ ์žฅ์ ์€ ๋””์Šคํฌ ํ—ค๋”์˜ ์ด๋™์„ ์ตœ์†Œํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • I/O ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ์˜ˆ์ „์˜ IBM์—์„œ ์‚ฌ์šฉํ•˜๋˜ ๋ฐฉ๋ฒ•์ด๋ฉฐ ์ฃผ๋กœ ๋™์˜์ƒ, ์Œ์•…, VOD ๋“ฑ์— ์ ํ•ฉํ•˜๋‹ค.
  • ์ˆœ์ฐจ ์ ‘๊ทผ(Sequential Access)์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ์ด๋Š” ๋ง๊ทธ๋Œ€๋กœ ์ˆœ์„œ๋Œ€๋กœ ํŒŒ์ผ์„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.
  • ์ง์ ‘ ์ ‘๊ทผ(Direct Access)์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ์šด์˜์ฒด์ œ๋Š” ํŒŒ์ผ์˜ ์ •๋ณด๋ฅผ ๋””๋ ‰ํ† ๋ฆฌ(directory) ๋ผ๋Š” ํ…Œ์ด๋ธ”์— ์ €์žฅํ•œ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผ๊ฐ€๋Šฅํ•œ ์ •๋ณด๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„, ํฌ๊ธฐ, ๋‚ ์งœ ๋“ฑ์ด ์žˆ๊ณ , ์šด์˜์ฒด์ œ ๋‚ด๋ถ€์—์„œ ์ ‘๊ทผํ•˜๋Š” ์ •๋ณด๋Š” ํ•ด๋‹น ํŒŒ์ผ์˜ ์‹œ์ž‘ ๋ธ”๋ก ๋ฒˆํ˜ธ์™€ ๊ฐ™์€ ๊ฒƒ์ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์œ„ ์˜ˆ์ œ์˜ f1 ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ ์ •๋ณด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
file name: f1
file size: 5 bytes
...
-----------------
block number: 0

์—ฐ์† ํ• ๋‹น์€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์šด์˜์ฒด์ œ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์–ป์€ ์‹œ์ž‘ ๋ธ”๋ก ๋ฒˆํ˜ธ๋กœ ์›ํ•˜๋Š” ๋ธ”๋ก์— ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์œ„ ์˜ˆ์ œ์—์„œ f1 ํŒŒ์ผ์˜ 3๋ฒˆ์งธ ๋ธ”๋ก์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์šด์˜์ฒด์ œ๋Š” f1์˜ ์‹œ์ž‘ ๋ธ”๋ก ๋ฒˆํ˜ธ๊ฐ€ 0๋ฒˆ์ธ ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 2๋ฒˆ ๋ธ”๋ก์— ์ ‘๊ทผํ•˜๋ฉด f1์˜ 3๋ฒˆ์งธ ๋ธ”๋ก์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

2.1.2 ์—ฐ์†ํ• ๋‹น์˜ ๋‹จ์ 

์—ฐ์† ํ• ๋‹น์€ ํ˜„์žฌ์—๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์ธ๋ฐ, ์ด ๋ฐฉ๋ฒ•์—๋Š” ํฐ ๋‹จ์ ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
    • ํŒŒ์ผ์„ ํ• ๋‹นํ•˜๊ณ  ์ง€์šฐ๊ณ ๋ฅผ ๋ฐ˜๋ณตํ•˜๋‹ค๋ณด๋ฉด ์ค‘๊ฐ„ ์ค‘๊ฐ„์— ๋นˆ ๊ณต๊ฐ„(hole)์ด ์ƒ๊ธฐ๋Š”๋ฐ ์—ฐ์† ํ• ๋‹น์€ ์—ฐ์†๋œ ๊ณต๊ฐ„์„ ์ฐพ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์—์„œ ์‚ดํŽด๋ณธ ๊ฒƒ๊ณผ ๊ฐ™์ด ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
    • ์™ธ๋ถ€ ๋‹จํŽธํ™”๋กœ ์ธํ•ด ๋””์Šคํฌ ๊ณต๊ฐ„์˜ ๋‚ญ๋น„๊ฐ€ ๋งค์šฐ ์‹ฌํ•ด์ง„๋‹ค. ์ด์ „ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์—์„œ ์™ธ๋ถ€ ๋‹จํŽธํ™”๋กœ ์ธํ•ด ๋ฉ”๋ชจ๋ฆฌ์˜ ์•ฝ 1/3์„ ๋‚ญ๋น„ํ•œ๋‹ค๊ณ  ํ•˜์˜€๋Š”๋ฐ, ๋””์Šคํฌ์˜ ์—ฐ์† ํ• ๋‹น๋„ ๊ฐ™์€ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
  • ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ ์‹ค์ œ ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์—†๋‹ค.
    • ํŠนํžˆ, ๊ณ„์†ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ํฌ๊ธฐ๊ฐ€ ๊ณ„์† ์ฆ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ง€์†ํ•ด์„œ ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹นํ•˜๊ธฐ์—๋Š” ๋งค์šฐ ๋ถ€์ ์ ˆํ•˜๋‹ค.

2.2 ์—ฐ๊ฒฐ ํ• ๋‹น (Linked Allocation)

์—ฐ๊ฒฐ ํ• ๋‹น์€ ์—ฐ์† ํ• ๋‹น์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๋ฐฉ๋ฒ•์œผ๋กœ, ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ(linked list) ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํŒŒ์ผ์„ ํ• ๋‹นํ•œ๋‹ค

์œ„ ๊ทธ๋ฆผ์€ block ํฌ๊ธฐ๊ฐ€ 1 byte, ํŒŒ์ผ f1์˜ ํฌ๊ธฐ๊ฐ€ 5 bytes ์ผ ๋•Œ ์—ฐ๊ฒฐ ํ• ๋‹น์„ ์ˆ˜ํ–‰ํ•œ ๋ชจ์Šต์ด๋‹ค. ๊ฐ ๋ธ”๋ก์˜ ๋งˆ์ง€๋ง‰์— **์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ํฌ์ธํ„ฐ ๊ณต๊ฐ„(4bytes)**์ด ์กด์žฌํ•˜๋ฉฐ, ์—ฌ๊ธฐ์„œ ๋‹ค์Œ ๋ธ”๋ก์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋ธ”๋ก์˜ ํฌ์ธํ„ฐ ๊ณต๊ฐ„์—๋Š” ๋์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ linked list of data blocks ๋ผ๊ณ  ํ•˜๋ฉฐ, f1์˜ ํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ ์ •๋ณด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

file name: f1
file size: 5 bytes
...
-----------------
block number: 6

2.2.1 ์—ฐ๊ฒฐํ• ๋‹น์˜ ์žฅ์ 

  • ์œ„์น˜์™€ ์ƒ๊ด€์—†์ด ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. (= ๋””์Šคํฌ ๋‚ญ๋น„๊ฐ€ ์—†๋‹ค.)
    • ์—ฐ๊ฒฐ ํ• ๋‹น์„ ์‚ฌ์šฉํ•ด์„œ ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ํ• ๋‹นํ•  ๋•Œ๋Š” ๋น„์–ด์žˆ๋Š” ์ž„์˜์˜ ๋ธ”๋ก์„ ์ฒซ ๋ธ”๋ก์œผ๋กœ ์„ ํƒํ•˜๋ฉฐ, ๋งŒ์•ฝ ํŒŒ์ผ์ด ์ปค์ง€๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋ธ”๋ก์„ ํ• ๋‹นํ•ด์„œ ๊ธฐ์กด์˜ ๋ธ”๋ก๊ณผ ์—ฐ๊ฒฐ๋งŒ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

2.2.2 ์—ฐ๊ฒฐํ• ๋‹น์˜ ๋‹จ์ 

ํ•˜์ง€๋งŒ, ์—ฐ๊ฒฐ ํ• ๋‹น ์—ญ์‹œ ์—ฌ๋Ÿฌ ๋ฌธ์ œ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • ์ˆœ์ฐจ ์ ‘๊ทผ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ง์ ‘ ์ ‘๊ทผ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ํŒŒ์ผ์˜ ๋ธ”๋ก๋“ค์€ ๋ชจ๋‘ ํฉ์–ด์ ธ ์žˆ์œผ๋ฏ€๋กœ ์‹œ์ž‘ ๋ธ”๋ก ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ ๋Š” ์›ํ•˜๋Š” ์œ„์น˜์˜ ๋ธ”๋ก์— ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜๋Š” ์—†๋‹ค.
  • ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” 4 bytes ์ด์ƒ์˜ ์†ํ•ด๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
  • ๋‚ฎ์€ ์‹ ๋ขฐ์„ฑ
    • ์ค‘๊ฐ„ ๋ธ”๋ก์˜ ํฌ์ธํ„ฐ๊ฐ€ ๋Š์–ด์ง€๋ฉด ๊ทธ ์ดํ›„์˜ ๋ชจ๋“  ๋ธ”๋ก์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•œ๋‹ค.
  • ๋Š๋ฆฐ ์†๋„
    • ๋ธ”๋ก์ด ๋ชจ๋‘ ํฉ์–ด์ ธ ์žˆ์œผ๋ฏ€๋กœ ๋””์Šคํฌ ํ—ค๋”์˜ ์›€์ง์ž„์ด ๊ทธ ๋งŒํผ ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค.

2.2.3 FAT(File Allocation Table) ์‹œ์Šคํ…œ

์œ„ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ฒƒ์ด ๊ฐ™์€ ์—ฐ๊ฒฐ ํ• ๋‹น ๋ฐฉ์‹์ธ FAT(File Allocation Table) ์‹œ์Šคํ…œ์ด๋‹ค. FAT ์‹œ์Šคํ…œ์€ ๋‹ค์Œ ๋ธ”๋ก์œผ๋ฅด ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋“ค๋งŒ ๋ชจ์•„์„œ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”(FAT)์„ ๋งŒ๋“ค์–ด ํ•œ ๋ธ”๋ก์— ์ €์žฅํ•œ๋‹ค.

์œ„ ๊ทธ๋ฆผ์€ ์•ž์„  ์˜ˆ์ œ์˜ f1 ํŒŒ์ผ์„ FAT ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐฉ์‹์œผ๋กœ ์ €์žฅํ•œ ๋ชจ์Šต์ด๋‹ค. 0๋ฒˆ ๋ธ”๋ก์— ์ €์žฅ๋œ FAT๋ฅผ ๋ณด๋ฉด ํ…Œ์ด๋ธ”์˜ ์ธ๋ฑ์Šค๋Š” ์ „์ฒด ๋””์Šคํฌ์˜ ๋ธ”๋ก ๋ฒˆํ˜ธ์ด๋ฉฐ, ๊ฐ ์ธ๋ฑ์Šค๋งˆ๋‹ค ๋‹ค์Œ ๋ธ”๋ก ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค.

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

FAT์˜ ๊ฐ ์ธ๋ฑ์Šค ํฌ๊ธฐ๋Š” ์ „์ฒด ๋ธ”๋ก์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•  ๋งŒํผ์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ, ํ˜„์žฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 32bit ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉ()ํ•œ๋‹ค. ์ด๋ฅผ FAT32๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.(์ด์ „์—๋Š” FAT16, FAT12 ๋“ฑ์ด ์žˆ์—ˆ๋‹ค.)

2.3 ์ƒ‰์ธ ํ• ๋‹น (Indexed Allocation)

์ƒ‰์ธ ํ• ๋‹น ์—ญ์‹œ ์—ฐ๊ฒฐ ํ• ๋‹น๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋žœ๋คํ•œ ๋ธ”๋ก ๋ฒˆํ˜ธ์— ํ• ๋‹นํ•˜์ง€๋งŒ ํ• ๋‹น๋œ ๋ธ”๋ก ๋ฒˆํ˜ธ(ํฌ์ธํ„ฐ)๋ฅผ ํ•˜๋‚˜์˜ ๋ธ”๋ก์— ๋”ฐ๋กœ ์ €์žฅํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ธ”๋ก์„ ์ธ๋ฑ์Šค ๋ธ”๋ก์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ํŒŒ์ผ ๋‹น ํ•˜๋‚˜์˜ ์ธ๋ฑ์Šค ๋ธ”๋ก์ด ์กด์žฌํ•œ๋‹ค. ์ƒ‰์ธ ํ• ๋‹น์€ ๋””๋ ‰ํ† ๋ฆฌ ์ •๋ณด๊ฐ€ ๋‹ค๋ฅธ ํ• ๋‹น๊ณผ ๋‹ค๋ฅธ๋ฐ, ์‹œ์ž‘ ๋ธ”๋ก ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ธ๋ฑ์Šค ๋ธ”๋ก ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•œ๋‹ค.

2.3.1 ์˜ˆ์ œ

|block size|f1|f2| |:--------:|::|::| |1byte|5byte|2byte|

file name: f1
file size: 5 bytes
...
-----------------
index block number: 11
file name: f2
file size: 2 bytes
...
-----------------
index block number: 27

๊ทธ๋ฆผ์„ ๋ณด๋ฉด, ๋ธ”๋ก ํ•˜๋‚˜๋ฅผ ์ง€์ •ํ•˜์—ฌ, ํŒŒ์ผ์˜ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ์ธ๋ฑ์Šค ๋ธ”๋ก์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

์ƒ‰์ธ ํ• ๋‹น์€ ์ธ๋ฑ์Šค ๋ธ”๋ก์— ํ• ๋‹น๋œ ๋ธ”๋ก์„ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹นํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ ๋˜ํ•œ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ƒ‰์ธ ํ• ๋‹น์€ Unix/Linux์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

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

์˜ˆ๋ฅผ ๋“ค์–ด, ํ•˜๋‚˜์˜ ๋ธ”๋ก ํฌ๊ธฐ๊ฐ€ 512 bytes์ธ ๋ธ”๋ก์€ ์ตœ๋Œ€ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ก์˜ ์ธ๋ฑ์Šค ๊ฐœ์ˆ˜๊ฐ€ 512 / 4 bytes(ํฌ์ธํ„ฐ ํฌ๊ธฐ) = 128๊ฐœ์ด๋‹ค. ์ฆ‰ ํŒŒ์ผ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋Š”,

128(์ธ๋ฑ์Šค ๋ธ”๋ก์—์„œ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ก์˜ ํฌ์ธํ„ฐ ๊ฐœ์ˆ˜์˜ ์ตœ๋Œ€๊ฐ’) x 512bytes(๋ธ”๋ก ํ•˜๋‚˜์˜ ํฌ๊ธฐ) = 64KB

๋กœ ์•„์ฃผ ์ž‘์€ ํฌ๊ธฐ์ด๋‹ค. ๋ธ”๋ก ํฌ๊ธฐ๊ฐ€ 1KB์ด๋ผ ํ•˜๋”๋ผ๋„ ์ตœ๋Œ€ ์ธ๋ฑ์Šค ๊ฐœ์ˆ˜๋Š” 256๊ฐœ(1000/4)์ด๊ณ  ์ตœ๋Œ€ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋Š” 256KB์ด๋‹ค.

2.3.2 ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

2.3.2.1 Linked

์ด ๋ฐฉ์‹์€ ์ธ๋ฑ์Šค ๋ธ”๋ก์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค์–ด ์—ฐ๊ฒฐ ํ• ๋‹น์„ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ์ฆ‰, ๊ฐ ์ธ๋ฑ์Šค ๋ธ”๋ก์˜ ๋งˆ์ง€๋ง‰์€ ๋‹ค์Œ ์ธ๋ฑ์Šค ๋ธ”๋ก์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

2.3.2.2 Multilevel index

์ด ๋ฐฉ์‹์€ ๊ณ„์ธต์„ ๋‘๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜๋‚˜์˜ ์ธ๋ฑ์Šค ๋ธ”๋ก์˜ ๋ชจ๋“  ํฌ์ธํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ์ธ๋ฑ์Šค ๋ธ”๋ก์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ๋งŒ์•ฝ ์ด๊ฒƒ์œผ๋กœ ๋ถ€์กฑํ•˜๋ฉด ๊ณ„์ธต์„ ๋” ๋งŒ๋“ค์–ด ๊ฐ„๋‹ค.

2.3.2.3 Combined

์ด ๋ฐฉ์‹์€ Linked์™€ Multilevel index๋ฅผ ํ•ฉ์นœ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•œ ์ธ๋ฑ์Šค ๋ธ”๋ก์˜ ํฌ์ธํ„ฐ๋“ค์€ ๋ฐ์ดํ„ฐ ๋ธ”๋ก๊ณผ ๋˜ ๋‹ค๋ฅธ ์ธ๋ฑ์Šค ๋ธ”๋ก ๋‘˜ ๋‹ค ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.(๋ฆฌ๋ˆ…์Šค๋Š” combined ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.)

Reference

KOCW ์–‘ํฌ์žฌ ๊ต์ˆ˜๋‹˜ - ์šด์˜์ฒด์ œ ์–‘ํฌ์žฌ ๊ต์ˆ˜๋‹˜ ๋ธ”๋กœ๊ทธ(์‹œํ—˜ ๊ธฐ์ถœ ๋ฌธ์ œ)
codemcd ๋‹˜์˜ ์ •๋ฆฌ๊ธ€
์„ธ๋งˆํฌ ์‚ฌ์ง„
Operating System Concepts, 9th Edition - Abraham Silberschatz