CS/운영체제
[운영체제] 파일 시스템
초오오이
2025. 2. 3. 21:23
1. 파티셔닝과 포매팅
- 파티셔닝: 저장 장치의 논리적인 구역을 구획하는 작업, 칸막이처럼 보조 기억 장치의 영역을 나눔
- 포매팅: 파일 시스템을 설정, 어떤 방식으로 파일을 관리할지 결정하고 새로운 데이터를 쓸 준비하는 작업
- 파일 시스템에는 여러 종류가 있고 파티션마다 다른 파일 시스템을 설정할 수도 있다.
- 포매팅까지 완료하여 파일 시스템을 설정했다면 이제 파일과 디렉터리 생성이 가능해진다
2. 파일 할당
- 운영체제는 파일/디렉터리를 블록 단위로 읽고 쓴다.
- 하나의 파일이 저장될 때 여러 블록에 걸쳐 저장된다.
- 하드 디스크의 가장 작은 저장 단위는 섹터이지만 섹터는 크기가 작아 관리가 어렵기 때문에 보통 블록 단위로 읽고 쓴다.
3. 파일 할당 방법
연속 할당
- 이름 그대로 보조 기억 장치 내 연속적인 블록에 파일 할당
- 연속된 파일에 접근하기 위해 파일의 첫번째 블록 주소와 블록 단위의 길이만 알면 된다.
- 디렉터리 엔트리: 파일 이름, 첫 번째 블록 주소, 블록 단위 길이
- 구현이 단순하지만 외부 단편화가 발생할 수 있기 때문에 주로 사용되지는 않는다.
불연속 할당
- 연결 할당
- 각 블록의 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당
- 파일을 이루는 데이터 블록을 연결 리스트 형태로 관리
- 디렉터리 엔트리: 파일 이름, 첫 번째 블록 주소, 블록 단위 길이(or 첫 번째 블록 주소, 마지막 블록 주소)
- 외부 단편화를 해결할 수 있지만 반드시 첫 번째 파일부터 접근해야 하기 때문에 중간 블록에 있는 파일에는 접근이 어렵다.
- 오류가 발생할 경우 해당 블록 이후 블록에 접근이 어렵다.
- 색인 할당
- 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식
- 파일 내 임의의 위치에 접근하기 용이하다.
- 디렉터리 엔트리: 파일 이름, 색인 블록 주소