🌐 CS & Infra/Operating System

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

devCloud 2023. 10. 16. 10:38
728x90

(1) κ°œμš”

  • 파일 μ‹œμŠ€ν…œ = 파일 집합체 + 디렉터리 ꡬ쑰
  • κ΄€λ ¨λœ 정보λ₯Ό ν¬ν•¨ν•˜λŠ” μ‹€μ œμ μΈ νŒŒμΌλ“€μ˜ 집합체이닀.
  • μ‹œμŠ€ν…œ λ‚΄μ˜ λͺ¨λ“  νŒŒμΌμ— λŒ€ν•œ 정보λ₯Ό μ œκ³΅ν•˜λŠ” 디렉터리 ꡬ쑰이닀.
  • 파일 μ‹œμŠ€ν…œμ€ OSκ°€ κ΄€λ¦¬ν•˜λ©°, 파일과 폴더λ₯Ό 생성할 수 μžˆλŠ” μ‹œμŠ€ν…œμ΄λ‹€.

 

File

  • μ •λ³΄μ˜ 집합체, ν”„λ‘œκ·Έλž¨μ΄λ‚˜ λ°μ΄ν„°λ‘œ κ΅¬μ„±λœλ‹€.
  • μž‘μ„±μžμ— μ˜ν•΄ μ˜λ―Έκ°€ μ •μ˜λœ λΉ„νŠΈ, λ°”μ΄νŠΈ, ν–‰, λ ˆμ½”λ“œλ“€μ˜ 연속체이닀.
  • 파일의 이름, ν˜•νƒœ, μž‘μ„± μ‹œκΈ°, μž‘μ„±μž, 길이 λ“±μ˜ 속성 정보λ₯Ό ν¬ν•¨ν•œλ‹€.

 

Format

  • λͺ©μ μ€ νŒŒμΌμ‹œμŠ€ν…œμ„ λ””μŠ€ν¬μ— μ„€μΉ˜ν•˜λŠ” 것이닀.(μ›λž˜λŠ” λͺ¨λ‘ μ§€μš°λŠ” μš©λ„λ‘œ μ•Œκ³  있음)
  • μœˆλ„μš° μ „μš© 파일 μ‹œμŠ€ν…œ μ’…λ₯˜ : FAT32, NTFS, EXFAT
  • SSD,HDDλŠ” 포맷을 μ•ˆ ν•˜λ©΄ λͺ» μ“°μ§€λ§Œ, USBλŠ” 기본적으둜 FAT32둜 포맷이 λ˜μ–΄ μžˆμ–΄μ„œ 포맷이 ν•„μš”μ—†λ‹€.

 

(2) 파일 μ‹œμŠ€ν…œ κΈ°λŠ₯

  • 파일의 생성, μˆ˜μ •, μ‚­μ œ 방법과 파일 곡유λ₯Ό μœ„ν•œ μ μ ˆν•œ μ ‘κ·Ό μ œμ–΄ 방법(νŒλ…, 기둝, μˆ˜ν–‰ λ“±)을 μ œκ³΅ν•œλ‹€.
  • μ‚¬μš©μžμ˜ μ‘μš© 뢄야에 μ ν•©ν•œ ν˜•νƒœλ‘œ 파일의 ꡬ성 방법을 μ œκ³΅ν•œλ‹€.
  • λ°±μ—…(Backup) 및 볡ꡬ(Recovery) κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€.
  • μ‚¬μš©μžμ™€ μž₯치 κ°„μ˜ 독립성(Device Independence)을 μœ μ§€ν•˜κΈ° μœ„ν•΄ κΈ°ν˜Έν™”λœ 이름(Symbolic Name) μ‚¬μš© 방법을 μ œκ³΅ν•œλ‹€.
  • 정보 λ³΄ν˜Έμ™€ λΉ„λ°€ 보μž₯이 κ°€λŠ₯ν•œ μ•”ν˜Έν™”(Encryption)와 λ³΅ν˜Έν™”(Decryption)κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€.
  • μ‚¬μš©μžμ—κ²Œ μΉœμˆ™ν•œ μΈν„°νŽ˜μ΄μŠ€(User Friendly Interface)λ₯Ό μ œκ³΅ν•œλ‹€.(Ex-파일 탐색기)

 

