πŸ› οΈ OS

[OS] 17. 파일 μ‹œμŠ€ν…œ

JINiOS 2024. 6. 3. 17:42
728x90
  • 파일 μ‹œμŠ€ν…œμ΄ 파일과 디렉터리λ₯Ό 보쑰기얡μž₯μΉ˜μ— ν• λ‹Ήν•˜κ³  μ ‘κ·Όν•˜λŠ” 방법
  • λŒ€ν‘œμ μΈ 파일 μ‹œμŠ€ν…œμ˜ μ’…λ₯˜(FAT 파일 μ‹œμŠ€ν…œ, μœ λ‹‰μŠ€ 파일 μ‹œμŠ€ν…œ) ν•™μŠ΅
  • νŒŒν‹°μ…”λ‹κ³Ό ν¬λ§€νŒ…
    • 이제 막 곡μž₯μ—μ„œ μƒμ‚°λ˜μ–΄ ν•œ λ²ˆλ„ μ‚¬μš©λœ 적 μ—†λŠ” μƒˆ ν•˜λ“œ λ””μŠ€ν¬ / SSD ?
    • νŒŒν‹°μ…”λ‹, ν¬λ§€νŒ… ν•˜κΈ° μ „κΉŒμ§€λŠ” μ‚¬μš©ν•  수 μ—†λ‹€
    • νŒŒν‹°μ…”λ‹
      • μ €μž₯ μž₯치의 논리적인 μ˜μ—­μ„ κ΅¬νšν•˜λŠ” μž‘μ—…
    • ν¬λ§€νŒ…
      • 파일 μ‹œμŠ€ν…œμ„ μ„€μ •
      • μ–΄λ–€ λ°©μ‹μœΌλ‘œ νŒŒμΌμ„ 관리할지 κ²°μ •, μƒˆλ‘œμš΄ 데이터λ₯Ό μ“Έ μ€€λΉ„ν•˜λŠ” μž‘μ—…
      • 파일 μ‹œμŠ€ν…œμ—λŠ” μ—¬λŸ¬ μ’…λ₯˜κ°€ 있고, νŒŒν‹°μ…˜λ§ˆλ‹€ λ‹€λ₯Έ 파일 μ‹œμŠ€ν…œμ„ μ„€μ •ν•  μˆ˜λ„ μžˆλ‹€
      • ν¬λ§€νŒ…κΉŒμ§€ μ™„λ£Œν•˜μ—¬ 파일 μ‹œμŠ€ν…œμ„ μ„€μ •ν–ˆλ‹€λ©΄ 이제 파일과 디렉터리 생성이 κ°€λŠ₯해진닀

 

1. 파일 ν• λ‹Ή 방법

  • ν¬λ§€νŒ…κΉŒμ§€ λλ‚œ ν•˜λ“œ λ””μŠ€ν¬μ— νŒŒμΌμ„ μ €μž₯ν•˜κΈ°
  • μš΄μ˜μ²΄μ œλŠ” 파일/디렉터리λ₯Ό 블둝 λ‹¨μœ„λ‘œ 읽고 μ“΄λ‹€
    즉, ν•˜λ‚˜μ˜ 파일이 보쑰기얡μž₯μΉ˜μ— μ €μž₯될 λ•Œμ—λŠ” μ—¬λŸ¬ 블둝에 걸쳐 μ €μž₯λœλ‹€
  • νŒŒμΌμ„ 보쑰기얡 μž₯μΉ˜μ— ν• λ‹Ήν•˜λŠ” 두 가지 방법: 연속 ν• λ‹Ή, λΆˆμ—°μ† ν• λ‹Ή(μ—°κ²° ν• λ‹Ή, 색인 ν• λ‹Ή)
  • 연속 ν• λ‹Ή
    • 이름 κ·ΈλŒ€λ‘œ 보쑰기얡μž₯치 λ‚΄ 연속적인 블둝에 파일 ν• λ‹Ή
    • μ—°μ†λœ νŒŒμΌμ— μ ‘κ·Όν•˜κΈ° μœ„ν•΄ 파일의 첫 번째 블둝 μ£Όμ†Œμ™€ 블둝 λ‹¨μœ„μ˜ 길이만 μ•Œλ©΄ λœλ‹€
    • 디렉터리 μ—”νŠΈλ¦¬: “파일 이름 & 첫 번째 블둝 μ£Όμ†Œ & 블둝 λ‹¨μœ„ 길이” λͺ…μ‹œ
    • λΆ€μž‘μš©
      κ΅¬ν˜„μ΄ λ‹¨μˆœν•˜μ§€λ§Œ μ™ΈλΆ€ λ‹¨νŽΈν™”λ₯Ό μ•ΌκΈ°ν•  수 μžˆλ‹€. → 파일 μ‚­μ œ μ‹œ
  • λΆˆμ—°μ† ν• λ‹Ή - μ—°κ²° ν• λ‹Ή
    • 각 λΈ”λ‘μ˜ 일뢀에 λ‹€μŒ λΈ”λ‘μ˜ μ£Όμ†Œλ₯Ό μ €μž₯ν•˜μ—¬ 각 블둝이 λ‹€μŒ 블둝을 κ°€λ¦¬ν‚€λŠ” ν˜•νƒœλ‘œ ν• λ‹Ή
    • νŒŒμΌμ„ μ΄λ£¨λŠ” 데이터 블둝을 μ—°κ²° 리슀트둜 관리
    • λΆˆμ—°μ† ν• λ‹Ήμ˜ 일쒅: 파일이 μ—¬λŸ¬ 블둝에 흩어져 μ €μž₯λ˜μ–΄λ„ 무방
    • 디렉터리 μ—”νŠΈλ¦¬: 파일 이름 & 첫 번째 블둝 μ£Όμ†Œ & 블둝 λ‹¨μœ„ 길이
    • 단점
      • λ°˜λ“œμ‹œ 첫 번째 블둝뢀터 ν•˜λ‚˜μ”© 읽어듀여야 ν•œλ‹€: 파일의 μž„μ˜μ˜ μœ„μΉ˜μ— μ ‘κ·Όν•˜λŠ” 속도가 λŠλ¦¬λ‹€(μž„μ˜ μ ‘κ·Ό 속도가 λŠλ¦¬λ‹€)
      • 였λ₯˜ λ°œμƒ μ‹œ ν•΄λ‹Ή 블둝 이후 블둝은 접근이 μ–΄λ ΅λ‹€
  • λΆˆμ—°μ† ν• λ‹Ή - 색인 ν• λ‹Ή
    • 파일의 λͺ¨λ“  블둝 μ£Όμ†Œλ₯Ό 색인 λΈ”λ‘μ΄λΌλŠ” ν•˜λ‚˜μ˜ 블둝에 λͺ¨μ•„ κ΄€λ¦¬ν•˜λŠ” 방식
    • 파일 λ‚΄ μž„μ˜μ˜ μœ„μΉ˜μ— μ ‘κ·Όν•˜κΈ° 용이
    • 디렉터리 μ—”νŠΈλ¦¬: 파일 이름 & 색인 블둝 μ£Όμ†Œ

 

