• Mindscape ๐Ÿ”ฅ
    • Playlist ๐ŸŽง
    • Vim ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
  • ๐Ÿง  Algorithm

    • Python ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํŒ
    • 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ
    • 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
  • ๐Ÿ’ฐ Finance

    • ๋น„ํŠธ์ฝ”์ธ(Bitcoin)
  • ๐Ÿ›๏ธ Humanities

    • Nordvik, Russia
    • North Sentinel Island
    • ๋กฑ๊ณ ๋กฑ๊ณ (Rongorongo)
  • ๐Ÿ‹๏ธ Wellness

    • ๐Ÿซ’ ์—‘์ŠคํŠธ๋ผ ๋ฒ„์ง„ ์˜ฌ๋ฆฌ๋ธŒ์œ  (Extra Virgin Olive Oil)
    • ์ฐจ์ „์žํ”ผ(Psyllium Husk)
  • ๐Ÿ–ฅ๏ธ Computer Graphics

    • 8 - Lighting
    • 9 - Orientation & Rotation
    • 10 - Character Animation
    • 11 - Curves
    • 12 - More Lighting, Texture
  • ๐Ÿ—‚๏ธ Operating System

    • 7. Deadlocks
    • 8. Memory Management(1)
    • 9. Memory Management(2)
    • 10. Virtual Memory(1)
    • 11. Virtual Memory(2)
    • 12. File System
    • 13. Mass Storage Management
    • 14. I/O Systems
  • ๐Ÿ”ฃ Programming Language Theory

    • 13. FPL(1)

12. File System

File Concept

  • ๋ฐ์ดํ„ฐ์™€ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•œ "์ปจํ…Œ์ด๋„ˆ"

  • ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” ์—ฐ์†์ ์ธ ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„

  • ์ข…๋ฅ˜:

    • Data
      • Numeric
      • Character
      • Binary
    • Program

File Structure

  • ๊ตฌ์กฐ ์—†์Œ: ๋‹จ์–ด ๋˜๋Š” ๋ฐ”์ดํŠธ์˜ ๋‹จ์ˆœ ์‹œํ€€์Šค

  • ๊ฐ„๋‹จํ•œ ๋ ˆ์ฝ”๋“œ ๊ตฌ์กฐ:

    • ์ค„ ๋‹จ์œ„ (Lines)
    • ๊ณ ์ • ๊ธธ์ด
    • ๊ฐ€๋ณ€ ๊ธธ์ด
  • ๋ณต์žกํ•œ ๊ตฌ์กฐ:

    • ์„œ์‹ ๋ฌธ์„œ (Formatted document)
    • ์žฌ๋ฐฐ์น˜ ๊ฐ€๋Šฅํ•œ ๋กœ๋“œ ํŒŒ์ผ (Relocatable load file)
  • ๊ฒฐ์ • ์ฃผ์ฒด:

    • ์šด์˜์ฒด์ œ (Operating system)
    • ํ”„๋กœ๊ทธ๋žจ (Program)

File Attributes (File Metadata)

  • Name โ€“ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์ •๋ณด

  • Type โ€“ ์‹œ์Šคํ…œ์ด ๋‹ค์–‘ํ•œ ํŒŒ์ผ ์œ ํ˜•์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”

  • Location โ€“ ๋””๋ฐ”์ด์Šค ๋‚ด ํŒŒ์ผ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ

  • Size โ€“ ํ˜„์žฌ ํŒŒ์ผ ํฌ๊ธฐ

  • Protection โ€“ ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์‹คํ–‰ ๊ถŒํ•œ ์ œ์–ด

  • Time, date, and user identification โ€“ ๋ณดํ˜ธ, ๋ณด์•ˆ, ์‚ฌ์šฉ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ์ •๋ณด

  • ํŒŒ์ผ ๊ด€๋ จ ์ •๋ณด๋Š” ๋””๋ ‰ํ† ๋ฆฌ(ํด๋”) ๊ตฌ์กฐ์— ์ €์žฅ๋˜๋ฉฐ, ์ด๋Š” ๋””์Šคํฌ ์ƒ์— ์œ ์ง€๋จ

