CS/운영체제

[운영체제] 파일 시스템

초오오이 2025. 2. 3. 21:23

 

 


 

1. 파티셔닝과 포매팅

  • 파티셔닝: 저장 장치의 논리적인 구역을 구획하는 작업, 칸막이처럼 보조 기억 장치의 영역을 나눔
  • 포매팅: 파일 시스템을 설정, 어떤 방식으로 파일을 관리할지 결정하고 새로운 데이터를 쓸 준비하는 작업
    • 파일 시스템에는 여러 종류가 있고 파티션마다 다른 파일 시스템을 설정할 수도 있다.
    • 포매팅까지 완료하여 파일 시스템을 설정했다면 이제 파일과 디렉터리 생성이 가능해진다

 

2. 파일 할당

  • 운영체제는 파일/디렉터리를 블록 단위로 읽고 쓴다.
  • 하나의 파일이 저장될 때 여러 블록에 걸쳐 저장된다.
  • 하드 디스크의 가장 작은 저장 단위는 섹터이지만 섹터는 크기가 작아 관리가 어렵기 때문에 보통 블록 단위로 읽고 쓴다.

 

3. 파일 할당 방법

연속 할당

  • 이름 그대로 보조 기억 장치 내 연속적인 블록에 파일 할당
  • 연속된 파일에 접근하기 위해 파일의 첫번째 블록 주소와 블록 단위의 길이만 알면 된다.
  • 디렉터리 엔트리: 파일 이름, 첫 번째 블록 주소, 블록 단위 길이
  • 구현이 단순하지만 외부 단편화가 발생할 수 있기 때문에 주로 사용되지는 않는다.

 

불연속 할당

  • 연결 할당
    • 각 블록의 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당
    • 파일을 이루는 데이터 블록을 연결 리스트 형태로 관리
    • 디렉터리 엔트리: 파일 이름, 첫 번째 블록 주소, 블록 단위 길이(or 첫 번째 블록 주소, 마지막 블록 주소)
    • 외부 단편화를 해결할 수 있지만 반드시 첫 번째 파일부터 접근해야 하기 때문에 중간 블록에 있는 파일에는 접근이 어렵다.
    • 오류가 발생할 경우 해당 블록 이후 블록에 접근이 어렵다.
  • 색인 할당
    • 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식
    • 파일 내 임의의 위치에 접근하기 용이하다.
    • 디렉터리 엔트리: 파일 이름, 색인 블록 주소