728x90
운영체제에 파일 시스템에서 학습해보자. 파일과 디렉터리를 관리해주는 시스템.
- 파일과 디렉터리(폴더)를 관리하는 커널의 한 부분
- 다양한 파일 시스템이있고,여러파일시스템을동시에사용할수있음
파일
- 보조기억장치의 의미있는 정보의 집합
- 구성요소
- 이름
- 실행하기 위한 정보
- 부가정보(속성, 메타데이터)
- 유형 (확장자)
- 크기
- 생성날짜
- 마지막 접근 날짜
- 마지막 수정 날짜
- 생성자
- 소유자
- 위치
파일(+ 디렉터리) 접근 단위: 블록(block)
- 운영체제가 파일의 접근하는 단위(읽고 쓰기)
디렉터리
- 계층적인 구조
- 루트디렉터리 / 최상위폴더
- 절대경로와 상대경로
- 많은 운영체제는 디렉터리를 파일과 동일하게 간주한다(중요함)
- 디렉터리 구성 정보
- 파일이름
- 위치를유추할수있는정보
- 파일 시스템의 종류에 따라 (파일 속성)
디렉터리 테이블
파일 유형
파일 시스템이 만들어지기까지
파일 시스템
- 파일과 디렉터리(폴더)를 관리하는 커널의 한 부분
- 다양한파일시스템이있고,여러파일시스템을동시에사용할수있음
- 보조기억장치 하나에 단일한 파일 시스템이 사용되는 것이 아니다
파티셔닝(partitioning): 보조기억장치의 영역을 구획하는 작업
- 파티션(partition): 보조기억장치에서 구획된 영역
- 보조기억장치에 큰 용량을 잘 관리하기 위해 파티션을 나눈다.
포매팅(format + ing)
- 파일 시스템을 만드는 작업
운영체제를 설치할 때 파티션닝과 포매팅을 설정해준다.
마운트 (mount)
- 파일 시스템에 접근할 경로 결정
- 파일 시스템을 다른 파일 시스템에 편입
파일 시스템 종류와 특성
FAT 기반 파일 시스템
- 운영체제는 보조기억장치에 접근할때는 불록 단위 접근한다.
- 파일 할당 하는 방법
- 연속적으로 블록을 할당하는 경우 → 외부 단편화 발생
- 파일을 삭제할 경우 할당할 수 없어진다.
- 불연속적으로 할당하는 방법
- 어떻게 접근하는 지에 따라 FAT, UNIX로 나뉜다.
- FAT 기반 파일 시스템: FAT(File Allocation Table)를 활용하는 파일 시스템
- 저용량 장치에서 많이 사용된다.
- USB, SD 카드
- 저용량 장치에서 많이 사용된다.
- 메모리에 캐시되어 있어서 두번 접근할 필요가없다.
- FAT
- FAT가 저장 되는 영역
- 루트
- 최상단 폴더가 어디있는 지 알아보는 영역
- 데이터
- 파일과 폴더에 해당하는 정보가 저장되는 영역
- 많은 운영체제는 디렉터리를 파일과 동일하게 간주한다
- 디렉터리 구성 정보
- 파일이름
- 위치를유추할수있는정보
- (파일 속성)
FAT 기반 파일 시스템
- FAT(File Allocation Table)를 활용하는 파일 시스템
- 디렉터리 엔트리에 파일 속성 표현
UNIX, 아이노드 기반 파일 시스템
- 아이노드(i-node)라는 색인 블록을 활용한 파일 시스템
- 색인 블록이란, 이 파일이 현재 어떤 블록에 할당되어 있는지 정보를 전부 한 곳에 모아놓은 특별한 블록
- A 파일은 / 7 / 13 / 11 에 4번에 저장됨
- 색인 블록으로 만들어진 UNiX 파일 시스템을 아이노드라고 한다.
아이노드
- 사실상 파일의 모든 것을 담고 있다
- 디렉토리의 엔트리에는 이름과 아이노드가 무엇인지 담겨있다.
대용량 파일의 경우
- 계층적인 구주로서 커다란 파일을 담을 수 있다.
파티션 내 아이노드 영역
- i-node가 가리키는 모든 정보는 데이터 영역에 있다.
- 아이노드 영역이 모드 사용되었을 경우 데이터 영역이 남아 있떠라도 파일 생성 불가하다.
다양한 파일 시스템 종류
파일 시스템을 분류할때는 큰 파일이 할당할 수 있는지 저널링 기능이 잘 지원되는지 나눈다.
NTFS
- 윈도우 운영체제에서 주로 사용되는 파일 시스템
APFS
- macOS, iOS, watchOS, tvOS에서 주로 사용되는 파일 시스템
ext2, ext3, ext4, xfs
- 리눅스 운영체제에서 주로 사용되는 파일 시스템
저널링 파일 시스템(journaling file system)
- 파일 시스템에 크래쉬가 발생했을 때 빠르게 복구하기 위한 방법
- 작업 직전 파티션의 로그 영역에 로그를 남긴다. 로그를 바탕으로 크래쉬를 복구하는 기능
- 로그를 남긴 후 작업을 수행한다. commit
- 작업이 끝났다면 로그를 삭제한다.
결론
파일 시스템은 컴퓨터에서 파일을 효율적으로 저장하고 관리하기 위한 핵심적인 구조이다. FAT 기반 파일 시스템은 USB나 SD 카드와 같은 저용량 장치에서 주로 사용되며, 간단한 구조로 되어있다. 반면 UNIX의 아이노드 기반 파일 시스템은 더 복잡하지만 대용량 파일을 효율적으로 관리할 수 있는 계층적 구조를 제공한다. 현대의 파일 시스템들은 저널링 기능을 통해 시스템 크래시 발생 시에도 데이터를 안전하게 보호하고 빠르게 복구할 수 있다. 운영체제별로 NTFS(Windows), APFS(Apple), ext4(Linux) 등 각각의 특성에 맞는 파일 시스템을 사용하여 효율적인 파일 관리를 수행하고 있다.
728x90
'Computer Science > Operating System' 카테고리의 다른 글
[Computer Science] [운영체제] 가상 메모리 관리 (0) | 2025.01.04 |
---|---|
[Computer Science] [운영체제] 동기화와 교착상태 (2) | 2025.01.01 |
[Computer Science] [운영체제] CPU 스케줄링 (0) | 2024.12.31 |
[Computer Science] [운영체제] 프로세스와 스레드 (1) | 2024.12.30 |