File Operations

  • create
  • write
  • read
  • repositioning within file โ€“ file seek
  • delete
  • truncate
  • open(F_i) โ€“ ๋””์Šคํฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ํŒŒ์ผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌ
    (๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ˆ˜ํ–‰๋จ)
  • close(F_i)

Directories

  • ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋‘ ๊ฐ€์ง€ ๋ชฉ์ ์„ ๊ฐ€์ง:

    • ์‚ฌ์šฉ์ž ์ธก๋ฉด: ๊ด€๋ จ ํŒŒ์ผ๋“ค์„ ๊ตฌ์กฐํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ์กฐ์ง
    • ์‹œ์Šคํ…œ ์ธก๋ฉด: ํŒŒ์ผ ์ด๋ฆ„์„ ํ†ตํ•œ ์ ‘๊ทผ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต
      โ†’ ํŒŒ์ผ์ด ์ €์žฅ๋œ ์œ„์น˜์˜ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Œ
  • ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ์€ ๋‹ค๋‹จ๊ณ„ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ง€์›
    โ†’ ํŒŒ์ผ ์ด๋ฆ„์€ ๋ฃจํŠธ๋ถ€ํ„ฐ ํ•ด๋‹น ํŒŒ์ผ๊นŒ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•จ

  • ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ์€ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ(current directory)๋ฅผ ๊ฐ€์ง
    โ†’ ์ด๋ฆ„์€ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ์ง€์ • ๊ฐ€๋Šฅํ•˜๋ฉฐ,
    ๋ฃจํŠธ๋ถ€ํ„ฐ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๊ตฌ๋ถ„๋จ

A Directory Entry

  • ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ์  ์ •๋ณด๋ฅผ ์„ค๋ช…ํ•จ:

    • ํŒŒ์ผ ์ด๋ฆ„, ํฌ๊ธฐ, ์œ ํ˜•, ์œ„์น˜, ๋ณดํ˜ธ ์ •๋ณด, ๋งˆ์ง€๋ง‰ ์ ‘๊ทผ ์‹œ๊ฐ„ ๋“ฑ
  • ์ด ์ •๋ณด๋Š” ๋””์Šคํฌ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์— ์ €์žฅ๋จ

    • โ†’ ๋”ฐ๋ผ์„œ ์ผ๋ถ€ ์ œํ•œ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ
  • ์šด์˜์ฒด์ œ๋Š” ์ตœ๊ทผ ์ ‘๊ทผํ•œ ํŒŒ์ผ๋“ค์˜ ๋””๋ ‰ํ† ๋ฆฌ ํ•ญ๋ชฉ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์บ์‹œํ•จ

    • ์บ์‹œ๊ฐ€ ๋””์Šคํฌ์˜ ์›๋ณธ ๋ฐ์ดํ„ฐ์™€ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€๋˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•จ
    • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํŒŒ์ผ์„ ์žƒ์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ์Œ

Directory Structure

  • ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋…ธ๋“œ๋“ค์˜ ๋ชจ์Œ

  • ๋””๋ ‰ํ† ๋ฆฌ์™€ ํŒŒ์ผ์€ ๋ชจ๋‘ ๋””์Šคํฌ์— ์ €์žฅ๋จ

Directory Structure (UNIX)

  • ๋””๋ ‰ํ† ๋ฆฌ ํ•ญ๋ชฉ(directory entry)์€ ํŒŒ์ผ ์ด๋ฆ„๊ณผ inode ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง
    (์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ํ•ญ๋ชฉ๋„ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ)

  • inode๋Š” ํŒŒ์ผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๊ณ ,
    ๋ฐ์ดํ„ฐ ๋ธ”๋ก์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋„ ํฌํ•จํ•จ

