[CS] ํŒŒ์ผ ์‹œ์Šคํ…œ(File System)

๐Ÿ’พ ํŒŒ์ผ๊ณผ ํŒŒ์ผ์‹œ์Šคํ…œ

๐Ÿ“‚ ๊ฐœ์š”

1๏ธโƒฃ ์šด์˜์ฒด์ œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ํŒŒ์ผ์„ ๋ณด๊ด€ํ•˜๊ฑฐ๋‚˜ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด, ๋Œ€์‹  ํŒŒ์ผ์„ ๋ณด๊ด€ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ํŒŒ์ผ ๊ด€๋ฆฌ์ž๋ฅผ ๋‘์–ด ์ €์žฅ ์žฅ์น˜์˜ ์ „์ฒด ๊ด€๋ฆฌ๋ฅผ ๋งก๊ธฐ๋Š”๋ฐ, ์ด๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ํ•จ

2๏ธโƒฃ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ €์žฅ ์žฅ์น˜์—์„œ๋Š” ํŒŒ์ผ ๊ด€๋ฆฌ์ž๊ฐ€ ํŒŒ์ผ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ๊ด€๋ฆฌ ํ•จ

  • ์œˆ๋„์šฐ์˜ ๊ฒฝ์šฐ FAT(File Allocation Table), ์œ ๋‹‰์Šค์˜ ๊ฒฝ์šฐ I-node์™€ ๊ฐ™์€ ํŒŒ์ผ ํ• ๋‹น ํ…Œ์ด๋ธ”์„ ์œ ์ง€

3๏ธโƒฃ ๋ฐ์ดํ„ฐ๋Š” ์šด์˜์ฒด์ œ์™€ ์ €์žฅ ์žฅ์น˜ ๊ฐ„์— ๋ธ”๋ก ๋‹จ์œ„๋กœ ์ „์†ก๋จ. ๋ธ”๋ก์€ ์ €์žฅ ์žฅ์น˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„๋กœ, ํ•œ ๋ธ”๋ก์— ์ฃผ์†Œ ํ•˜๋‚˜๊ฐ€ ํ• ๋‹น ๋จ.

  • ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ €์žฅ๋˜๊ณ , ํ•˜๋“œ ๋””์Šคํฌ์˜ ๋ฌผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ์ƒ ๊ฐ€์žฅ ์ž‘์€ ์ €์žฅ ๋‹จ์œ„๋Š” ์„นํ„ฐ

4๏ธโƒฃ ์„นํ„ฐ๋งˆ๋‹ค ์ฃผ์†Œ๋ฅผ ๋ถ€์—ฌํ•˜๋ฉด ๋„ˆ๋ฌด ๋งŽ์€ ์–‘์˜ ์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ๊ด€๋ฆฌ์ž๋Š” ์—ฌ๋Ÿฌ ์„นํ„ฐ๋ฅผ ๋ฌถ์–ด ํ•˜๋‚˜์˜ ๋ธ”๋ก์œผ๋กœ ๋งŒ๋“ค๊ณ , ๋ธ”๋ก ํ•˜๋‚˜์— ์ฃผ์†Œ ํ•˜๋‚˜๋ฅผ ๋ฐฐ์ •ํ•จ


๐Ÿ“‚ ํŒŒ์ผ ๋ถ„๋ฅ˜์™€ ํ™•์žฅ์ž

1๏ธโƒฃ ๋ชจ๋“  ํŒŒ์ผ์€ 0๊ณผ 1์˜ ๋น„ํŠธ ํŒจํ„ด์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์šด์˜์ฒด์ œ ์ž…์žฅ์—์„œ๋Š” ํฌ๊ฒŒ ์‹คํ–‰ ํŒŒ์ผ๊ณผ ๋ฐ์ดํ„ฐ ํŒŒ์ผ๋กœ ๋‚˜๋‰จ

  • ์‹คํ–‰ ํŒŒ์ผ : ์šด์˜์ฒด์ œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ฐ€์ ธ์™€ CPU๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž‘์—…์„ ํ•˜๋Š” ํŒŒ์ผ. ์ฆ‰, ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ ํŒŒ์ผ์„ ๋งํ•จ
  • ๋ฐ์ดํ„ฐ ํŒŒ์ผ : ์‹คํ–‰ ํŒŒ์ผ์ด ์ž‘์—…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„๋†“์€ ํŒŒ์ผ