(3) 파일의 ꡬ쑰

  • νŒŒμΌμ„ κ΅¬μ„±ν•˜λŠ” λ ˆμ½”λ“œλ“€(파일의 μ§‘ν•©)이 보쑰 κΈ°μ–΅μž₯μΉ˜μ— λ°°μΉ˜λ˜λŠ” 방법이닀.
  • νŒŒμΌμ— λŒ€ν•œ μ ‘κ·Ό 방법 및 파일 I/O 처리 속도와 λ°€μ ‘ν•œ 연관성이 μžˆλ‹€.

 

1. Sequential File ꡬ쑰

  • κ°€μž₯ λ‹¨μˆœν•œ λ°©λ²•μœΌλ‘œ, 일괄 μ²˜λ¦¬μ—μ„œ 주둜 μ‚¬μš©ν•œλ‹€.
  • 논리적인 λ ˆμ½”λ“œ(파일의 λ‚΄μš©μ„ κ΅¬μ„±ν•˜λŠ” λ‹¨μœ„)λ₯Ό 물리적인 μˆœμ„œμ— 따라 순차적으둜 μ €μž₯ν•˜κ³  κ²€μƒ‰ν•œλ‹€.
  • μˆœμ°¨μ ‘κ·Ό κΈ°μ–΅μž₯치(SASD : Sequential Access Storage Device)에 μ €μž₯ν•œλ‹€.
  • 순차 접근이 κ°€λŠ₯ν•œ 자기 ν…Œμ΄ν”„λ₯Ό λͺ¨ν˜•ν™”ν•œ ꡬ쑰이닀.

 

μž₯점 : λ‹€μŒ λ ˆμ½”λ“œμ— λŒ€ν•œ λΉ λ₯Έ 접근이 κ°€λŠ₯ν•˜κ³ , ν”„λ‘œκ·Έλž˜λ°μ΄ 쉽닀.

단점 : νŒŒμΌμ— μ €μž₯된 λ ˆμ½”λ“œ μˆœμ„œμ™€ λ‹€λ₯Έ μˆœμ„œλ‘œ λ ˆμ½”λ“œ 검색 μ‹œ ν”„λ‘œκ·Έλž¨μ˜ μ ‘κ·Ό 속도 μ €ν•˜, λ˜ν•œ μƒˆλ‘œμš΄ λ ˆμ½”λ“œ μ‚½μž…/μ‚­μ œ μ‹œ λ§Žμ€ μ‹œκ°„μ΄ μ†Œμš”λœλ‹€.


μœ„ 사진은 μžκΈ°ν…Œμ΄ν”„μ΄λ‹€. 순차적으둜 μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ— 쀑간에 μ‚½μž…ν•˜κ²Œ 되면 λ’€μ˜ λ ˆμ½”λ“œλ“€μ˜ λ’€λ‘œ λ‹€ λ°€μ–΄μ•Ό ν•œλ‹€. μžκΈ°ν…Œμ΄ν”„λ₯Ό μ“°λ‹€λ³΄λ‹ˆ μ–΄μ©” 수 없이 순차적으둜 μ €μž₯ν•˜λŠ” 방법을 썼닀.

 

2. Direct File ꡬ쑰

  • λ‹€λ₯Έ λ ˆμ½”λ“œλ₯Ό μ°Έμ‘°ν•˜μ§€ μ•Šκ³  μž„μ˜ λ ˆμ½”λ“œλ₯Ό 직접 접근이 κ°€λŠ₯ν•˜λ‹€.(νŠΈλž™κ³Ό μ„Ήν„° μ •λ³΄λ§Œ μ•Œλ©΄ λ°”λ‘œ μ ‘κ·Ό κ°€λŠ₯)
  • νŠΉμ • μ‘μš© 뢄야에 μ ν•©ν•œ 순으둜 λ ˆμ½”λ“œλ₯Ό 직접 κΈ°μ–΅μž₯μΉ˜μ— μ €μž₯이 κ°€λŠ₯ν•˜λ‹€.
  • λ””μŠ€ν¬μ™€ 같은 직접 μ ‘κ·Ό κΈ°μ–΅μž₯치(DASD:Direct Access Storage Device)에 μ €μž₯λœλ‹€.
  • HDD/SSD만 μ‚¬μš©κ°€λŠ₯ν•˜κ³ , μžκΈ°ν…Œμ΄ν”„λŠ” μ‚¬μš©λΆˆκ°€ν•˜λ‹€.

 

