1. 파티셔닝 (Partitioning)
파티셔닝은 하나의 저장 장치(예: 하드 디스크, SSD)를 여러 개의 독립적인 논리적 영역으로 나누는 작업을 의미합니다. 각 영역을 파티션이라고 부르며, 각 파티션은 독립적으로 운영될 수 있는 저장 공간을 제공합니다. 예를 들어, 한 디스크를 여러 파티션으로 나누어 각각 다른 운영체제를 설치하거나, 데이터를 분리 저장할 수 있습니다.
- 기본 파티션 (Primary Partition): 주로 운영체제를 설치하는 데 사용되며, 디스크 하나에 최대 4개의 기본 파티션을 만들 수 있습니다.
- 확장 파티션 (Extended Partition): 디스크에 하나만 만들 수 있으며, 이 안에 여러 개의 **논리 파티션 (Logical Partition)**을 생성할 수 있습니다.
2. 포매팅 (Formatting)
포매팅은 파티셔닝된 논리적 영역에 파일 시스템을 설정하여 데이터를 저장하고 관리할 준비를 하는 작업을 의미합니다. 이 작업은 저장 장치를 새로 사용할 수 있도록 하거나, 기존 데이터를 지우고 새로운 데이터를 저장할 수 있도록 준비합니다. 포매팅은 두 가지 단계로 나뉩니다:
- 저수준 포매팅 (Low-Level Formatting): 디스크 표면에 실제로 데이터를 저장할 수 있는 물리적 구조(섹터)를 설정하는 과정입니다. 현대 디스크는 제조 단계에서 이미 저수준 포매팅이 되어 있습니다.
- 논리적 포매팅 (High-Level Formatting): 파티션에 파일 시스템을 생성하여 데이터를 어떻게 저장하고 관리할지를 결정하는 과정입니다. 파일 시스템을 선택하는 단계에서 이 작업이 수행됩니다. 예를 들어, NTFS, FAT32, ext4 등이 있습니다.
- 파일 시스템의 유형
- 블록 크기: 파일 시스템이 데이터를 관리하는 단위
- 루트 디렉토리 생성
- 논리적 포매팅 시 결정되는 주요 사항:
3. 파일 시스템과 파일 할당 방식
운영체제는 파일과 디렉터리를 블록 단위로 저장 장치에 읽고 씁니다. 블록은 파일 시스템에서 관리하는 데이터의 기본 단위입니다. 파일이 저장될 때, 한 파일이 여러 블록에 걸쳐 저장될 수 있습니다.
파일 할당 방식
- 연속 할당 (Contiguous Allocation): 파일의 모든 블록을 디스크 상의 연속된 위치에 저장하는 방식입니다. 간단하고 빠르지만, 조각화(fragmentation)가 발생할 수 있습니다.
- 불연속 할당 (Non-Contiguous Allocation): 파일의 블록을 서로 떨어진 위치에 저장할 수 있는 방식입니다.
- 연결 할당 (Linked Allocation): 각 블록이 다음 블록을 가리키는 포인터를 포함하는 방식입니다. 연속적인 블록을 요구하지 않지만, 임의 접근이 느릴 수 있습니다.
- 색인 할당 (Indexed Allocation): 각 파일에 대해 하나의 인덱스 블록을 만들어, 파일의 모든 블록에 대한 포인터를 이 인덱스 블록에 저장하는 방식입니다. 임의 접근이 효율적입니다.
4. 유닉스 파일 시스템과 i-node
유닉스 계열 운영체제(예: Linux)의 파일 시스템에서는 i-node 구조를 사용합니다. i-node는 파일에 대한 메타데이터와 파일의 데이터 블록 위치를 저장하는 데이터 구조체입니다. 각 파일마다 고유한 i-node가 있고, i-node에는 파일의 크기, 소유자 정보, 파일 유형, 접근 권한, 데이터 블록 주소 등이 포함됩니다.
- i-node 영역: 파일 시스템의 특정 영역에 i-node들이 저장됩니다.
- 데이터 영역: 실제 파일 데이터와 디렉터리 데이터가 저장되는 영역입니다.
i-node의 크기는 유한하기 때문에, 하나의 파일에 대해 직접 참조할 수 있는 블록 수가 제한됩니다. 이를 극복하기 위해, i-node는 직접 블록 주소뿐만 아니라, 간접 블록 주소(싱글, 더블, 트리플 인디렉션)를 통해 더 많은 데이터를 참조할 수 있도록 합니다.
5. 저널링 (Journaling)
저널링은 파일 시스템이 갑작스러운 시스템 종료나 충돌 등으로 인한 데이터 손상을 방지하기 위한 기능입니다. 저널링 파일 시스템에서는 파일을 수정하거나 삭제하는 등의 작업을 수행하기 전에, 그 작업 내용을 **저널(로그)**에 기록합니다. 작업이 완료되면 저널에 기록된 내용을 지워 실제 데이터에 반영합니다.
- 장점: 시스템 충돌이 발생하더라도 저널에 기록된 내용을 기반으로 파일 시스템을 복구할 수 있습니다.
- 단점: 일부 성능 저하가 발생할 수 있습니다.
'OS' 카테고리의 다른 글
[혼자 공부하는 운영체제] 프레임 할당 (0) | 2024.09.04 |
---|---|
[혼자 공부하는 운영체제] 하드웨어 인터럽트& 파이프라이닝 (0) | 2024.09.04 |
[혼자 공부하는 운영체제] 교착상태 해결방안 (0) | 2024.09.04 |
[혼자 공부하는 운영체제] 핵심개념 (0) | 2024.09.03 |
[혼자 공부하는 운영체제] 저장장치 (0) | 2024.09.03 |