2๏ธโƒฃ ์‹คํ–‰ ํŒŒ์ผ๊ณผ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์€ ๋‘˜ ๋‹ค ๋”๋ธ” ํด๋ฆญํ•˜๋ฉด ์‹คํ–‰๋กœ์ง ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์‹คํ–‰ ํŒŒ์ผ๋กœ ์ฐฉ๊ฐํ•˜๊ธฐ ์‰ฌ์›€. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ํ•„์š”๋กœ ํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์šด์˜์ฒด์ œ๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด์ง€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ์ž์ฒด๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์€ ์•„๋‹˜.

 


๐Ÿ“‚ ํŒŒ์ผ ๊ตฌ์กฐ

1๏ธโƒฃ ์ˆœ์ฐจ ํŒŒ์ผ ๊ตฌ์กฐ(Sequential File Structure)

: ์ผ๋ฐ˜ ํŒŒ์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆœ์ฐจ ํŒŒ์ผ ๊ตฌ์กฐ์ž„. ์ˆœ์ฐจ ํŒŒ์ผ ๊ตฌ์กฐ๋Š” ํŒŒ์ผ ๋‚ด์šฉ์ด ํ•˜๋‚˜์˜ ๊ธด ์ค„๋กœ ๋Š˜์–ด์„  ํ˜•ํƒœ๋กœ ์นด์„ธํŠธ ํ…Œ์ดํ”„๊ฐ€ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ

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

2๏ธโƒฃ ์ธ๋ฑ์Šค ํŒŒ์ผ ๊ตฌ์กฐ(Index File Structure)

  • ์ˆœ์ฐจํŒŒ์ผ ๊ตฌ์กฐ์— ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ˆœ์ฐจ ์ ‘๊ทผ๊ณผ ์ง์ ‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ
  • ํ˜„๋Œ€์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ธ๋ฑ์Šค ํŒŒ์ผ ๊ตฌ์กฐ๋กœ, ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ๋Š” ์ˆœ์ฐจ ํŒŒ์ผ ๊ตฌ์กฐ๋กœ ์ €์žฅํ•˜๊ณ , ํŒŒ์ผ์— ์ ‘๊ทผํ•  ๋•Œ๋Š” ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ”์„ ๋ณด๊ณ  ์›ํ•˜๋Š” ํŒŒ์ผ์— ์ ‘๊ทผํ•จ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ์˜ ๋น ๋ฅธ ์ ‘๊ทผ์ด ํ•„์š”ํ•œ ์‹œ์Šคํ…œ์— ์‚ฌ์šฉ๋จ

3๏ธโƒฃ ์ง์ ‘ ํŒŒ์ผ ๊ตฌ์กฐ(Direct File Structure)

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

 


๐Ÿ’พ ๋””๋ ‰ํ† ๋ฆฌ(Directory)

๐Ÿ“‚ ๊ฐœ์š”

๐Ÿ“Œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ํšจ์œจ์ ์ธ ํŒŒ์ผ ์‚ฌ์šฉ์„ ์œ„ํ•ด์„œ ๋””์Šคํฌ์— ์กด์žฌํ•˜๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” “ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํŒŒ์ผ”
 ๐Ÿ‘‰๐Ÿป Directory๋Š” ํ•˜์œ„ ํŒŒ์ผ๋“ค์˜ Metadata ์ผ๋ถ€๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ๋Š” ํŠน๋ณ„ํ•œ ํŒŒ์ผ
