7-1. 파일과 디렉토리
- 파일
- 이름, 파일을 실행하기위한 정보, 파일 관련 부가 정보(속성 또는 메타데이터)로 나뉨.
- 파일 유형 : 운영체제가 인식하는 파일 종류, 확장자를 이용.
- 시스템 호출 : 어떤 응용 프로그램도 임의로 파일조작이 불가하고, 운영체제에 위탁하여야 하며 운영체제는 파일 연산을 위한 시스템 호출 제공.
- 디렉토리 (윈도우에서의 폴더)
- 과거 운영체제에서는 1단계 디렉토리였으나, 지금은 트리 구조 디렉토리로 구성.
- 최상위 디렉토리는 루트 디렉토리로 / 로 표현.
- 절대경로 : 최상위 디렉토리부터 나타나는 경로. (ex: /home/home.jsp)
- 상대경로
- 현재 디렉토리부터 시작하는 경로. (ex:/home 에서 home.jsp의 경로는 /home.jsp)
- 현재 디렉토리를 .으로, 부모 디렉토리를 ..으로 표현하기도 함.
- 디렉토리 엔트리
- 디렉토리는 내부에 해당 디렉토리에 담겨있는 대상과 관련된 정보를 담고 있으며, 보통 테이블(표) 형태로 구성.
- 파일명과 위치를 유추할 수 있는 정보를 기본적으로 담고 있으며, 그 외 부가정보를 담기도 함.
7-2. 파일 시스템
- 파티셔닝 (partitioning)
- 저장 장치의 논리적인 영역을 구획하는 작업
- 나눠진 각 영역을 파티션이라 함.
- 파일 할당 방법
- 운영체제는 파일과 디렉토리를 블록 단위로 처리.
- 연속 할당(contiguous allocation)
- 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식
- 프로세스 메모리 할당과 마찬가지로, 외부 단편화의 문제가 있음.
- 연결 할당(linked allocation)
- 불연속 할당의 일종.
- 각 블록 일부에 다음 블록 주소를 저장하는 연결리스트로 관리.
- 연결리스트의 단점을 그대로 가지고 있음. (순서 탐색시 순번대로 순차적으로 따라가야한다는 점)
- 색인 할당 (indexed allocation)
- 불연속 할당의 일종.
- 파일의 모든 블록 주소를 색인 블록 이라는 하나의 블록에 모아 관리하는 방식.
- 운영체제는 파일과 디렉토리를 블록 단위로 처리.
- 파일 시스템
- FAT 파일 시스템 (File Allocation Table)
- 연결 할당의 단점을 보완한 파일 시스템.
- 각 블록의 다음 주소를 한데 모아 테이블 형태로 관리.
- 과거 운영체제인 MS-DOS 및 USB메모리, SD카드와 같은 저용량 저장 장치용 파일 시스템으로 많이 이용.
- FAT 파일 시스템에서 FAT는 파티션의 앞부분에 생성.
- 실행도중 FAT가 메모리에 캐시되면, 임의접근 성능이 향상.
- 유닉스 파일 시스템
- 색인 할당 기반, 유닉스 파일 시스템에서 i(index)-node 라 칭함.
- i-node에서는 파일 속성 정보와 15개의 블록 주소가 저장.
- 15개 중 12개에는 직접 블록 주소를 저장.
- 블록수가 15개 초과하여 충분하지 않다면 13번째에 간접 블록 주소를 저장.
- 그래도 충분하지 않다면 14번째에 이중 간접 블록 주소를 저장, 그래도 충분하지 않다면 15번째에 삼중 간접 블록 주소를 저장.
- FAT 파일 시스템 (File Allocation Table)
- 저널링 파일 시스템
- 작업 로그를 통해 시스템 크래시가 발생했을 때 빠르게 복구하기 위한 방법.
- 저널링 파일 시스템에서 파일 시스템을 변경하는 작업순서
- 작업 직전 파티션의 로그 영역에 수행하는 작업(변경 사항)에 대한 로그를 남긴다.
- 로그를 남긴 후 작업을 수행한다.
- 작업이 끝났다면 로그를 삭제한다.
- 마운트
- 한 저장 장치의 파일 시스템에서, 다른 저장 장치의 파일 시스템에 접근할 수 있도록 파일 시스템을 편입시키는 작업.
- 마운트한 경로로 파일 시스템이 연결되며, 외장하드나 USB 등 외부 보조 저장 장치로 쉽게 이해할 수 있다.
참고 : 혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)