2. 파일 μ‹œμŠ€ν…œ μ‚΄νŽ΄λ³΄κΈ°

  • FAT 파일 μ‹œμŠ€ν…œ
    • μ—°κ²° ν• λ‹Ή 기반의 파일 μ‹œμŠ€ν…œ
    • μ—°κ²° ν• λ‹Ήμ˜ 단점을 보완
      • 각 블둝에 ν¬ν•¨λœ λ‹€μŒ 블둝 μ£Όμ†Œλ₯Ό ν•œλ° λͺ¨μ•„ ν…Œμ΄λΈ”(FAT; File Allocation Table)둜 관리
      • FATκ°€ λ©”λͺ¨λ¦¬μ— μΊμ‹œλ  경우 느린 μž„μ˜ μ ‘κ·Ό 속도 κ°œμ„  κ°€λŠ₯
    • 디렉터리 μ—”νŠΈλ¦¬
      • νŒŒμΌμ΄λ¦„, ν™•μž₯자, 속성, μ˜ˆμ•½ μ˜μ—­, 생성 μ‹œκ°„, λ§ˆμ§€λ§‰ μ ‘κ·Ό μ‹œκ°„, λ§ˆμ§€λ§‰ μˆ˜μ • μ‹œκ°„, μ‹œμž‘ 블둝, 파일 크기
  • μœ λ‹‰μŠ€ 파일 μ‹œμŠ€ν…œ
    • 색인 ν• λ‹Ή 기반 파일 μ‹œμŠ€ν…œ
    • 색인 블둝 == i-node
      • 파일의 속성 정보와 15개의 블둝 μ£Όμ†Œ μ €μž₯ κ°€λŠ₯
    • i-nodeλ₯Ό μ‚¬μš©ν•˜λŠ” 파일 μ‹œμŠ€ν…œ
      • μ˜ˆμ•½ μ˜μ—­, i-nodeμ˜μ—­, 데이터 μ˜μ—­
    • 15개 블둝 μ΄μƒμ˜ μ°¨μ§€ν•˜λŠ” νŒŒμΌμ€?
      • 블둝 μ£Όμ†Œ 쀑 12κ°œμ—λŠ” 직접 블둝 μ£Όμ†Œ μ €μž₯
      • 1번으둜 μΆ©λΆ„ν•˜μ§€ μ•Šλ‹€λ©΄ 13번째 μ£Όμ†Œμ— 단일 κ°„μ ‘ 블둝 μ£Όμ†Œ μ €μž₯
      • 2번으둜 μΆ©λΆ„ν•˜μ§€ μ•Šλ‹€λ©΄ 14번째 μ£Όμ†Œμ— 이쀑 κ°„μ ‘ 블둝 μ£Όμ†Œ μ €μž₯
      • 3번으둜 μΆ©λΆ„ν•˜μ§€ μ•Šλ‹€λ©΄ 15번째 μ£Όμ†Œμ— 삼쀑 κ°„μ ‘ 블둝 μ£Όμ†Œ μ €μž₯
        • 단일 κ°„μ ‘ 블둝: 파일 데이터λ₯Ό μ €μž₯ν•œ 블둝 μ£Όμ†Œκ°€ μ €μž₯된 블둝
        • 이쀑 κ°„μ ‘ 블둝: 단일 κ°„μ ‘ λΈ”λ‘λ“€μ˜ μ£Όμ†Œλ₯Ό μ €μž₯ν•˜λŠ” 블둝
        • 삼쀑 κ°„μ ‘ 블둝: 이쀑 κ°„μ ‘ λΈ”λ‘λ“€μ˜ μ£Όμ†Œλ₯Ό μ €μž₯ν•˜λŠ” 블둝
    • 디렉터리 μ—”νŠΈλ¦¬: i-nodeκ°€ 파일 μ‹œμŠ€ν…œμ˜ 핡심
      • i-node 번호, 파일 이름

 


 

 

 

γ€Žν˜Όμž κ³΅λΆ€ν•˜λŠ” 컴퓨터 ꡬ쑰+μš΄μ˜μ²΄μ œγ€ κ°•μ˜ λ‚΄μš©μ„ 기반으둜 μž‘μ„±λœ κΈ€μž…λ‹ˆλ‹€

728x90