- ๊ฐ ํŒŒ์ผ์˜ {์ด๋ฆ„, ์œ„์น˜, ํฌ๊ธฐ, ํ• ๋‹น๋ฐฉ์‹, ํ˜•ํƒœ, ์†Œ์œ ์ž, ๊ณ„์ •์ •๋ณด, …}๋ฅผ ๋ณด์œ 
  • ๊ธฐ๋Šฅ
    • ํŒŒ์ผ์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก Efficiency๋ฅผ ์ œ๊ณต
    • ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์„ ๋•Œ ์ œ์•ฝ์กฐ๊ฑด์ด ์—†๋„๋ก ํ•ด์คŒ (Naming)
    • ์œ ์‚ฌํ•œ ํŒŒ์ผ๋“ค์„ Grouping ํ•ด์คŒ

 

๐Ÿ“‚ Single-Level Directory

  • ๋ชจ๋“  ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์œ„์น˜ํ•ด์„œ ๊ด€๋ฆฌ๋˜๋Š” ๊ตฌ์กฐ
    • ๋ชจ๋“  ํŒŒ์ผ์ด Uniqueํ•œ ์ด๋ฆ„์„ ๊ฐ€์ ธ์•ผ ํ•จ
    • ๋ชจ๋“  ํŒŒ์ผ์ด ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์—์„œ ์œ ์ง€๊ฐ€ ๋˜๋ฏ€๋กœ user๊ฐ€ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ
    • ํŒŒ์ผ์ด๋‚˜ user์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด ํŒŒ์ผ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง
  • Naming & Grouping ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ

๐Ÿ“‚ Two-Level Directory

  • ์ค‘์•™์— Master File Directory(MFD)๊ฐ€ ์กด์žฌํ•˜๊ณ , ๊ทธ ์•„๋ž˜์— ๊ฐ user๋ณ„๋กœ ์„œ๋กœ ๋‹ค๋ฅธ User File Directory(UFD)๊ฐ€ ์กด์žฌ
    • MFD
      • ๊ฐ user๋“ค์˜ ์ด๋ฆ„, ๊ณ„์ • ๋ฒˆํ˜ธ, UFD๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ๋ณด์œ 
      • ๊ฒฐ๋ก ์ ์œผ๋กœ UFD๋ฅผ ๊ด€๋ฆฌ
    • UFD
      • ์˜ค์ง ํ•˜๋‚˜์˜ user๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋งŒ ๊ฐ–๊ณ  ์žˆ์Œ :: ํ•ด๋‹น user์˜ ํŒŒ์ผ์„ ๊ด€๋ฆฌ
      • ํ•˜๋‚˜์˜ UFD์—๋Š” uniqudํ•œ ํŒŒ์ผ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด์•ผํ•˜์ง€๋งŒ, ์„œ๋กœ ๋‹ค๋ฅธ UFD๊ฐ„์—๋Š” ๋™์ผํ•œ ํŒŒ์ผ ์ด๋ฆ„์ด ์กด์žฌํ•ด๋„ ๋จ
  • ์ด ๋ฐฉ์‹์€ ๊ฐ user๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ user์˜ UFD๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฌด ํ˜‘๋ ฅ/ํŒŒ์ผ ๊ณต์œ ๊ฐ€ ์–ด๋ ค์›€.
  • ํŠน์ • ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ๋Š” “User Name + File Name”์„ ๊ฐ™์ด ์ง€์ •ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ์ด๋ฆ„์ด ๊ธธ์–ด์ง.

 

๐Ÿ“‚ Tree-Structured Directory

  • ํ•˜๋‚˜์˜ Root Directory ์•„๋ž˜๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Sub Directory๋กœ ๊ตฌ์„ฑ๋œ ๊ตฌ์กฐ
    • DOS/Window/UNIX ๋“ฑ์˜ OS์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ
    • ๊ฐ ๋””๋ ‰ํ† ๋ฆฌ๋Š” {์„œ๋น„ ๋””๋ ‰ํ† ๋ฆฌ or ํŒŒ์ผ}์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
    • ์„œ๋กœ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ๋™์ผํ•œ ์ด๋ฆ„์˜ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ
    • ๋””๋ ‰ํ† ๋ฆฌ {create/drop}์ด ํŽธ๋ฆฌํ•จ
    • ๋””๋ ‰ํ† ๋ฆฌ ํƒ์ƒ‰์—๋Š” Pointer๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ฒฝ๋กœ๋ช…์€ {Absolute/Relative}๋ฅผ ์‚ฌ์šฉํ•จ

 

