제11장 파일시스템
1-1 파일 시스템의 개요
- 파일 시스템의 개념
- 파일을 보관/관리하는 파일 관리자를 두어 저장장치의 전체 관리를 맡기는 것
- 파일 관리자는 파일 테이블을 사용하여 파일 관리
- 사용자가 특정 파일에 접근하려면 파일 관리자로부터 파일에 접근할 수 있는 권한(키) 획득해야 함.파일 접근 권한을 파일 디스크립터라고 함
- 파일 시스템의 기능
- 파일 및 디렉터리 관리
- 접근 권한 관리
- 무결성 보장
- 백업과 복구
- 암호화
- 블록과 파일 테이블
- 블록(block) : 저장장치에서 사용하는 가장 작은 단위, 한 블록에 주소 하나 할당
- 파일테이블에는 각 파일이 어떤 블록에 저장되어 있는지에 대한 정보 저장
1-2 파일
- 파일 종류와 확장자
- 실행파일 : 운영체제가 메모리로 가져와 CPU를 이용하여 작업하는 파일
- 데이터 파일 : 실행 파일이 작업하는데 필요한 데이터를 모아놓은 파일
- 파일 연결 프로그램
- 데이터 파일을 더블클릭하며 ㄴ해당 파일을 사용하는 응용프로그램이 실행되는데 이것을 연결 프로그램이라고 함
- 파일 확장자 변경도 가능. 그러나 확장자를 바꾼다고 해도 내용이 바뀌지는 않음
- fopen : 고수준 → 기능이 많다, open : 저수준
- 파일 헤더
- 파일 헤더에는 파일의 버전 번호, 크기, 특수 정보 등 응용 프로그램이 필요한 정보 담김
- 모든 파일에 공통으로 적용되는 정보인 파일 속성은 파일 테이블에 위치(헤더x), 해당 파일에 필요한 정보를 가지고 있는 파일 헤더는 파일의 맨 앞에 위치
1-3 저장장치 관리 기법
- 파티션
- 저장장치를 2개 이상의 묶음으로 나누는 것으로 디스크를 논리적으로 분할
- 대용량 저장장치를 하나로 사용하기보다 여러개로 나누면 관리하기 편리
- 포맷
- 포맷은 저장장치의 파일 시스템을 초기화하는 작업
- 파일테이블이 없는 저장장치를 포맷하면 파일 테이블이 새로 탑재, 있는 저장장치를 포맷하면 파일 테이블 초기화
- 빠른 포맷 : 데이터는 그대로 둔 채 파일 테이블만 초기화
- 느린 포맷 : 파일 테이블을 초기화할 뿐 아니라 블록의 모든 데이터를 0으로 만들어 포맷 시간이 많이 걸림
- 저장장치를 포맷할 때 블록의 크기 지정 가능
- 조각모음
- 파일 저장과 지우기를 반복하면 중간중간 빈 공간이 생기는데 이를 조각화 또는 단편화
- 하드디스크에 조각이 많이 생기면 큰 파일이 여러 조각으로 나뉘어 저장, 이를 읽으려면 하드디스크의 여러 곳을 돌아다녀야 하므로 성능 저하. 이를 방지하려면 주기적으로 조각 모음 필요
- USB메모리나
1-4 파일 구조
- 순차 파일 구조
- 파일 내용이 하나의 긴 줄로 늘어선 형태
- 장점
- 모든 데이터가 순서대로 기록되기 때문에 저장공간에 낭비되는 부분이 없음
- 구조가 단순하여 테이프는 물론 플로피디스크나 메모리를 이용한 저장장치에도 적용 가능
- 순서대로 데이터를 읽거나 저장할 때 매우 바르게 처리됨
- 단점
- 파일에 새로운 데이터를 삽입하거나 삭제할 때 시간이 많이 걸림
- 특정 데이터로 이동할 때 직접 접근이 어려워 앞에서부터 순서대로
- 인덱스 파일 구조 → 현대 파일 시스템
- 순차 파일 구조에 인덱스 테이블을 추가하여 순차 접근과 직접 접근이 가능
- 현대의 파일 시스템은 인덱스 파일 구조로, 순차 파일 구조로 파일 저장, 인덱스 테이블을 보고 원하는 파일에 직접 접근
- 직접 파일 구조
- 저장하려는 데이터의 특정 값에 어떤 관계를 정의하여 물리적인 주소로 바로 변환하는 파일 구조
- 특정 함수를 이용하여 직접 접근이 가능한 파일 구조로, 이때 사용하는 것이 해시 함수