하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미합니다.
파일은 의미 있고 관련 있는 정보를 모은 논리적 단위를 의미
모든 파일에는 이름과 파일을 실행하기 위한 정보, 그리고 파일 관련 부가 정보가 있다. 이 부가 정보를 속성 (attribute) 또는 메타데이터 (metadata)라고 한다.
1. 파일 속성
파일 유형을 알리기 위한 방식은 파일 이름 뒤에 붙는 확장자 (extension)를 이용하는 것이다.
2. 파일 유형
파일을 다루는 모든 작업은 운영체제에 의해 이루어진다.
운영체제는 파일 연산을 위한 시스템 호출을 제공한다.
파일을 관리하기 위해 디렉터리를 이용한다.
윈도우 운영체제에서는 폴더 (folder)라고 한다.
1단계 디렉터리 (Single-level directory)
: 모든 파일이 하나의 디렉터리에 있는 경우
트리 구조 디렉터리 (tree-structured directory)
: 루트 디렉터리( / 로 표현 | root directory : 최상위 데릭터리) + 여러 서브 디렉터리(자식 디렉터리)
경로 (path) : 디렉터리를 이용해 파일 위치, 파일 이름을 특정 짓는 정보
절대 경로 (absolute path)
: 모든 파일은 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로
상대 경로 (relative path)
: 현재 디렉터리부터 시작하는 경로
운영체제는 디렉터리 연산을 위한 시스템 호출을 제공
운영체제에서는 디렉터리를 '특별한 형태의 파일'로 간주한다.
즉, 디렉터리도 파일이다. 또한 디렉터리는 보조기억장치에 테이블 형태의 정보로 저장
디렉터리 엔트리에는 디렉터리에 속한 파일들의 이름과 위치를 알 수 있는 정보 등이 포함되어 있기 때문에 이 파일들이 저장된 위치를 알 수 있다.
운영체제는
파티셔닝 (partitioning)
: 파티션을 나누는 작업
: 저장 장치의 논리적인 영역을 구획하는 작업
: 파티셔닝 작업을 통해 나누어진 영역을 파티션 (partition)이라고 한다.
포매팅(formating)
: 포맷 작업
: 어떤 종류의 파일 시스템을 사용할지 결정
: 저수준 포매팅은 저장 장치를 생성할 당시 공장에서 수애되는 물리적인 포매팅
: 논리적 포매팅은 파일 시스템을 생성하는 포매팅
운영체제는 파일과 디렉터리를 블록 (block) 단위로 읽고 쓴다.
- 장점
: 파일을 연속적으로 저장하는 방식이기에 구현이 단순- 단점
: 외부 단편화를 야기한다.
(외부 단편화 : 삭제된 파일의 블록이 각 5개 6개로 총 11개가 남지만 7개의 크기를 가진 파일을 할당 할 수 없다.)
- 장점
: 연속 할당의 문제인 외부 단편화를 해결한다.- 단점
1. 반드시 첫 번째 블록부터 하나씩 차례대로 읽어야 한다.
: 임의 접근 (random access) 속도가 매우 느리다.
: 성능 면에서 비효율적
2. 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근할 수 없다.
: 그래서 현재 연결 할당을 변형한 FAT 파일 시스템을 주로 사용한다.
2. 색인 할당 (indexed allocation)
: 파일의 모든 블록 주소를 색인 블록 (index block)이라는 하나의 블록에 모아 관리하는 방식
: 연결할당과 달리 파일 내 임의의 위치에 접근하기 쉽다.
: 색인 할당을 사용하는 파일 시스템에서는 디렉터리 엔트리에 파일 이름과 색인 블록 주소를 명시한다.
위도우에서는 클러스터라는 용어를 사용
유닉스 파일의 i-node크기는 15로 유한하다.
[해결방안]
1. 블록 주속 중 12개에는 직접 블록 주소를 저장
: i-node가 가리킬 수 있는 15개의 블록 주소 중 처음 12개에는 파일 데이터가 저장된 블록 주소가 직접적으로 명시된다. 파일 데이터가 저장된 블록을 직접 블록 (direct block)이라고 한다.
: i-node의 12개 주소는 직접 블록 주소를 저장
2. '1번' 내용으로 충분하지 않다면 13번째 주소에 단일 간접 블록 주소를 저장
: 단일 간접 블록 (single indirect block)이란 파일 데이터가 저장된 블록이 아닌 파일 데이터를 저장한 브록 주소가 저장된 블록을 의미
3. '2번' 내용으로 충분하지 않다면 14번째 주소에 이중 간접 블록 주소를 저장
: 이중 간접 블록 주소 (double indirect block)란 데이터 블록 주소를 저장하는 블록 주소를 저장하는 블록 주소가 저장된 블록을 의미
: 단일 간접 블록들의 주소를 저장하는 블록이 이중 간접 블록이다.
4. '3번' 내용으로 충분하지 않다면 15번째 주소에 삼중 간접 블록 주소를 저장
: 삼중 간접 블록 (triple indirect block)이란 이중 간접 블록 주소가 저장된 블록이다.
i-node만 알면 파일 속성과 파일 크기가 크더라도 파일 데이터를 모두가리킬 수 있다.
위도우 운영체제에서 사용되는 NT 파일 시스템 (NTFS)
리눅스 운영체제에서 사용되는 ext 파일 시스템
저널링 (journaling) 기법이란 작업 로그를 통해 시스템 크래시가 발생했을 때 빠르게 복구하기 위한 방법
시스템 크래시 : 파일 시스템 변경하는 도중에 컴퓨터가 강제로 종료되어 버리는 상황 > 파일 시스템이 훼손될 수 있다.
운영체제에서 '저장 장치를 마운트한다'라는 표현을 자주 사용한다.
이는 한 저장 장치의 파일 시스템에서 다른 저장 장치의 파일 시스템에 접근할 수 있도록 파일 시스템을 편입시키는 작업을 의미
혼자 공부하는 컴퓨터구조 + 운영체제
15. 파일 시스템 (440p - 477p)