μž₯점 : λ‹€λ₯Έ λ ˆμ½”λ“œμ— 영ν–₯을 μ£Όμ§€ μ•Šκ³  νŠΉμ • λ ˆμ½”λ“œμ˜ 검색, μ‚½μž…, μˆ˜μ •, μ‚­μ œκ°€ μš©μ΄ν•˜λ‹€.
단점 : λ ˆμ½”λ“œ ν‚€ κ°’μ˜ μˆœμ„œμ— μ˜ν•œ μˆœμ°¨ 검색이 μ–΄λ ΅λ‹€.

 

3. Indexed Sequential File ꡬ쑰

  • 직접 νŒŒμΌμ—μ„œ 순차 κ²€μƒ‰μ˜ 단점을 λ³΄μ™„ν•œ κ²ƒμœΌλ‘œ, μˆœμ°¨ 및 직접 접근을 λͺ¨λ‘ μ²˜λ¦¬ν•  수 μžˆλŠ” 파일 ꡬ쑰이닀.
  • 데이터 μ €μž₯ μ˜μ—­ 이외에 λ ˆμ½”λ“œμ˜ ν‚€ 값을 λͺ¨μ€ 색인 블둝 μ˜μ—­μ΄ μ‘΄μž¬ν•œλ‹€.
  • λ ˆμ½”λ“œλŠ” 순차적으둜 접근될 μˆ˜λ„ 있고, μ‹œμŠ€ν…œμ— μ˜ν•΄ κ΄€λ¦¬λ˜λŠ” μƒ‰μΈ λΈ”λ‘μ˜ 검색을 톡해 직접 접근이 κ°€λŠ₯ν•˜λ‹€.
  • 보톡 λ””μŠ€ν¬μ™€ 같은 μ§μ ‘ μ ‘κ·Ό κΈ°μ–΅μž₯치(DASD)에 μ €μž₯λœλ‹€.

 

μž₯점 : μœ΅ν†΅μ„±μ΄ 많고 κ²€μƒ‰ μ„±λŠ₯이 μš°μˆ˜ν•˜λ©°, μƒˆλ‘œμš΄ λ ˆμ½”λ“œ μ‚½μž…, μ‚­μ œκ°€ μš©μ΄ν•˜λ‹€.
단점 : 파일 ꡬ쑰의 λ³΅μž‘성이 μ¦κ°€ν•˜μ—¬ 섀계 μ‹œ κ³ λ €ν•  사항이 많고, λ³„λ„μ˜ 색인 블둝 μ˜μ—­ 관리가 ν•„μš”ν•˜λ‹€.

 

(4) 파일 κ³΅κ°„μ˜ ν• λ‹Ήκ³Ό 회수 방법

  • νŒŒμΌμ„ 보쑰기얡μž₯μΉ˜μ— μ €μž₯ν•  λ•Œ νŒŒμΌμ„ μ–΄λ–»κ²Œ ν• λ‹Ήν•  것인가에 λŒ€ν•œ λ°©λ²•μœΌλ‘œ, μ–Όλ§ˆλ‚˜ λΉ λ₯΄κ²Œ μ ‘κ·Όν•  수 μžˆμ„μ§€λ₯Ό κ²°μ •ν•˜κ²Œ λœλ‹€.
  • μž¦μ€ ν• λ‹Ήκ³Ό νšŒμˆ˜λŠ” 보쑰기얡μž₯치 κ³΅κ°„μ˜ λ‹¨νŽΈν™”λ₯Ό λ°œμƒμ‹œν‚¨λ‹€. λ”°λΌμ„œ μ£ΌκΈ°μ μΈ μ§‘μ•½(compaction)이 ν•„μš”ν•˜λ‹€.

 

β–Ά ν• λ‹Ή 방법

