본문 바로가기

Computer Science

운영체제 - 파일시스템

 

 

 

 

 

파일 시스템

   - 운영체제가 저장매체에 파일을 사용하기 위한 자료구조 또는 알고리즘을 뜻합니다.

   - 0과 1의 데이터를 저장하기 위해 블록단위로 관리하고, 고유번호를 부여해서 관리합니다.

   - 사용자는 각 블록 고유 번호를 관리하기 어렵기 때문에, 파일 이라는 추상적 단위로 관리하게 됩니다.

 

 

 

 

파일 시스템 저장 방법

   - 가능한 연속적인 공간에 파일을 저장하는것이 효율적입니다.

   - 하지만, 외부 단편화, 파일 사이즈 변경 등 여러 문제로 불연속적인 공간에 파일저장 기능이 필요합니다. .

      > 외부 단편화 : 공간이 파편화 되어있어 여유 용량은 존재하나, 데이터를 저장하지 못하는 상태

 

   1. 블록 체인

      - 블록을 Linked List로 연결합니다.

      - 중간의 블록을 찾기 위해서는 맨 처음부터 블록 주소를 따라가야 합니다.

 

   2. 인덱스 블록

      - 각 블록에 대한 위치 정보를 기록하여 저장합니다.

      - 원하는 번호의 블록을 한번에 찾아갈 수 있습니다.

 

 

 

 

파일 시스템 종류

   - Windows : FAT, FAT32, NTFS

      > 블록 위치를 FAT라는 자료 구조에 기록합니다.

   - 리눅스(UNIX 계열) : ext2, ext3, ext4

      > 일종의 인덱스 블록 기법인 inode 방식을 사용합니다

 

   - 가장 기본이 되는 파일 시스템 방식은 inode 방식입니다..

 

 

 

 

파일 시스템과 시스템콜

   - 파일 시스템과 관련 함수 및 시스템 콜

         > 동일한 시스템콜을 사용하여 다양한 파일 시스템 지원이 가능하도록 구현합니다.

         > 운영체제가 제공하는 시스템 콜을 기반으로, 각 언어에서 라이브러리 등을 제공합니다.

 

 

 

 

inode 파일 시스템

   - 기본 구조

      - 기본적으로 블록 구조로 이루어져 있습니다.

      - super block, inode block, data block 으로 구성되어 있습니다.

 

   1) super block

      - 파일 시스템 정보 및 파티션 정보를 포함한 블록입니다.

 

   2) inode block

      - inode 고유값과 자료구조에 의해 주요 정보를 관리하며, 이를 메타 데이터라고 합니다.

      - 파일 권한, 소유자 정보, 사이즈, 생성 시간, 데이터 저장 위치 등을 포함합니다.

 

   3) data block

      - 파일에 저장된 실제 데이터를 포함한 블록입니다.

 

 

 

 

디렉토리 엔트리

   - 전체 파일 이름을 순차적으로 표시합니다.

   - 각 엔트리는 해당 디렉토리 파일 / 디렉토리 정보를 가지고 있습니다.

      예를 들어, '/' 에서 'home'을 찾고, 'home'에서 'ubuntu'를 찾고, 'text.txt'를 찾습니다, ( /home/ubuntu/text.txt )

 

 

 

 

가상 파일 시스템 (Virtual File System)

   - Network나 디바이스 관련 기술 들은 읽고 쓰는 것처럼 이루어져 있습니다.

   - 이를 파일을 읽고, 쓰는것처럼 추상화하여 파일시스템 처럼 구현할 수 있습니다.

   - 이를 가상 파일 시스템이라고 합니다.

 

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

운영체제 - 페이지 교체 알고리즘  (0) 2024.05.28
운영체제 - 페이징 시스템  (0) 2024.05.27
운영체제 - 가상메모리  (0) 2024.05.07
운영체제 - 동기화 이슈  (0) 2024.05.03
운영체제 - 스레드  (0) 2024.05.02