[CS] 파일 시스템(File System)

giggle·2023년 8월 3일
0

📌 파일 시스템(File System)

파일(File)이란?

파일은 논리적인 저장 단위로, 관련된 정보 자료들의 집합에 이름을 붙인 것입니다. 컴퓨터 시스템의 편리한 사용을 위해 정보 저장의 일관된 논리적 관점을 제공합니다.

파일 속성(File attribute) 또는 파일의 메타데이터(metadata)는 파일 이름, 유형, 저장된 위치, 파일 사이즈, 접근 권한, 소유자, 시간(생성/변경/사용) 등 파일을 관리하기 위한 각종 정보를 말합니다.

파일 시스템(File System)이란?

운영체제와 모든 데이터, 프로그램의 저장과 접근을 위한 기법을 제공합니다. 시스템 내의 모든 파일에 관한 정보를 제공하는 계층적 디렉터리 구조로 파일 및 파일의 메타데이터, 디렉터리 정보 등을 관리합니다.

즉, 파일 시스템(File System)은 운영체제에서 데이터를 저장, 조직화, 관리하는 방법을 정의한 체계입니다. 파일 시스템은 하드 디스크나 SSD와 같은 보조 저장 장치에 파일과 디렉토리를 저장하고, 이들을 효율적으로 액세스하고 관리할 수 있도록 합니다. 파일 시스템은 사용자와 응용 프로그램이 데이터를 쉽게 저장하고 검색할 수 있도록 인터페이스를 제공합니다.

특징

  • 커널 영역에서 동작
  • 파일 CRUD 기능을 원활히 수행하기 위한 목적
  • 계층적 디렉터리 구조
  • 디스크 파티션 별로 하나씩 존재 가능
    - 파티션(Partition)은 연속된 저장 공간을 하나 이상의 연속되고 독립적인 영역으로 나누어 사용할 수 있도록 정의한 규약입니다. 하나의 물리적 디스크 안에 여러 파티션을 두는 게 일반적이지만, 여러 물리적 디스크를 하나의 파티션으로 구성하기도 합니다.

📌 접근 방법

순차 접근(Sequential Access)

  • 순차 접근은 파일을 처음부터 끝까지 순서대로 읽거나 쓰는 방식입니다.
  • 앞으로 보내면서 read와 write를 뒤로 돌아갈 땐 지정한 offset만큼 되감기를 진행합니다.
  • 테이프 드라이브와 같이 물리적인 구조가 직렬(Sequential)로 되어 있는 장치에서 사용됩니다. 그러므로 연속된 데이터를 처리하는 데에 효율적입니다.

직접 접근(Random Access)

  • 직접 접근은 파일 내의 임의의 위치에 바로 접근하는 방식입니다.
  • 현재 위치를 가리키는 cp 변수만 유지한다면 각 블록(또는 섹터) 단위로 파일 내용에 접근합니다.
  • 하드 디스크와 같이 물리적인 구조가 랜덤 액세스(Random Access)를 지원하는 장치에서 주로 사용됩니다. 따라서 순서의 제약이 없습니다.
  • 파일 내의 특정 위치로 빠르게 접근해야 할 때 유용하고 대규모 정보를 접근할 때 유용하기 때문에 '데이터베이스'에 활용됩니다.

색인 접근(Index Access)

  • 색인 접근은 파일 내용과 별도로 인덱스(index)를 사용하여 특정 레코드 또는 블록을 찾아가는 방식입니다.
  • 인덱스는 각 레코드나 블록의 위치를 기록한 데이터 구조로, 파일의 첫 부분에 위치합니다.
  • 인덱스를 사용하여 원하는 레코드나 블록의 위치를 찾아가므로 직접 접근보다는 느릴 수 있지만, 파일이 큰 경우 효율적으로 데이터에 접근할 수 있습니다.
  • 대규모 데이터베이스와 같이 많은 레코드가 있는 파일에서 사용됩니다.

📌 디렉터리 구조


참고


피드백 및 개선점은 댓글을 통해 알려주세요😊

profile
배움을 글로 기록하는 개발자가 되겠습니다.

0개의 댓글