파티셔닝과 포매팅
파티셔닝
저장 장치의 논리적인 영역을 구획하는 작업
포매팅
파일 시스템을 설정해서
어떤 방식으로 파일을 관리하지 결정, 새로운 데이터를 쓸 준비하는 작업으로
포매팅을 통해 파일 시스템이 결정된다
파일 시스템에는 다양한 종류가 있고
파티션마다 다른 파일 시스템을 설정할 수도 있다
포매팅까지 완료하면 파일 시스템을 설정했다면
이제 파일과 디렉터리 생성이 가능해진다
파일 할당 방법
포매팅까지 끝난 하드 디스크에 파일을 저장하는 방법은
운영체제는 파일/디렉터리를 블록 단위로 읽고 쓴다
즉, 하나의 파일이 보조기억장치에 저장될 때에는 여러 블록에 걸쳐 저장된다
사실 하드 디스크의 가장 작은 저장 단위는 섹터이지만
섹터는 크기가 작고 너무 많기 때문에
이를 관리하기 위해 섹터를 묶어 블록 단위를 사용해 파일/디렉터리를 관리하는 것이다
파일을 보조기억장치에 할당하는 방법
1. 연속 할당
2. 불연속 할당
연속 할당
이름 그대로 보조기억장치 내 연속적인 블록에 파일 할당
디렉터리 엔트리에는 파일 이름, 첫 번째 블록 주소, 블록 단위 길이가 명시된다
단점:
구현이 단순하지만 외부 단편화를 야기할 수 있다
불연속 할당 - 연결 할당
각 블록의 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당
파일을 이루는 데이터 블록을 연결 리스트로 관리
불연속 할당의 일종이기에 파일이 여러 블록에 흩어져 저장되어도 무방
디렉터리 엔트리에는 파일 이름, 첫 번째 블록 주소, 블록 단위 길이가 명시된다
단점:
반드시 첫 번쨰 블록부터 하나씩 읽어 들여야 하며
임의의 위치에서 파일을 읽어들이는 속도가 상대적으로 느리다
오류 발생시 해당 블록 이후 블록은 접근이 어렵다
불연속 할당 - 색인 할당
파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식
파일 내 임의의 위치에 접근하기 용이
디렉터리 엔트리에는 파일 이름, 색인 블록 주소
파일 시스템 살펴보기
FAT 파일 시스템
연결 할당 기반 파일 시스템
연결 할당의 단점을 보완
각 블록에 포함된 다음 블록 주소를 한데 모아 테이블(FAT, File Allocation Table)로 관리
FAT 12, 16, 32는 블록을 표현하는 비트 수를 의미한다
FAT 데이터 자체가 메모리에 캐시 될 경우에는 느린 임의 접근 속도 개선 가능
FAT 파일 시스템의 파티션 모습
파일의 속성 또한 명시가 된다
FAT 파일 시스템 예시
루트 디렉터리 > home 디렉터리 > minchil 디렉터리 > a.sh 시작 주소 > FAT 참고해서 계속 읽어 나가기
유닉스 파일 시스템
색인 할당 기반 파일 시스템
색인 블록 (i-node)은 파일의 속성 정보와 15개의 블록 주소 저장 가능
15개 블록 이상을 차지하는 파일은 어떻게 관리하나?
1. 블록 주소 중 12개에는 직접 블록 주소 저장
여기서 직접 블록은 파일 데이터가 저장된 블록을 의미
2. 1번으로 충분하지 않다면 13번째 주소에 단일 간접 블록 주소 저장
여기서 단일 간접 블록은 파일 데이터가 저장한 블록 주소가 저장된 블록을 의미
3. 2번으로도 충분하지 않다면 14번째 주소에 이중 간접 블록 주소 저장
여기서 이중 간접 블록은 단일 간접 블록들의 주소를 저장하는 블록을 의미
4. 3번으로도 충분하지 않다면 15번째 주소에 삼중 간접 블록 주소 저장
여기서 삼중 간접 블록은 이중 간접 블록들의 주소를 저장하는 블록을 의미
따라서, 유닉스 파일 시스템의 디렉터리 엔트리는
i-node가 파일 시스템의 핵심으로 i-node번호와 파일 이름만으로도 가능
유닉스 파일 시스템 예시
FAT 처럼 루트 디렉터리 영역이 따로 명시되지는 않아도
루트 디렉토리에 접근하기 위한 노드가 몇 번 노드인지 항시 기억하고 있음
따라서,
루트 i-node > 루드 디텍터리 > i-node 3 > home 디렉터리 > i-node 8 > minchul 디렉터리
> i-node 9 > a.sh 읽어 들이기
'CS > [혼자 공부하는] 운영체제' 카테고리의 다른 글
7-1] 파일 시스템: 파일과 디렉토리 (0) | 2023.06.10 |
---|---|
6-4] 가상메모리: 페이지 교체와 프레임 할당 (0) | 2023.06.10 |
6-3] 가상 메모리: 쓰기 시 복사와 계층적 페이징 (0) | 2023.06.09 |
6-2] 가상 메모리: 페이징을 통한 가상 메모리 관리 (0) | 2023.06.09 |
6-1] 가상 메모리: 연속 메모리 할당 (0) | 2023.06.08 |