๐Ÿ“‚ Acyclic-Graph Directory

  • Acyclic Directory๋Š” ํ•˜์œ„ ํŒŒ์ผ์ด๋‚˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ณต๋™์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ, Cycle์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š ๊ตฌ์กฐ์ž„
    • ๋””์Šคํฌ ๊ณต๊ฐ„ ์ ˆ์•ฝ ๊ฐ€๋Šฅ
    • ํ•˜๋‚˜์˜ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Path Name์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
    • ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜๊ณ , ๊ณต์œ ๋œ ํ•˜๋‚˜์˜ ํŒŒ์ผ์„ ํƒ์ƒ‰ํ•  ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ 2๋ฒˆ ์ด์ƒ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Œ
    • ๊ณต์œ ๋œ ํŒŒ์ผ์„ ์‚ญ์ œํ•  ๊ฒฝ์šฐ Dangling Pointer๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ
    • ** Dangling Pointer : Pointer์ž…์žฅ์—์„œ “๋‚˜๋Š” ์ด์ œ ์•„๋ฌด๊ฒƒ๋„ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š๋Š” ํฌ์ธํ„ฐ๊ฐ€ ๋˜์—ˆ๊ตฌ๋‚˜!”

 

๐Ÿ“‚ General Graph Directory

  • ํŠธ๋ฆฌ ๊ตฌ์กฐ์— Link๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ Cycle์„ ํ—ˆ์šฉํ•˜๋Š” ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ
    • ๋””๋ ‰ํ† ๋ฆฌ์™€ ํŒŒ์ผ ๊ณต์œ ์— ์™„์ „ํ•œ ์œตํ†ต์„ฑ์ด ์กด์žฌํ•จ
    • ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฐ„๋‹จํ•˜๊ณ , ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ๋ฅผ accessํ•˜๊ธฐ ์‰ฌ์›€
    • ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๋˜์ฐพ๊ธฐ ์œ„ํ•ด Garbage Collector๊ฐ€ ํ•„์š”ํ•จ
    • ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•ด์„œ ์‚ฌ์šฉ ๊ณต๊ฐ„์„ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ Reference Counter๊ฐ€ ํ•„์š”ํ•จ

 


๐Ÿ’พ ๋””์Šคํฌ ํŒŒ์ผ ํ• ๋‹น

๐Ÿ“‚ ์—ฐ์† ํ• ๋‹น๊ณผ ๋ถˆ์—ฐ์† ํ• ๋‹น

1๏ธโƒฃ ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ๊ณผ ์œ ์‚ฌํ•จ.

 ์ „์ฒด ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๊ฐ™์€ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ ๊ณต๊ฐ„์— ์ฃผ์†Œ๋ฅผ ๋ถ™์—ฌ์„œ ๊ด€๋ฆฌํ•จ.

 ์ด ๋•Œ, ๊ฐ™์€ ํฌ๊ธฐ๋กœ ๋‚˜๋‰œ ๊ณต๊ฐ„ ํ•˜๋‚˜๋ฅผ ๋ธ”๋ก์ด๋ผํ•˜๋ฉฐ, ํ•œ ๋ธ”๋ก์˜ ํฌ๊ธฐ๋Š” 1~8KB์ž„

2๏ธโƒฃ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋‚˜์˜ ํŒŒ์ผ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ธ”๋ก์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ธ”๋ก์„ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ์—ฐ์† ํ• ๋‹น๊ณผ ๋ถˆ์—ฐ์† ํ• ๋‹น ๋ฐฉ์‹์œผ๋กœ ๊ตฌ๋ถ„๋จ