(1) Contiguous Allocation Method

  • νŒŒμΌλ“€μ΄ 보쑰기얡μž₯치 λ‚΄μ˜ μ—°μ†μ μœΌλ‘œ μΈμ ‘λœ 곡간에 ν• λ‹Ήλœλ‹€.
  • 파일 λ””λ ‰ν„°λ¦¬μ—μ„œλŠ” κ° νŒŒμΌμ— λŒ€ν•œ μ‹œμž‘μ£Όμ†Œ 및 파일 길이 정보λ₯Ό μœ μ§€ν•œλ‹€.
  • μƒˆλ‘œμš΄ 파일 생성을 μœ„ν•΄μ„œλŠ” ν•„μš”ν•œ κ³΅κ°„μ˜ 크기λ₯Ό 미리 λͺ…μ‹œν•΄μ•Ό ν•œλ‹€.
  • μΆ©λΆ„ν•œ κΈ°μ–΅ 곡간 확보λ₯Ό μœ„ν•˜μ—¬ μ£ΌκΈ°μ μΈ 집약이 ν•„μš”ν•˜λ‹€.

 

μž₯점 - μ—°μ†ν•˜λŠ” 논리적 블둝듀에 λŒ€ν•œ λΉ λ₯Έ μ ‘κ·Ό(검색)이 κ°€λŠ₯ν•˜λ‹€.

단점 -μ›ν•˜λŠ” 만큼의 κΈ°μ–΅ 곡간이 ν™•λ³΄λ˜μ§€ μ•ŠμœΌλ©΄ 파일이 μƒμ„±λ˜μ§€ λͺ»ν•œλ‹€. (+큰 파일 μ €μž₯ λͺ»ν•¨)

 

(2) Noncontiguous Allocation Method

연속 ν• λ‹Ή λ°©λ²•μ˜ 단점인 파일 크기 λ¬Έμ œμ™€ κ°€μš© 곡간 λ‹¨νŽΈν™” 문제λ₯Ό ν•΄κ²°ν•œ λ°©λ²•μœΌλ‘œ, μ—°κ²° 리슀트(Linked List)와 색인 블둝(Indexed Block)기법이 μžˆλ‹€.

 

1. Linked List Method

  • 동일 νŒŒμΌμ— 속해 μžˆλŠ” 블둝듀이 μ„œλ‘œ μ—°κ²° 리슀트의 ν˜•νƒœλ₯Ό μ·¨ν•˜λ©΄μ„œ λ‹€λ₯Έ κ²ƒκ³Όμ˜ 연결을 μœ„ν•œ μ£Όμ†Œ 포인터λ₯Ό κ°€μ§€κ³  μžˆλ‹€.
  • λ””λ ‰ν„°λ¦¬μ—λŠ” ν•΄λ‹Ή 파일의 μ‹œμž‘ μ£Όμ†Œ 및 λ§ˆμ§€λ§‰ μ£Όμ†Œμ— λŒ€ν•œ 포인터 정보λ₯Ό μœ μ§€ν•œλ‹€.

단점

  • μ—°μ†λœ λΈ”λ‘λ“€μ˜ κ²€μƒ‰μ— κΈ΄ μ‹œκ°„μ΄ μš”κ΅¬λœλ‹€.
  • μ—°κ²° 리슀트 ꡬ쑰λ₯Ό μœ μ§€ν•˜λŠ”λ° ν•„μš”ν•œ μ‹œκ°„μ΄ μΆ”κ°€μ μœΌλ‘œ μ†Œμš”λœλ‹€.
  • μ—°κ²°λœ 리슀트 내에 μžˆλŠ” 포인터 μ •λ³΄λŠ” 파일 데이터λ₯Ό μœ„ν•œ κ°€μš© 곡간을 κ°μ†Œμ‹œν‚¨λ‹€.

OSκ°€ 상황에 따라 μ μ ˆν•˜κ²Œ μ£Όμ†Œλ₯Ό ν• λ‹Ήν•˜μ§€λ§Œ, 연속할당보닀 속도가 λŠλ¦¬λ‹€.

 

2. Indexed Block

각 νŒŒμΌλ§ˆλ‹€ 색인 블둝을 두고, 각 파일의 블둝 ν•­λͺ©λ“€μ— λŒ€ν•œ μ£Όμ†Œ 포인터 정보λ₯Ό μœ μ§€ν•œλ‹€. (μ£Όμ†Œ 정보λ₯Ό ν•œ 곳에 λͺ¨μ•„λ‘ )

 

μž₯점 - ν•΄λ‹Ή 블둝에 λŒ€ν•œ μ§μ ‘ 접근이 κ°€λŠ₯ν•˜λ‹€.
단점 - μ—°κ²° 리슀트 방법보닀 κΈ°μ–΅μž₯μ†Œμ˜ λ‚­λΉ„λ₯Ό 더 μ΄ˆλž˜ν•œλ‹€. (색인 λΈ”λ‘μ—μ„œ λ‚­λΉ„ λ°œμƒ)

 

