OS-12) 파일 시스템
| topics | 700-컴퓨터과학 704 운영체제 |
| types | 이론 학습 |
| tags | #file-system #directory #FCB |
파일 시스템
file = 연속적인 논리 주소 공간
type: data(숫자, 문자, 이진) & program
논리 장치를 물리 장치로 매핑하여 저장장치에 대한 사용자 인터페이스를 제공한다.
- 보조 저장장치에 상주함
- Device driver: 물리 장치 제어
- 부팅 제어 블록: 첫 번째 볼륨 블록에 시스템이 OS를 부팅하는 데 필요한 정보가 포함됨
- 볼륨 제어 블록: 볼륨에 대한 세부 정보 포함
- 논리 파일 시스템: 메타데이터 정보를 관리
파일 속성
| 속성 | 설명 |
|---|---|
| 이름 | 파일 이름 |
| 식별자 (Identifier) | 파일 고유 식별자 |
| 유형 (type) | 파일 유형 |
| 위치 | 파일 위치 |
| 크기 | 파일 크기 |
| 보호 | 누가 읽고 쓰고 실행하는지 제어 |
| 시각, 날짜, 사용자 식별자 | 보호, 보안, 사용자 감시를 위해 쓰임 |
파일의 연산
- create, delete
- read, write
- open, close
- reposition within file
- truncate
열린 파일 관리를 위한 정보
| 정보 | 설명 |
|---|---|
| Open file table | 열린 파일의 상태를 추적한다 |
| File pointer | 마지막으로 읽고 쓴 위치를 가리킨다 |
| File-open count | 파일이 열린 횟수를 나타내는 카운터. 마지막 프로세스가 파일을 닫을 때 open file table에서 데이터가 제거된다 |
| 파일의 디스크에서의 위치 | 데이터 접근 정보의 캐시 |
| 접근 권한 | 프로세스별 접근 모드 정보 |
File Control Block (FCB)
파일에 관한 정보로 구성된 저장장치 구조다.
| 정보 | 설명 |
|---|---|
| file permission | 파일 권한 |
| file dates | create, write, access 시간 |
| file owner, group | 파일 소유자, 그룹 |
| file size | 파일 크기 |
| file data blocks | 파일 데이터 블록 또는 포인터 |
디스크 구조
- 디스크는 파티션으로 나누어질 수 있다
- 하나의 디스크에 여러 개의 파티션이 있을 수도 있고 여러 개의 디스크가 하나의 파티션일 수도 있다
- 볼륨: 파일 시스템을 포함하는 개체
- 각 볼륨은 장치 디렉터리 또는 볼륨 목차에서 해당 파일 시스템의 정보를 추적
- 범용 파일 시스템과 전용 파일 시스템으로 나뉜다
- 디스크 또는 파티션은 RAID 방식으로 보호될 수 있다
디렉토리
연산
- 파일 탐색, 생성, 삭제
- 디렉터리 리스팅
- 파일 이름 바꾸기
- 파일 시스템 순회
구성
| 기준 | 설명 |
|---|---|
| 효율성 | 빠른 탐색 |
| 이름짓기 | for user |
| 그룹핑 | 특성을 기준으로 논리 그룹 묶기 |
Level
| Level | 설명 |
|---|---|
| Single | 모든 사용자가 하나의 디렉토리 사용. 그룹핑, 이름짓기의 문제 발생 |
| Two | 각 사용자마다 별도의 디렉터리 배정. 경로는 이름으로, 따라서 같은 이름 사용 불가. 효율적인 탐색. 그룹핑 문제 없음 |
| Three | 효율적인 탐색, 그룹핑 가능, 현재 디렉터리 개념 존재 |
마운트
파일 시스템을 접근하려면 마운트되어야 한다.
접근 모드
접근 제어해야 함 - 누가 어떤 작업을 할 수 있는가
RWX (Read Write Execute)
유닉스/리눅스는 3개의 클래스로 나눠서 제어함 (owner, group, others)
할당 방법
| 방법 | 설명 |
|---|---|
| 연속 할당 | 각 파일은 연속된 디스크 블록 집합을 차지. 논리 블록을 물리 블록으로 매핑 |
| 연결 할당 | 각 파일은 블록 연결 리스트. 외부 단편화 없음, 압축 없음. 신뢰성에 문제가 생길 수 있고, 많은 디스크 탐색이 필요할 수 있음 |
| 색인 할당 (Indexed Allocation) | 각 파일은 데이터 블록을 가리키는 자신의 색인 블록을 가짐 |
가용 공간 리스트 관리
연결 리스트: 연속 공간 확보하기 쉽지 않음, 공간 낭비 없음, 순회할 필요 없음
성능
- 데이터와 메타데이터를 가깝게 유지
- 버퍼 캐시
관련 문서
- OS-11) 보조 저장 장치-%EB%B3%B4%EC%A1%B0-%EC%A0%80%EC%9E%A5-%EC%9E%A5%EC%B9%98.html) - 보조 저장 장치와 디스크 스케줄링
- OS-10) 가상 메모리-%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC.html) - 가상 메모리와 페이징