My Boundary As Much As I Experienced

파일 시스템 본문

Computer Basics

파일 시스템

Bumang 2023. 10. 10. 05:07

파일 시스템

- 컴퓨터에서 파일이나 자료를 쉽게 발견 할 수 있도록, 유지, 관리하는 방법이다.

즉, 저장매체에는 많은 파일이 있으므로, 이러한 파일을 관리하는 방법을 말한다.

 

- 사용자 영역이 아닌 커널 영역에서 동작

- 파일을 빠르게 읽기, 쓰기, 삭제 등 기본적인 기능을 원활히 수행하기 위한 목적

 

파일 시스템 특징

- 계층적 디렉터리 구조를 가진다.

- 디스크 파티션 별로 하나씩 둘 수 있다.

 

파일 시스템의 역할

- 파일관리 : 파일 저장, 참조, 공유

- 보조 저장소 관리 : 저장 공간 할당

- 파일 무결성 메커니즘 : 파일이 의도한 정보만 포함하고 있음을 의미

- 접근 방법 : 저장된 데이터에 접근할 수 있는 방법 제공

 

파일 시스템 개발 목적

- HDD와 메인 메모리 속도차 줄이기

- 파일 관리 용이

- HDD의 막대한 용량을 효율적으로 이용

 

주요 파일 시스템

Windows : FAT(FAT12/16/32,exFAT), NTFS

Linux : ext(ext2/3/4)

Mac OS : HFS, HFS+

Google : GFS

*GFS : Google File System으로 구글에서 사용하는 분산 파일 시스템

 

파일 시스템 구조

- 메타 영역과 데이터 영역 두가지 영역으로 구분이 된다.

- 메타 영역 : 데이터 영역에 기록된 파일의 이름, 위치, 크기, 시간정보, 삭제유무 등 파일의 정보

- 데이터 영역 : 파일의 데이터

* 윈도우 탐색기를 이용하여 검색할때 메타 영역을 탐색하면서 파일을 찾는다.

 

 

접근 방법

1. 순차 접근(Sequential Access)

현재 위치를 가리키는 포인터에서 시스템 콜이 발생할 경우 포인터를 앞으로 보내면서 read와 write를 진행. 뒤로 돌아갈 땐 지정한 offset만큼 되감기를 해야 한다. (테이프 모델 기반)

(가장 간단한 접근 방법으로, 대부분 연산은 read와 write)

 

 

 

2. 직접 접근(Direct Access)

현재 위치를 가리키는 cp 변수만 유지하면 직접 접근 파일을 가지고 순차 파일 기능을 쉽게 구현이 가능하다.대규모 정보를 접근할 때 유용하기 때문에 '데이터베이스'에 활용된다.

  1. 무작위 파일 블록에 대한 임의 접근을 허용한다. 따라서 순서의 제약이 없음
  2. (특별한 순서없이, 빠르게 레코드를 read, write 가능)

 

 

3. 기타 접근

크기가 큰 파일을 입출력 탐색할 수 있게 도와주는 방법임

(직접 접근 파일에 기반하여 색인 구축)

 

 

 

 

 

 

파일 시스템의 종류

2.1. FAT

  • FAT(File Allocation Table) 파일 시스템은 빌 게이츠와 마크 맥도널드가 1976년부터 1977년에 이르는 기간 동안 개발
  • FAT라는 이름은 어느 영역에 파일이 속해 있는지, 공간에 여유가 있는지, 또 어디에 각 파일이 디스크에 저장되어 있는지에 대한 정보를 중심으로 하는 테이블을 이용하는 것에서 비롯한다.
  • 상대적으로 간단한 파일 시스템. 성능은 상대적으로 다른 파일 시스템보다 좋지 않다. 너무나도 단순한 자료 구조 사용을 사용하고, 조그마한 파일이 많으면 공간 활용률이 적어지기 때문이다.

2.1.1. FAT12

  • MS-DOS 초기부터 주로 쓰임
  • 플로피 디스크에서 사용

2.1.2. FAT16

  • 32메가바이트 이상의 하드 디스크를 지원하기 위해 MS-DOS 3.0과 함께 나왔으며 윈도우 95까지 주로 이용되었다.
  • 최대 2기가바이트 파티션을 지원한다.

2.1.3. FAT32

  • FAT32(File Allocation Table 32) 오래되고 많이 사용되는 파일 시스템
  • 지원하는 드라이브 최대 용량 : 32GB
  • 파일 하나당 저장할 수 있는 최대 크기 : 4GB
  • 안정성이 좋다.
  • 다양한 OS, 기기에 대한 호환성이 좋다.

2.1.4. exFAT

  • exFAT(Extended File Allocation Table)는 NTFS의 호환성 문제를 극복하기 위하여 개발된 방식. FAT64라고도 한다.
  • 지원하는 드라이브 최대 용량 : 사실상 제한 없음
  • 파일 하나당 저장할 수 있는 최대 크기 : 사실상 제한 없음
  • 안정성이 떨어짐. USB 안전제거 방식이 아니라 그냥 뽑는 경우 파일 소실 가능성 존재.

2.2. NTFS

  • NTFS(New Technology File System)는 FAT32의 약점을 보완하기 위해 개발된 파일 시스템
  • 지원하는 드라이브 최대 용량 : 256TB
  • 파일 하나당 저장할 수 있는 최대 크기 : 16TB
  • 윈도우에서는 최적화되어 있으나 Apple의 MAC OS, Google의 Android, Linux와 같은 기기에서 사용에 제한이 있다.

2.3. ext

  • ext(extended file system, 확장 파일 시스템)는 리눅스용 파일 시스템 가운데 하나로, 오늘날 많은 리눅스 배포판에서 주 파일 시스템으로 쓰이고 있다.

2.3.1. ext2

  • ext(extended file system, 확장 파일 시스템)를 대체하기 위해 고안

2.4. HFS

  • 계층적 파일 시스템(Hierarchical File System, HFS)은 애플이 맥 OS를 구동하는 컴퓨터 시스템에 사용할 목적으로 개발한 파일 시스템

2.5. APFS

  • APFS 혹은 애플 파일 시스템(Apple file system, APFS)은 애플에서 macOS, iOS, watchOS, tvOS등에서 범용으로 사용하고자 만드는 파일시스템

'Computer Basics' 카테고리의 다른 글

데브옵스(DevOps)란?  (0) 2023.10.31
함수형 프로그래밍이란?  (0) 2023.10.31
메모리  (0) 2023.10.10
페이지 교체 알고리즘  (0) 2023.10.05
페이징 & 세그멘테이션  (0) 2023.10.05