(5) 파일의 보호

  • 파일의 κ³΅μœ μ™€ 병행 μ‚¬μš©μ„ μœ„ν•˜μ—¬ 보호 λ©”μ»€λ‹ˆμ¦˜μ΄ ν•„μš”ν•˜λ‹€.
  • 물리적인 손상(μ‹ λ’°μ„± 문제)κ³Ό *λΆ€λ‹Ήν•œ μ ‘κ·Ό(보호 문제)μœΌλ‘œλΆ€ν„° λ³΄ν˜Έν•΄μ•Ό ν•œλ‹€.

*λΆ€λ‹Ήν•œ μ ‘κ·Ό : μ ‘κ·Ό ν—ˆκ°€κ°€ μ—†λŠ” 것을 μ˜λ―Έν•œλ‹€.

 

보호 기법

  • 파일 이름(Naming) : 파일의 이름을 μ•Œμ§€ λͺ»ν•˜λŠ” 경우 접근이 λΆˆκ°€ν•˜λ‹€.
  • μ•”ν˜Έ(Password) : μ‚¬μš©μžλ§ˆλ‹€ μ„œλ‘œ λ‹€λ₯Έ μ•”ν˜Έλ₯Ό μ œκ³΅ν•˜μ—¬ κ·Έ μ•”ν˜Έλ₯Ό μ•Œμ•„μ•Όλ§Œ νŒŒμΌμ„ μ΄μš©ν•  수 있게 ν•œλ‹€.
    • 보호λ₯Ό μœ„ν•œ μž‘μ€ λ…Έλ ₯κ³Ό κΈ°μ–΅μž₯μ†Œκ°€ μ†Œμš”λ˜κ³ , 파일 λ³΄ν˜Έκ°€ λΆˆν™•μ‹€ν•˜λ‹€λŠ” 단점이 μžˆλ‹€.(λ³΄ν˜Έμ— κ΄€ν•œ 정보가 파일 μ‹œμŠ€ν…œμ— 쑴재)
  • μ ‘κ·Ό μ œμ–΄(Access Control)
    • μ‚¬μš©μžμ— 따라 μ ‘κ·Ό μœ ν˜•μ„ λ‹€λ₯΄κ²Œ λͺ…μ‹œν•˜κ³  OSκ°€ μ ‘κ·Ό μ—¬λΆ€λ₯Ό κ²°μ •ν•œλ‹€.
    • Unix(Linux) μ‹œμŠ€ν…œμ€ μ„Έ μ’…λ₯˜μ˜ μ ‘κ·Ό μœ ν˜•(read, write, execute)κ³Ό μ„Έ μ’…λ₯˜μ˜ μ‚¬μš©μž μœ ν˜•(파일 μ†Œμœ μž, κ·Έλ£Ή μ‚¬μš©μž, λͺ¨λ“  μ‚¬μš©μž)으둜 μ •μ˜ν•œλ‹€.

 

(6) Directory

  • λ””λ ‰ν„°λ¦¬λŠ” κ·Έ μž₯μΉ˜μ— μžˆλŠ” λͺ¨λ“  νŒŒμΌλ“€μ— λŒ€ν•œ 파일 이름, 적재 μœ„μΉ˜, 크기, ν˜•νƒœ 등에 κ΄€ν•œ 정보λ₯Ό κ³΅μœ ν•œλ‹€.
  • 파일 μ‹œμŠ€ν…œ 내뢀에 μžˆλŠ” λ§Žμ€ νŒŒμΌλ“€μ„ μ‘°μ§ν™”ν•˜λŠ” λ©”μ»€λ‹ˆμ¦˜μ΄λ‹€.
  • ν΄λ”λž‘ 같은 κ°œλ…μ΄λΌκ³  μƒκ°ν•˜λ©΄ λœλ‹€.

 