Directory Implementation

  • ์„ ํ˜• ๋ฆฌ์ŠคํŠธ ๋ฐฉ์‹ (Linear list)

    • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ํŒŒ์ผ ์ด๋ฆ„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์œ ์ง€
    • ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๋‚˜, ๊ฒ€์ƒ‰ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ
  • ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋ฐฉ์‹

    • ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์— ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์ถ”๊ฐ€
    • ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ํŒŒ์ผ ์ด๋ฆ„์„ ํฌ์ธํ„ฐ๋กœ ๋ณ€ํ™˜
    • ๋””๋ ‰ํ† ๋ฆฌ ๊ฒ€์ƒ‰ ์‹œ๊ฐ„ ๋‹จ์ถ•
    • ์ถฉ๋Œ(collisions) ๋ฐœ์ƒ ๊ฐ€๋Šฅ:
      โ†’ ์„œ๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ ์ด๋ฆ„์ด ๊ฐ™์€ ์œ„์น˜๋กœ ํ•ด์‹œ๋จ

Operations Performed on Directory

  • ํŒŒ์ผ ๊ฒ€์ƒ‰ (Search for a file)
  • ํŒŒ์ผ ์ƒ์„ฑ (Create a file)
  • ํŒŒ์ผ ์‚ญ์ œ (Delete a file)
  • ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก ๋ณด๊ธฐ (List a directory)
  • ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ (Rename a file)
  • ํŒŒ์ผ ์‹œ์Šคํ…œ ํƒ์ƒ‰ (Traverse the file system)

Single-Level Directory

  • ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•˜๋‚˜์˜ ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ์กด์žฌ

  • ๋ฌธ์ œ์ :

    • ์ด๋ฆ„ ์ถฉ๋Œ ๋ฌธ์ œ
      • ์ค‘๋ณต ์ด๋ฆ„ ๋ฐฉ์ง€ ํ•„์š”
      • UNIX๋Š” ํŒŒ์ผ ์ด๋ฆ„์— ์ตœ๋Œ€ 255์ž ํ—ˆ์šฉ
    • ๊ทธ๋ฃนํ™” ๋ฌธ์ œ

Two-Level Directory

  • ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋ณ„๋„์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ€์ง

  • "Pathname" ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  • ์‚ฌ์šฉ์ž ๊ฐ„ ์ด๋ฆ„ ์ถฉ๋Œ ์—†์Œ

  • ๊ทธ๋ฃนํ™” ๊ธฐ๋Šฅ ์—†์Œ

Tree-Structured Directories

  • ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ(subdirectory) ํ—ˆ์šฉ

  • ๊ทธ๋ฃนํ™”(grouping) ๊ฐ€๋Šฅ

  • ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ (home directory)

  • ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ (current working directory)

  • ์ ˆ๋Œ€ ๊ฒฝ๋กœ, ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

    • ์˜ˆ: cd /skyang/ch1
  • ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ (command interpreter)

    • ์‹ค์ œ ๊ฒ€์ƒ‰ ์ˆœ์„œ: ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ โ†’ ์‹ค์ œ ๊ฒ€์ƒ‰

Acyclic-Graph Directories

  • ๊ฐ™์€ ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋‘ ๋””๋ ‰ํ† ๋ฆฌ์— ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ

  • ์ˆœํ™˜์ด ์—†๋Š” ๊ตฌ์กฐ๋งŒ ํ—ˆ์šฉ๋จ (acyclic)

  • ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ๊ณต์œ  ๊ฐ€๋Šฅ

Acyclic-Graph Directories (Cont.)

  • ๋™์ผํ•œ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋‚˜ ํŒŒ์ผ์ด ๋‘˜ ์ด์ƒ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ

    • ๋ฌธ์ œ:
      1. ์ˆœํšŒ ์‹œ ๋™์ผ ๋…ธ๋“œ ์žฌ๋ฐฉ๋ฌธ (traverse ๋ฌธ์ œ)
      2. ์‚ญ์ œ ์‹œ ๋ฌธ์ œ ๋ฐœ์ƒ
  • ์‹œ๋‚˜๋ฆฌ์˜ค:

    • Kang์ด X ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ€์ง
    • Jung๋„ X๋ฅผ ์ž์‹ ์˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ํ•„์š”๋กœ ํ•จ
    • UNIX๋Š” link๋ฅผ ์ƒ์„ฑํ•ด Jung์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ์—ฐ๊ฒฐ
  • Link type 1: Symbolic link

    • ๊ฒฝ๋กœ ์ด๋ฆ„(pathname)๋งŒ ๊ฐ€๋ฆฌํ‚ด
    • X๊ฐ€ Kang์—์„œ ์‚ญ์ œ๋˜๋ฉด Jung์˜ ๋งํฌ๋Š” dangling reference๊ฐ€ ๋จ
  • Link type 2: Hard link

    • Kang์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ Jung ์ชฝ์— ๋ณต์‚ฌ
    • X ์—…๋ฐ์ดํŠธ ์‹œ ์ผ๊ด€์„ฑ ๋ฌธ์ œ ๋ฐœ์ƒ
    • ์‚ญ์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ: reference count ์œ ์ง€
      • reference count๊ฐ€ 0์ด ๋˜๋ฉด ์‚ญ์ œ