3๏ธโƒฃ ์—ฐ์† ํ• ๋‹น : ์—ฐ์† ํ• ๋‹น์€ ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์ƒ์— ์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์—ดํ•˜๋Š” ๋ฐฉ์‹. ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋‹ค ๋ณด๋ฉด ๋นˆ ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๋Š”๋ฐ, ๋””์Šคํฌ์— ๋‚จ์€ ๊ณต๊ฐ„ ์ค‘ ํŒŒ์ผ์˜ ํฌ๊ธฐ์™€ ๋งž๋Š” ์—ฐ์†๋œ ๊ณต๊ฐ„์ด ์—†์„ ๋•Œ๋Š” ์—ฐ์† ํ• ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ

4๏ธโƒฃ ๋ถˆ์—ฐ์† ํ• ๋‹น : ๋ถˆ์—ฐ์† ํ• ๋‹น์€ ๋น„์–ด ์žˆ๋Š” ๋ธ”๋ก์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹ (Ex. ์—ฐ๊ฒฐํ• ๋‹น, ์ธ๋ฑ์Šค ํ• ๋‹น๋ฐฉ์‹)

 

๐Ÿ“‚ ์—ฐ๊ฒฐ ํ• ๋‹น(Linked Allocation)

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

 

๐Ÿ“‚ ์ธ๋ฑ์Šค ํ• ๋‹น(Index Allocation)

  • ์ธ๋ฑ์Šค ํ• ๋‹น ๋ฐฉ์‹์—์„œ๋Š” ํ…Œ์ด๋ธ”์˜ ๋ธ”๋ก ํฌ์ธํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ฐ์ดํ„ฐ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์ธ๋ฑ์Šค ๋ธ”๋ก์„ ์—ฐ๊ฒฐํ•จ
  • ์ธ๋ฑ์Šค ๋ธ”๋ก์€ ์‹ค์ œ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ์Œ

 

๐Ÿ“‚ ๋””์Šคํฌ ๋นˆ ๊ณต๊ฐ„ ๊ด€๋ฆฌ


1๏ธโƒฃ ๋ธ”๋ก ํ•˜๋‚˜์˜ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ์žก์œผ๋ฉด
 → ์ ์€ ์ฃผ์†Œ๋กœ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚ญ๋น„๋˜๋Š” ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๊ณ ,
     ๋ธ”๋ก ํ•˜๋‚˜์˜ ํฌ๊ธฐ๋ฅผ ์ž‘๊ฒŒ ์žก์œผ๋ฉด
 → ๋งŽ์€ ์–‘์˜ ๋ธ”๋ก ํฌ์ธํ„ฐ๊ฐ€ ํ•„์š”ํ•จ

2๏ธโƒฃ ๋‹จํŽธํ™”์— ์˜ํ•ด ๋ฐœ์ƒ๋œ ๋ธ”๋ก์˜ ๋นˆ๊ณต๊ฐ„์„, ๋””์Šคํฌ์— ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ๋งˆ๋‹ค ๋ชจ๋“  ํ…Œ์ด๋ธ”์„ ๋‹ค ๋’ค์ ธ์„œ ์ฐพ๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ž„

3๏ธโƒฃ ๋‚ด๋ถ€ ๋‹จํŽธํ™”๋ฅผ ์ค„์ด๊ณ  ๋นˆ ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ๋นˆ ๋ธ”๋ก์˜ ์ •๋ณด๋งŒ ๋ชจ์•„๋†“์€ ๋นˆ ๊ณต๊ฐ„ ๋ฆฌ์ŠคํŠธ(Free Block List)๋ฅผ ์œ ์ง€ํ•จ

4๏ธโƒฃ ๋ธ”๋ก์˜ ๋‚ด์šฉ์„ ์ง€์šฐ์ง€ ์•Š๊ณ , ๋นˆ ๊ณต๊ฐ„ ๋ฆฌ์ŠคํŠธ์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์€ ํ•ด๋‹น ๋ธ”๋ก์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด์“ฐ์ง€ ์•Š๋Š” ํ•œ ์›๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ์ง€๋ฅผ ๋‚จ๊น€

 


์ฐธ๊ณ  ์ž๋ฃŒ

[CS Study : OS] ํŒŒ์ผ ์‹œ์Šคํ…œ

[OS] 9. ํŒŒ์ผ ์‹œ์Šคํ…œ