κΈ°λŠ₯

  • Search(탐색) : νŠΉμ • νŒŒμΌμ„ λ°œκ²¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” 디렉터리λ₯Ό κ²€μƒ‰ν•˜λŠ” κΈ°λŠ₯이닀.
  • File Create(파일 생성) : μƒˆλ‘œμš΄ νŒŒμΌλ“€μ„ 디렉터리에 μ²¨κ°€ν•˜λŠ” κΈ°λŠ₯이닀.
  • File Delete(파일 μ‚­μ œ) : λ””λ ‰ν„°λ¦¬λ‘œλΆ€ν„° νŒŒμΌμ„ μ œκ±°ν•˜λŠ” κΈ°λŠ₯이닀.
  • Directory List(디렉터리 μ—΄λžŒ) : 디렉터리 ν•­λͺ©μ˜ λ‚΄μš©μ„ λ³΄μ—¬μ£ΌλŠ” κΈ°λŠ₯이닀.
  • Back Up(λ°±μ—…) : νŒŒμΌλ“€μ„ 자기 ν…Œμ΄ν”„ 등에 λ³΅μ‚¬ν•˜λŠ” κΈ°λŠ₯이닀.

 

디렉터리 내에 μ €μž₯λ˜μ–΄ μžˆλŠ” 각 νŒŒμΌμ— λŒ€ν•œ 정보

  • File Name(파일λͺ…) : κΈ°ν˜Έν™”λœ 파일 이름
  • File Type(파일 ν˜•νƒœ) : λ‹€λ₯Έ ν˜•νƒœμ˜ νŒŒμΌμ„ μ‚¬μš©ν•˜λŠ” μ‹œμŠ€ν…œλ“€μ„ μœ„ν•œ 파일 ν˜•νƒœ
  • Size(크기) : 파일의 크기와 ν—ˆμš©λ˜λŠ” μ΅œλŒ€ 크기
  • Protection(보호) : 읽기, μ“°κΈ°, 처리 등을 μ œμ–΄ν•˜κΈ° μœ„ν•œ μ ‘κ·Ό μ œμ–΄μ •λ³΄
  • Usage Count(μ‚¬μš© 횟수) : ν˜„μž¬ 이 νŒŒμΌμ„ μ‚¬μš©ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ“€μ˜ 개수
  • μ‹œκ°„, λ‚ μ§œ

 

β–Ά Directory ꡬ쑰

1. 일 단계 ꡬ쑰 Directory

  • κ°€μž₯ κ°„λ‹¨ν•œ ꡬ쑰둜, λͺ¨λ“  νŒŒμΌλ“€μ΄ 같은 디렉터리 내에 μœ„μΉ˜ν•œλ‹€.
  • 같은 디렉터리 내에 νŒŒμΌλ“€μ΄ λͺ¨λ‘ μƒμ΄ν•œ 이름을 κ°€μ Έμ•Ό ν•œλ‹€.
  • μ΄ˆκΈ°μ—λŠ” μ„œλΈŒ 디렉터리λ₯Ό λ§Œλ“€ 수 μ—†μ—ˆλ‹€.

 

2. 이 단계 ꡬ쑰 Directory

  • Master File Directory(MMD : λ§ˆμŠ€ν„° 파일 디렉터리, 메인 디렉터리)와 User File Directory(UFD : μ‚¬μš©μž 파일 디렉터리)둜 ꡬ성 λ˜μ–΄μžˆλ‹€.
  • 일 단계 λ””λ ‰ν„°λ¦¬μ˜ 단점인 μ„œλ‘œ λ‹€λ₯Έ μ‚¬μš©μžλ“€ κ°„μ˜ 파일λͺ… ν˜Όλž€μ„ ν•΄κ²°ν•œλ‹€.
  • MFD에 μ‚¬μš©μž 이름이 λ“±λ‘λ˜κ³ , 각 ν•­λͺ©μ€ ν•œ μ‚¬λžŒμ˜ μ‚¬μš©μžμ— λŒ€ν•œ μ‚¬μš©μž 디렉터리λ₯Ό 가리킨닀.
  • ν•˜μ§€λ§Œ, μ‚¬μš©μžλ“€ κ°„μ˜ 파일 κ³΅μœ κ°€ μ–΄λ ΅λ‹€.

같은 μ΄λ¦„μ˜ νŒŒμΌμ„ λ§Œλ“€ 수 μžˆλ‹€. ν•˜μ§€λ§Œ μ—¬μ „νžˆ μ„œλΈŒ λ””λ ‰ν„°λ¦¬λŠ” λ§Œλ“€μ§€ λͺ»ν•œλ‹€.

 