General Graph Directory

  • ์ˆœํ™˜ ํ—ˆ์šฉ๋จ (cycles permitted)

  • ์ˆœํšŒ(traverse), ์‚ญ์ œ(delete) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์žก

  • ์ˆœํšŒ ๋ฌธ์ œ:

    • cycle ๋‚ด์—์„œ ๋ฌดํ•œ ๋ฃจํ”„ ๋ฐœ์ƒ ๊ฐ€๋Šฅ
  • ์‚ญ์ œ ๋ฌธ์ œ:

    • Kang์ด X๋ฅผ ์‚ญ์ œํ•ด๋„ reference count๊ฐ€ 0์ด ์•„๋‹ ์ˆ˜ ์žˆ์Œ (self-reference ๋˜๋Š” cycle ๋•Œ๋ฌธ)
    • โ†’ X๋Š” ํ•ด์ œ๋˜์ง€ ์•Š์Œ
  • Garbage collection ํ•„์š”

    • ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ์‚ญ์ œ
    • ์‹œ๊ฐ„ ์†Œ๋ชจ ํผ

General Graph Directory (Cont.)

  • ์ˆœํ™˜์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด?
    • ๋ฃจํŠธ๋งŒ ๋งํฌ ํ—ˆ์šฉ (์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๊ธˆ์ง€)
    • ๋งํฌ ์ƒ์„ฑ ์‹œ๋งˆ๋‹ค cycle ํƒ์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ํ—ˆ์šฉ ์—ฌ๋ถ€ ํŒ๋‹จ

Protection

  • ํŒŒ์ผ ์†Œ์œ ์ž/์ƒ์„ฑ์ž๋Š” ๋‹ค์Œ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ:

    • ๋ˆ„๊ฐ€
    • ์–ด๋–ค ์ž‘์—…์„ ํŒŒ์ผ์— ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€
  • ์ ‘๊ทผ ์œ ํ˜•:

    • Read
    • Write
    • Execute
    • Append
    • Delete
    • List (์ด๋ฆ„, ์†์„ฑ ๋“ฑ)
  • ์ ‘๊ทผ ์ œ์–ด:

    • ์ ‘๊ทผ ์ œ์–ด ํ–‰๋ ฌ์€ ๋„ˆ๋ฌด ํผ
    • UNIX๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋‹ค์Œ ์„ธ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ”:
      • user / group / others

Groups

  • ์ ‘๊ทผ ๋ชจ๋“œ: ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์‹คํ–‰ (read, write, execute)

  • ์‚ฌ์šฉ์ž ๊ณ„์ธต (3๋‹จ๊ณ„):

    • a) ์†Œ์œ ์ž(owner): 7 = 1 1 1
    • b) ๊ทธ๋ฃน(group): 6 = 1 1 0
    • c) ๊ณต๊ฐœ(public): 1 = 0 0 1
  • ์ƒˆ๋กœ์šด ๊ทธ๋ฃน(G)์„ ๋งŒ๋“ค๊ณ  ํŠน์ • ์‚ฌ์šฉ์ž๋“ค์„ ์ถ”๊ฐ€ํ•˜๋„๋ก ๊ด€๋ฆฌ์ž์—๊ฒŒ ์š”์ฒญ

  • ํŠน์ • ํŒŒ์ผ(game ๋“ฑ)์— ๋Œ€ํ•ด ์ ์ ˆํ•œ ์ ‘๊ทผ ๊ถŒํ•œ ์„ค์ •:

    chmod 761 game
    chgrp G game
    

