파일과 관련된 부가 정보
속성 이름 | 의미 |
---|---|
유형 | 운영체제가 인지하는 파일의 종류 |
크기 | 파일의 현재 크기와 허용 가능한 최대 크기 |
보호 | 읽기, 쓰기, 실행 권한 |
생성 날짜 | 파일이 생성된 날짜 |
마지막 접근 날짜 | 파일에 마지막으로 접근한 날짜 |
마지막 수정 날짜 | 파일이 마지막으로 수정된 날짜 |
생성자 | 파일을 생성한 사용자 |
소유자 | 파일의 소유자 |
위치 | 파일의 보조기억장치상의 현재 위치 |
파일 유형
파일 유형 | 확장자 |
---|---|
실행 파일 | exe, com, bin, 확장자 없는 파일 |
목적 파일 | ojb, o |
소스 코드 파일 | c, cpp, java, py |
워드 프로세서 파일 | xml, doc, docx |
라이브러리 파일 | lib, a, dll |
멀티미디어 파일 | mov, mp3, mp4, avi |
백업/보관 파일 | rar, zip, tar |
파일 연산을 위한 System Call
파일 생성, 파일 삭제, 파일 열기, 파일 닫기, 파일 읽기, 파일 쓰기
파일 관리를 위한 논리적 단위
디렉터리 엔트리에 해당 디렉터리가 담고 있는 파일에 대한 정보를 담고 있는 특별한 형태의 파일
모든 파일이 하나의 디렉터리 안에 있는 구조
최상위 디렉터리(루트 디렉터리) 밑에 서브 디렉터리가 있는 구조
💻 절대 경로와 상대 경로
절대 경로 (Absolute Path) : 루트 디렉터리로부터 자기 자신까지 이르는 고유한 경로
상대경로 (Relative Path) : 현재 디렉터리를 기준으로 하는 경로
디렉터리 연산을 위한 시스템 호출
디렉터리 생성, 디렉터리 삭제, 디렉터리 열기, 디렉터리 닫기, 디렉터리 읽기
가장 단순한 방법으로 파일의 정보가 레코드 순서대로 처리되는 접근 방법이다.
장점
단점
파일의 레코드를 임의의 순서로 접근할 수 있는 방법이다.
장점
단점
파일에서 레코드를 찾기 위해 색인을 먼저 찾고 대응되는 포인터를 얻는다.(순차 접근) 이를 통해 파일에 직접 접근하여 원하는 데이터를 얻는 방법이다.
장점
단점
💻 색인 순차 파일, 색인 파일
- 기본 영역(Prime Area) : 실제 레코드가 기록되는 데이터 영역으로, 각 레코드들은 키 값 순으로 저장된다.
- 색인 영역(Index Area) : 기본 영역에 있는 레코드들의 위치를 찾아가는 색인이 기록되는 영역으로, 트랙 색인 영역, 실린더 색인 영역, 마스터 색인 영역으로 분류한다.
- 오버플로 영역(Overflow Area) : 기본 영역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비로 확보해 둔 영역이다.
파일을 저장 장치 내의 연속적인 블록에 할당하는 방식
각 블록의 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키도록 할당하는 방식
즉, 파일을 이루는 데이터를 연결 리스트로 관리하는 것!
파일의 모든 블록 주소를 하나의 색인 블록에 모아 관리하는 방식
- 순차 접근 : 색인 블록에 저장된 주소에 차례대로 접근
- 임의 접근 : 색인 블록에 저장된 주소를 통해 원하는 순서에 접근
파일과 디렉터리를 보조기억장치에 깔끔하게 저장하고 접근할 수 있도록 하는 운영체제 내부 프로그램
연속된 저장 공간을 하나 이상의 연속되고 독립적인 영역으로 나누어 사용할 수 있도록 정의한 규약
하나의 물리적 디스크 안에 여러 파티션을 두는 것이 일반적이지만, 여러 물리적 디스크를 하나의 파티션으로 구성하기도 한다.
저장 장치의 논리적인 영역을 구획하는 작업으로, 하드 디스크나 SSD와 같은 대용량 저장 장치를 하나 이상의 논리적인 단위로 나누는 것을 말한다.
어떤 방식으로 파일을 저장하고 관리할 것인지에 대한 파일 시스템을 설정하는 작업이다.
💻 디렉터리 엔트리란?
디렉토리를 표현하는 데에 쓰이는 자료구조로, 파일 시스템에 따라 이를 구성하는 항목도 달라진다.
일반적으로는 파일 이름, 파일 속성 등 파일에 대한 여러가지 정보가 저장되는데, 유닉스 계열에서는 파일이름과 i-node 번호만 저장된다.
FAT를 이용하는 연결 할당 기반의 파일 시스템
각 블록에 포함된 다음 블록의 주소들을 FAT(파일 할당 테이블)라는 테이블에 저장하고, 디렉터리 엔트리에 파일 이름과 더불어 첫 번째 블록 주소(시작 블록 주소)를 명시한다. 이외에도 파일 속성 관련 정보가 들어있다.
블록 안에 다음 블록의 주소를 저장하는 연결 리스트 방식 사용하여 발생한 문제를 FAT를 통해 해결할 수 있다!
- 임의 접근 속도가 매우 느림
- 에러 발생 시 다음 블록의 데이터를 얻을 수 없음
FAT는 파티션의 앞부분에 만들어 있지만, 실행하는 도중 FAT가 메모리에 캐시될 수 있다.
FAT가 메모리에 적재된 채 실행되면 기존 연결 할당보다 다음 블록을 찾는 속도가 매우 빨라지고, 결과적으로 임의 접근에도 유리해진다. (임의 접근 성능 개선!)
i-node를 이용하는 색인 할당 기반의 파일 시스템
유닉스 파일 시스템에서는 색인 블록을 i-node라고 부른다.
i-node에는 파일 속성 정보와 15개의 블록 주소가 저장될 수 있고, 파일마다 번호가 부여된 i-node를 가진다. 이러한 i-node는 파티션 내 특정 영역에 모여 있다.
i-node 크기가 유한하여, 15개를 초과하는 블록을 차지하는 파일의 경우 i-node 하나만으로 파일의 데이터 블록을 모두 가리킬 수 없다.
블록 주소 중 12번째 주소까지는 직접적(직접 주소)으로 명시한다.
만약 파일의 데이터 블록이 12개를 넘는다면 13번째 블록 주소에 단일 간접 블록 주소를 저장한다.
단일 간접 블록
파일의 데이터가 저장된 블록이 아닌 파일 데이터를 저장한 블록 주소가 저장된 블록
그니까! 단일 간접 블록에 다음 데이터 블록 주소들을 저장하고, 단일 간접 블록 주소는 13번째 블록 주소에 저장한다는 뜻이다.
만약 이보다 더 많은 블록을 가진 파일이라면 14번째 블록 주소에 이중 간접 블록 주소를 저장한다.
이중 간접 블록
데이터 블록 주소를 저장하는 블록(단일 간접 블록)의 주소들이 저장된 블록
이중 간접 블록을 사용했는데도 저장해야 할 파일 블록 주소가 더 많다면 삼중 간접 블록 주소를 15번째 블록 주소에 저장한다.
삼중 간접 블록
이중 간접 블록의 주소들이 저장된 블록