3. 트리 ꡬ쑰 디렉터리

  • 이 단계 디렉터리 ꡬ쑰의 μΌλ°˜ν™”λœ ν™•μž₯으둜, μ„œλΈŒ 디렉터리듀을 κ°€μ§ˆ 수 μžˆλ‹€.
  • ν˜„μž¬ μ‚¬μš©ν•˜κ³  μžˆλŠ” ꡬ쑰이닀.


디렉터리 μ‚­μ œ 방법

  • 디렉터리가 λΉ„μ–΄ μžˆλ‹€λ©΄ κ·Έ λ””λ ‰ν„°λ¦¬λŠ” κ°„λ‹¨νžˆ μ‚­μ œλ˜μ§€λ§Œ, λΉ„μ–΄μžˆμ§€ μ•Šλ‹€λ©΄ λ¨Όμ € κ·Έ 디렉터리 내에 μžˆλŠ” λͺ¨λ“  νŒŒμΌλ“€μ„ μ‚­μ œν•΄μ•Ό ν•œλ‹€.
  • λ””λ ‰ν„°λ¦¬μ˜ μ‚­μ œ μš”κ΅¬κ°€ 디렉터리 λ‚΄μ˜ λͺ¨λ“  파일뿐 μ•„λ‹ˆλΌ μ„œλΈŒ 디렉터리듀도 μ œκ±°ν•΄μ•Ό ν•œλ‹€λŠ” μ‘°κ±΄ν•˜μ—μ„œ μˆ˜ν–‰λ¨

 

4. λΉ„ μˆœν™˜ ꡬ쑰 디렉터리

  • 트리 ꡬ쑰λ₯Ό μ’€ 더 ν™•μž₯ν•œ κ²ƒμœΌλ‘œ, 트리 ꡬ쑰둜 된 디렉터리 μ‹œμŠ€ν…œ 쀑 κ°€μž₯ 일반적인 방법이닀.
  • 디렉터리듀이 μ„œλΈŒ λ””λ ‰ν„°λ¦¬λ‚˜ νŒŒμΌμ„ κ³΅μœ ν•  수 μžˆλ„λ‘ ν—ˆμš©ν•˜κ³  cycle을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
    • κ³΅μœ νŒŒμΌμ„ μ‚­μ œ ν•  λ•Œ μ‘΄μž¬ν•˜μ§€ μ•Šμ€ νŒŒμΌμ„ κ°€λ¦¬ν‚€λŠ” 포인터*(Dangling Pointer)κ°€ λ°œμƒν•  수 μžˆλ‹€. μ΄λŠ” μ°Έμ‘°κ³„μˆ˜(Reference Counter)λ₯Ό μ΄μš©ν•˜μ—¬ ν•΄κ²°ν•œλ‹€.
  • λ‹¨μˆœ 트리 ꡬ쑰보닀 μœ΅ν†΅μ„±μ€ μ’‹μœΌλ‚˜, 곡유λ₯Ό ν—ˆμš©ν•˜κΈ° λ•Œλ¬Έμ— κ·Έ ꡬ쑰가 λ„ˆλ¬΄ λ³΅μž‘ν•œλ‹€.

 

파일과 μ„œλΈŒ λ””λ ‰ν„°λ¦¬μ˜ 곡유 방법

  • λΉ„ μˆœν™˜ ꡬ쑰 디렉터리 : 일반적인 곡유 방법은 Link라고 ν•˜λŠ” μƒˆλ‘œμš΄ 디렉터리 ν•­λͺ©μ„ μƒμ„±ν•œλ‹€.
  • 곡유 νŒŒμΌμ— κ΄€ν•œ λͺ¨λ“  정보λ₯Ό κ·ΈλŒ€λ‘œ λ³΅μ‚¬ν•˜μ—¬ 두 개의 디렉터리에 λ˜‘κ°™μ€ λ‚΄μš©μ˜ ν•­λͺ©μ„ μœ μ§€ν•œλ‹€. κ·ΈλŸ¬λ‚˜ 곡유λ₯Ό ν•˜λ‹€λ³΄λ©΄ λ‚΄μš©μ΄ λ°”λ€” μˆ˜λ„ 있고, 원본 파일이 무엇인지 잘 λͺ¨λ₯΄κ²Œ λ˜λŠ” μΌκ΄€μ„± λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆλ‹€.

  • 만일, μ‚¬μš©μž1이 count νŒŒμΌμ„ μ‚­μ œν•˜λ©΄ μ‚¬μš©μž2κ°€ count νŒŒμΌμ„ 확인 λΆˆκ°€λŠ₯ν•˜λ‹€. 이것을 Dangling Pointer라고 ν•˜λŠ”λ°, 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œ 각 νŒŒμΌλ§ˆλ‹€ μ°Έμ‘°κ³„μˆ˜λ₯Ό λ„£λŠ”λ‹€.
  • μ‚¬μš©μž1이 countνŒŒμΌμ„ μ§€μš°λ©΄ μ°Έμ‘°κ³„μˆ˜λ₯Ό ν•˜λ‚˜ κ°μ†Œμ‹œν‚€λŠ”λ° μ΄λ•Œ, μ°Έμ‘°κ³„μˆ˜κ°€ 1 λ‚¨μ•˜μœΌλ‹ˆ κ·Έ νŒŒμΌμ€ μ§€μ›Œμ§€μ§€ μ•ŠλŠ”λ‹€. λ¬Όλ‘  μ‚¬μš©μž1의 파일만 μ§€μ›Œμ§€κ³  μ‚¬μš©μž2의 countνŒŒμΌμ€ λ‚¨μ•„μžˆλ‹€.

 