File-System Structure

  • ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ณด์กฐ ์ €์žฅ ์žฅ์น˜(๋””์Šคํฌ)์— ์œ„์น˜

  • ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋จ

  • open() ์‹œ์Šคํ…œ ํ˜ธ์ถœ:

    • ๋””์Šคํฌ์—์„œ ํ•ด๋‹น ํŒŒ์ผ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œ
      • ๋””๋ ‰ํ† ๋ฆฌ ํƒ์ƒ‰์ด ํ•„์š”
    • Open-file table์— ๋“ฑ๋ก
    • File descriptor ์ƒ์„ฑ (file handle, control block)
      • open-file table์˜ ์ธ๋ฑ์Šค ์—ญํ• 
  • ๋””๋ ‰ํ† ๋ฆฌ ํƒ์ƒ‰์ด ๋น„์‹ผ ์ด์œ :

    • ์˜ˆ: a/b/c/d/e.hwp
    • ๋””์Šคํฌ I/O๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒ

Mounting File System

  • "root file system" ์•„๋ž˜์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์€ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • ๊ทธ๋Ÿฐ๋ฐ ๋‹ค๋ฅธ ํŒŒ์ผ ์‹œ์Šคํ…œ(์˜ˆ: CD, USB)์˜ ํŒŒ์ผ์€ ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ• ๊นŒ?

Mount it!

  • ์˜ˆ: CD ํŒŒ์ผ ์‹œ์Šคํ…œ์„ /mnt ๋””๋ ‰ํ† ๋ฆฌ์— ๋งˆ์šดํŠธํ•˜๋ฉด,
    • /mnt ์ดํ•˜์˜ ํŒŒ์ผ๋“ค์€ ์ „์ฒด ํŠธ๋ฆฌ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ

Allocation of File Data in Disk

