카테고리 없음
[09] 파일 시스템
BGK97
2024. 5. 8. 14:57
파일과 디렉터리
파일
- 하드디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합
- 파일 관련 부가 정보를 속성 or 메타데이터라고 함
- 파일 속성과 유형
- 확장자를 읽기가 가능해야 파일을 열 수 있음!
파일 연산을 위한 시스템 호출
1. 파일 생성
2. 파일 삭제
3. 파일 열기
4. 파일 닫기
5. 파일 읽기
6. 파일 쓰기
디렉터리
- 파일들을 일목요연하게 관리하기 위해 디렉터리를 이용
- 폴더라고도 부름
- 옛날 운영체제에서는 하나의 디렉터리만 존재하여 모든 파일이 하나의 디렉터리 아래에 있었음
- 이를 1단계 디렉터리라고 함
- 현재는 트리 구조 디렉터리를 사용
- 해당 파일의 위치를 알기 위해, 경로(Path)를 사용
절대 경로와 상대 경로
- 절대 경로
- 파일이 가지는 절대적인 경로
- 루트 디렉터리에서의 자신까지의 경로
- 상대 경로
- 해당 파일을 불러오는 위치에서의 경로
- 현재 디렉터리부터 시작
디렉터리 연산을 위한 시스템 호출
1. 디렉터리 생성
2. 디렉터리 삭제
3. 디렉터리 열기
4. 디렉터리 닫기
5. 디렉터리 읽기
디렉터리 엔트리
- 디렉터리도 파일이나, 포함된 정보가 조금 특별할 뿐...
- 파일이 내부에 해당 파일과 관련한 정보를 담고 있다면, 디렉터리는 내부에 해당 디렉터리에 담겨있는 파일 등 대상과 관련된 정보를 담고 있음!
- 이를 테이블로 구성해서 사용
- 디렉터리 테이블에 공통으로 포함하는 정보가 담긴다면
- 디렉터리에 포함된 대상의 이름과 그 대상이 보조기억장치 내에 저장된 위치를 유추할 수 있는 정보가 담김
- 디렉터리 엔트리만 보아도, 무엇이 담겨있는지, 보조기억장치의 어디에 위치해있는지를 직간접적으로 알 수 있음
파일 시스템
파티셔닝과 포매팅
- 보조기억장치를 사용하려면 파티션을 나누는 작업인 파티셔닝과, 포맷 작업인 포매팅을 거쳐야 함
파티셔닝
- 저장장치의 논리적인 영역을 구획하는 작업
- 서랍을 정리할 때 칸막이를 통해 구간을 나누고, 구간마다 물품을 정리하는 것과 비슷하다!
- 이 때 나뉘어진 구역 하나하나를 파티션이라고 한다
포매팅
- 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 준비를 하는 작업을 의미
- 어떤 종류의 파일 시스템을 사용할지는 이 때 결정!
파일 할당 방법
- 운영 체제는 파일과 디렉터리를 블록 단위로 읽고 씀
- 하드 디스크의 가장 작은 저장 단위는 섹터이나, 개수가 너무 많고 크기도 작아 블록단위로 관리한다.
- 블록에 사용하는 파일을 할당해야 하는데, 이 때 할당하는 방법에는 두가지가 있음
- 연속할당
- 불연속할당
- 연결 할당
- 색인 할당
연속 할당
- 가장 간단한 방식
- 보조기억 장치내 연속적인 블록에 파일을 할당
- 첫번째 블록주소와 블록 단위의 길이만 알면됨
- 외부 단편화 발생 위험...
연결 할당
- 연속할당의 문제를 해결할 수 있는 방식
- 각 블록 일부에 다음 블록의 주소를 저장, 각 블록이 다음 블록을 가리키는 형태로 할당
- 데이터를 연결리스트로 관리하는 것!
- 단점
- 무조건 첫번 째 블록부터 하나씩 차례대로 읽어야 한다
- 임의 접근 속도가 매우 느림
- 하드웨어 고장이나 오류 발생 시, 해당 블록 이후는 접근이 안됨
- 무조건 첫번 째 블록부터 하나씩 차례대로 읽어야 한다
색인 할당
- 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리
- 임의의 위치에 접근하기 쉬움
- 색인 할당을 사용하는 파일시스템은, 디렉터리 엔트리에 파일이름과 더불어 색인 블록 주소를 명시하여 사용
- 색인 할당을 기반으로 만든 것이 유닉스 파일 시스템임
파일 시스템 살펴보기
- 파일 시스템은 크게 두가지가 있음
- FAT 파일 시스템
- 유닉스 파일 시스템
파일 시스템 살펴보기
- 연결 할당의 단점을 보완한 파일 시스템
- 각 블록에 포함된 다음 블록 주소들을 한데 모아 테이블 형태로 관리
- 이를 파일 할당 테이블이라고 함 (FAT)
- 사용 예시
- MS-DOS와 USB, SD카드와 같은 저용량 저장 장치용 파일 시스템에 사용
- 참고!! 윈도우에서는 블록대신 클러스터라는 용어를 사용
- MS-DOS와 USB, SD카드와 같은 저용량 저장 장치용 파일 시스템에 사용
- FAT 파일 시스템에서 FAT는 파티션의 앞부분에 만들어짐
- 뒤에 루트 디렉터리가 저장
- 그 뒤에 서브 디렉터리 파일들을 위한 영역
- FAT는 하드디스크의 파티션 시작 부분에 있으나 실행 도중 메모리에 캐시될 수있음
- 이러면, 다음 블록을 찾는 속도가 매우 빨라져 임의접근에도 유리해짐!