5. 일반적 κ·Έλž˜ν”„ ꡬ쑰 디렉터리

  • cycle이 ν—ˆμš©λ˜λŠ”λ°, μ „μ—­ 탐색 μ‹œμ— Infinite Loop이 λ°œμƒν•  수 μžˆλ‹€.
  • 각 λ””λ ‰ν„°λ¦¬λ§ˆλ‹€ λΆˆν•„μš”ν•œ 파일 제거λ₯Ό μœ„ν•˜μ—¬ Garbage Collection이 ν•„μš”ν•˜λ‹€.
  • μ‹€μ œλ‘œ 잘 쓰이지 μ•ŠλŠ”λ‹€.

book -> avi -> book -> avi ... λ¬΄ν•œ μˆœν™˜μ΄ λ°œμƒν•œλ‹€. λ”°λΌμ„œ bookνŒŒμΌμ„ μ‚­μ œν•˜κΈ°κ°€ μ–΄λ €μ›Œμ„œ μ“°λ ˆκΈ° μˆ˜μ§‘μ΄ ν•„μš”ν•˜λ‹€.

 

(7) 파일 μ‹œμŠ€ν…œ 예

FAT(File Allocation Table)

  • IBMμ—μ„œ κ°œλ°œν•œ 파일 μ‹œμŠ€ν…œμœΌλ‘œ 자주 쓰이고 μžˆλ‹€.
  • FAT12 κ΅¬μ‘°λŠ” MS-DOS 3.0κΉŒμ§€μ˜ νŒŒμΌμ‹œμŠ€ν…œμœΌλ‘œ ν˜„μž¬ μ“°μ§€ μ•ŠλŠ”λ‹€.
  • FAT32 κ΅¬μ‘°λŠ” Windows 95, 98, Meμ—μ„œ μ œκ³΅ν•˜κ³ , 2TB λ³Όλ₯¨ λ””μŠ€ν¬ 지원(WindowsλŠ” 32GBκΉŒμ§€ 지원), 파일 이름 256문자 지원, 4GB 파일 ν¬κΈ°κΉŒμ§€ μ§€μ›ν•œλ‹€. (단점 : μš©λŸ‰ μ œν•œ)
  • Ex) FAT or FAT64 κ΅¬μ‘°λŠ” 4GB파일 이상 μ§€μ›ν•˜κ³ , NTFS보닀 가볍닀.

NTFS(New Technology File System)

  • MSμ‚¬μ—μ„œ κ°œλ°œν–ˆκ³ , λŒ€μš©λŸ‰μ˜ νŒŒμΌμ„ μ§€μ›ν•œλ‹€. (μ•ˆμ •μ )
  • Windows NT, Windows XP, Windows Vista, Windows 7μ—μ„œ μ œκ³΅ν•œλ‹€.

UFS(Unix File System)

  • Unix 및 Unix 계열 운영 μ²΄μ œμ— 쓰인닀.

Ext(Extended File System)

  • Linux의 기본적인 파일 μ‹œμŠ€ν…œμ΄λ‹€.
  • Ext1λΆ€ν„° Ext4κΉŒμ§€ 있음.

 

728x90