Contiguous Allocation

  • ๊ฐ ํŒŒ์ผ์€ ๋””์Šคํฌ ์ƒ์˜ ์—ฐ์†๋œ ๋ธ”๋ก ์ง‘ํ•ฉ์„ ์ ์œ 

  • ์žฅ์ :

    • ๋‹จ์ˆœํ•จ: ์‹œ์ž‘ ์œ„์น˜(block #)์™€ ๊ธธ์ด(๋ธ”๋ก ์ˆ˜)๋งŒ ์•Œ๋ฉด ๋จ
    • ๋น ๋ฅธ I/O:
      • ํ•œ ๋ฒˆ์˜ seek/rotation์œผ๋กœ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์† ์ „์†ก
      • ์‹ค์‹œ๊ฐ„ I/O ๋˜๋Š” ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์˜ swapping์— ์œ ๋ฆฌ
  • ๋‹จ์ :

    • ๊ณต๊ฐ„ ๋‚ญ๋น„:
      • ๋™์  ์ €์žฅ์†Œ ํ• ๋‹น โ†’ ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฐœ์ƒ โ†’ ์ž‘์€ hole ๋‹ค์ˆ˜
    • ํŒŒ์ผ ํฌ๊ธฐ ์ฆ๊ฐ€์˜ ์–ด๋ ค์›€:
      • ์–ผ๋งˆ๋‚˜ ๊ณต๊ฐ„์„ ๋ฏธ๋ฆฌ ํ• ๋‹นํ•ด์•ผ ํ• ์ง€ ์˜ˆ์ธก ํ•„์š”
      • grow ๊ฐ€๋Šฅ์„ฑ๊ณผ ๋‹จํŽธํ™” ์‚ฌ์ด trade-off

Contiguous Allocation of Disk Space

  • ๋””์Šคํฌ์—์„œ ์—ฐ์† ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›์€ ํŒŒ์ผ๋“ค์˜ ์˜ˆ์‹œ
  • ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” ์‹œ์ž‘ ๋ธ”๋ก๊ณผ ๊ธธ์ด ์ •๋ณด๊ฐ€ ๊ธฐ๋ก๋จ

Linked Allocation

  • ๊ฐ ํŒŒ์ผ์€ ๋””์Šคํฌ ๋ธ”๋ก์˜ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌ์„ฑ๋จ

  • ๋ธ”๋ก๋“ค์€ ๋””์Šคํฌ ์–ด๋””์—๋‚˜ ํฉ์–ด์ ธ ์žˆ์„ ์ˆ˜ ์žˆ์Œ

  • ๊ฐ ๋ธ”๋ก์€ ๋‹ค์Œ์„ ํฌํ•จ:

    • pointer (๋‹ค์Œ ๋ธ”๋ก ์œ„์น˜)
    • file content (๋ฐ์ดํ„ฐ)

Linked Allocation (Cont.)

  • ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋ธ”๋ก์„ ํ• ๋‹นํ•˜๊ณ  ์—ฐ๊ฒฐ
  • ์˜ˆ: jeop ํŒŒ์ผ์ด block 9์—์„œ ์‹œ์ž‘ โ†’ ์ค‘๊ฐ„ ๋ธ”๋ก์„ ๋”ฐ๋ผ ์—ฐ๊ฒฐ

Linked Allocation (Cont.)

  • ์žฅ์ :

    • ์‹œ์ž‘ ์ฃผ์†Œ๋งŒ ์•Œ๋ฉด ๋จ
    • free-space ๊ด€๋ฆฌ ์šฉ์ด, ๊ณต๊ฐ„ ๋‚ญ๋น„ ์—†์Œ
  • ๋‹จ์ :

    • ๋žœ๋ค ์ ‘๊ทผ ๋ถˆ๊ฐ€
    • ๋””์Šคํฌ I/O ์„ฑ๋Šฅ ์ €ํ•˜ (pointer ์ถ”์ ๋งˆ๋‹ค seek/rotation ํ•„์š”)
    • ์‹ ๋ขฐ์„ฑ ๋ฌธ์ œ:
      • pointer ์†์ƒ ์‹œ ์ „์ฒด ํŒŒ์ผ ์ผ๋ถ€ ์†์‹ค ๊ฐ€๋Šฅ
  • pointer overhead:

    • ๋ธ”๋ก๋‹น pointer ์ €์žฅ ๊ณต๊ฐ„ ํ•„์š” (์˜ˆ: sector ๋‹น 512B, pointer 4B โ†’ 0.78%)
  • ๋ณ€ํ˜• ํ˜•ํƒœ: FAT (File Allocation Table)

    • MS Windows, OS/2 ๋“ฑ์—์„œ ์‚ฌ์šฉ

File-Allocation Table

  • ๋””์Šคํฌ์˜ ๊ฐ ๋ธ”๋ก์„ ํฌ์ธํ„ฐ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ํ…Œ์ด๋ธ” ๊ตฌ์กฐ
  • ๋””๋ ‰ํ† ๋ฆฌ ํ•ญ๋ชฉ์€ ํŒŒ์ผ ์ด๋ฆ„๊ณผ ์‹œ์ž‘ ๋ธ”๋ก๋งŒ ๊ฐ€์ง
  • FAT ํ…Œ์ด๋ธ”์—์„œ ๋‹ค์Œ ๋ธ”๋ก์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ํŒŒ์ผ ๋‚ด์šฉ ๊ตฌ์„ฑ
  • -1์€ ํŒŒ์ผ์˜ ๋์„ ๋‚˜ํƒ€๋ƒ„

Indexed Allocation

  • ๊ฐ ํŒŒ์ผ์€ ์ž์‹ ์˜ ์ธ๋ฑ์Šค ๋ธ”๋ก์„ ๊ฐ€์ง
  • ์ธ๋ฑ์Šค ๋ธ”๋ก์€ ๋””์Šคํฌ ๋ธ”๋ก์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ๋ฐฐ์—ด
  • ์ง์ ‘ ์ ‘๊ทผ ์†๋„๊ฐ€ ํ–ฅ์ƒ๋จ
  • ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ: ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ” โ†’ ๋ฐ์ดํ„ฐ ๋ธ”๋ก

Example of Indexed Allocation

  • ๋””๋ ‰ํ† ๋ฆฌ์—์„œ joep ํŒŒ์ผ์˜ ์ธ๋ฑ์Šค ๋ธ”๋ก์€ 19๋ฒˆ
  • ์ธ๋ฑ์Šค ๋ธ”๋ก ๋‚ด ํฌ์ธํ„ฐ๋“ค์„ ๋”ฐ๋ผ ๋””์Šคํฌ ๋ธ”๋ก๋“ค์— ์ ‘๊ทผ
  • -1์€ ํŒŒ์ผ ๋์„ ์˜๋ฏธ

Indexed Allocation โ€“ Mapping (Cont.)

  • ํŒŒ์ผ์ด ๋„ˆ๋ฌด ํด ๊ฒฝ์šฐ, ํ•˜๋‚˜์˜ ๋””์Šคํฌ ๋ธ”๋ก์— ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ”์ด ๋‹ค ๋“ค์–ด๊ฐ€์ง€ ์•Š์Œ
  1. Linked scheme

    • ์ธ๋ฑ์Šค ๋ธ”๋ก๋“ค์„ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ
    • ํฌ๊ธฐ ์ œํ•œ ์—†์Œ
  2. Two-level index

    • ์ธ๋ฑ์Šค ๋ธ”๋ก ์•ˆ์— ๋˜ ๋‹ค๋ฅธ ์ธ๋ฑ์Šค๋ฅผ ํฌ์ธํ„ฐ๋กœ ๊ฐ€๋ฆฌํ‚ด
  3. Combined ๋ฐฉ์‹ (์˜ˆ: UNIX)

Combined Scheme: UNIX (4K bytes per block)

  • inode ๊ตฌ์กฐ:
    • mode, owner ์ •๋ณด
    • timestamps (3๊ฐœ)
    • size, count
    • direct blocks (๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๊ฐ€๋ฆฌํ‚ด)
    • indirect blocks (๋‹จ์ผ, ์ด์ค‘, ์‚ผ์ค‘ ์ธ๋ฑ์Šค ํฌ์ธํ„ฐ ํฌํ•จ)

Free-Space Management

  • ๋น„ํŠธ๋งต ๋˜๋Š” ๋น„ํŠธ ๋ฒกํ„ฐ ์‚ฌ์šฉ

    • ๊ฐ ๋น„ํŠธ๋Š” ๋ธ”๋ก ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ„
      • 1: free
      • 0: occupied
  • ์ฒซ ๋ฒˆ์งธ free ๋ธ”๋ก ๊ณ„์‚ฐ:

    • (number of 0-value words) ร— word size + ์ฒซ ๋ฒˆ์งธ 1 ๋น„ํŠธ์˜ offset
  • ์žฅ์ :

    • ์—ฐ์†๋œ ๋ธ”๋ก์„ ์ฐพ๊ธฐ ์‰ฌ์›€
    • ์ถ”๊ฐ€ ๊ณต๊ฐ„ ํ•„์š”ํ•จ (๋น„ํŠธ๋งต ์ €์žฅ ๊ณต๊ฐ„)

Free-Space Management (Cont.)

  • Linked list ๋ฐฉ์‹

    • ๋ชจ๋“  free block์„ ์—ฐ๊ฒฐ
    • ์ˆœํšŒ ์†๋„๋Š” ๋А๋ฆผ (๋””์Šคํฌ I/O) โ†’ ์ž์ฃผ ๋ฐœ์ƒํ•˜์ง€๋Š” ์•Š์Œ
    • ์—ฐ์† ๊ณต๊ฐ„ ํ™•๋ณด๊ฐ€ ์–ด๋ ค์›€
    • ๊ณต๊ฐ„ ๋‚ญ๋น„ ์—†์Œ
  • Grouping

    • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๋ฐฉ์‹์˜ ๋ณ€ํ˜•
    • ์ฒซ ๋ฒˆ์งธ free ๋ธ”๋ก์ด n๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง
      • n-1๊ฐœ๋Š” ๋‹ค๋ฅธ free block ๊ฐ€๋ฆฌํ‚ด
      • ๋งˆ์ง€๋ง‰ ํฌ์ธํ„ฐ๋Š” ๋‹ค์Œ ๊ทธ๋ฃน ๋ธ”๋ก์„ ๊ฐ€๋ฆฌํ‚ด
  • Counting

    • (์‹œ์ž‘ ๋ธ”๋ก ๋ฒˆํ˜ธ, ์—ฐ์† ๋ธ”๋ก ์ˆ˜) ํ˜•์‹์œผ๋กœ ๊ด€๋ฆฌ
    • ์—ฐ์†๋œ ๋ธ”๋ก๋“ค์ด ์ž์ฃผ ํ•จ๊ป˜ ํ• ๋‹น/ํ•ด์ œ๋˜๋Š” ๊ฒฝ์šฐ ์œ ๋ฆฌ

    Performance

  • Disk cache

    • ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜ ๋ณ„๋„ ๊ตฌ์—ญ์— ๋ณด๊ด€
  • Free-behind ๋ฐ Read-ahead

    • ์ˆœ์ฐจ ์ ‘๊ทผ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ๊ธฐ๋ฒ•
    • ๋‹ค์Œ ๋ธ”๋ก ์š”์ฒญ ์‹œ ์ด์ „ ๋ธ”๋ก ํ•ด์ œ (Free-behind)
    • ์š”์ฒญ๋œ ํŽ˜์ด์ง€ ๋ฐ ์ดํ›„ ํŽ˜์ด์ง€๋“ค์„ ์ฝ๊ณ  ์บ์‹œํ•จ (Read-ahead)
  • Virtual disk (RAM disk)

    • ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ํ• ๋‹น์„ ํ†ตํ•ด PC ์„ฑ๋Šฅ ํ–ฅ์ƒ
  • Directory entry cache (dentry cache)

    • ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ํ•ญ๋ชฉ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€

Recovery

  • ์ผ๊ด€์„ฑ ๊ฒ€์‚ฌ๊ธฐ (Consistency checker)

    • ์ผ๋ถ€ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ •๋ณด๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ์Œ
    • ์‹œ์Šคํ…œ ์ถฉ๋Œ ์‹œ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ๋””์Šคํฌ์— ์ €์žฅ๋˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ
    • ๋””๋ ‰ํ† ๋ฆฌ๋‚˜ ํŒŒ์ผ ์ œ์–ด ๋ธ”๋ก(๋ฉ”ํƒ€๋ฐ์ดํ„ฐ) ์†์‹ค ์‹œ:
      • ๋ถ€ํŒ… ์‹œ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ์™€ ๋””์Šคํฌ์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ ๋น„๊ตํ•˜์—ฌ
        ๋ถˆ์ผ์น˜ํ•œ ๋ถ€๋ถ„์„ ์ž๋™์œผ๋กœ ์ˆ˜์ • ์‹œ๋„
  • ๋ฐฑ์—…

    • ๋””์Šคํฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ์ €์žฅ ์žฅ์น˜(ํ”Œ๋กœํ”ผ ๋””์Šคํฌ, ์ž๊ธฐ ํ…Œ์ดํ”„ ๋“ฑ)์— ๋ฐฑ์—…
    • ๋ฐฑ์—… ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ๋˜๋Š” ๋””์Šคํฌ๋ฅผ ๋ณต๊ตฌ (restore)

Final Remarks

  • ์š”์•ฝ:
    • โ€œFile Systemโ€์€ ๋””์Šคํฌ ์ƒ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
    • โ€œlogical formattingโ€์€ ์ด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์ž‘์—…
    • ๋””์Šคํฌ ํŒŒ์ผ ์ ‘๊ทผ์€ ์šด์˜์ฒด์ œ์— ๋”ฐ๋ผ ๋™์ž‘์ด ๋‹ฌ๋ผ์ง
์ตœ๊ทผ ์ˆ˜์ •:: 25. 6. 19. ์˜คํ›„ 8:26
Contributors: kmbzn
Prev
11. Virtual Memory(2)
Next
13. Mass Storage Management

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
ยฉ 2025 kmbzn ยท MIT License