[운영체제] 파일 시스템, inode 방식에 대하여

최지수·2022년 3월 5일
6

운영체제

목록 보기
13/13
post-thumbnail
post-custom-banner

inode에 대해

운영체제에서 사용하는 파일 시스템 중 하나에요. Inode의 기본 구조는 파일 시스템을 대표하는 수퍼 블록, 그 파일의 상세 정보, 일종의 PCB아이노드 블록 그리고 실제 데이터를 담은 데이터 블록이 있어요(파일 시스템에서의 블록은 하나의 단위에요. 이 블록의 크기는 1~4KB정도에요. 따라서 하나의 파일엔 다수의 데이터 블록이 있어요).

inode와 파일의 관계

위 그림은 언급한 블록의 관계도에요.

파일은 inode 고유 값과 자료구조에 의해 주요 정보를 관리해요. 컴퓨터를 사용하는 사람은 파일 이름으로만 인식하지만, 실제 컴퓨터는 파일이름:inode로 파일과 inode 번호를 매칭시켜 인식해요.

파일 처리
1. 파일이 생성되자마자 inode 번호가 부여되요.
2. inode 블록이 생성되어 상세 정보Meta-data가 기입되요.
3. 이를 기반으로 파일을 접근해요.

inode 구조

가져온 그림은 리눅스에서 사용하는 파일 시스템인 ext에 대한 구조에요. inode 메타 데이터에는 파일 권한, 소유자 정보, 파일 사이즈, 생성 시간 등 시간 정보 및 데이터 저장 위치 등을 담고 있어요.

예시로 설명드리자면, cat 명령어는 대상 파일의 내용을 출력해요. 이에 대한 메커니즘은,

  1. inode 블록에 접근해서 파일의 정보를 읽어요.
  2. 이후 Direct Block에 접근해서 내부 데이터를 읽어와요.

Direct Block은 12개의 주소만 저장해요. 블록의 크기는 최대 4KB니까 파일의 공간은 48KB 밖에 되지 않아요. 하지만 우리가 사용하는 모든 프로그램이나 파일은 이 크기를 아득히 뛰어넘죠. 이 구조에서 어떻게 파일을 관리하면 될까요?

inode 구조와 파일 데이터

파일의 용량이 클수록 데이터 정보를 담는 Direct Block의 크기를 늘리면 비효율적이에요. 그래서 이를 Single Indirect, Double Indirect, Triple Indirect로 처리해요.

Indirect는 4KB의 블록인데, 여기 안에 데이터를 직접 처리하는게 아니라 특정 블록을 접근할 수 있게 주소를 담고 있어요.

Single Indirect의 경우 4KB / 4byte = 1024개의 데이터 주소를 담아요. 그리고 Double IndirectSingle Indirect의 주소를 1024개를 담고 있어요. 계산하면 1024 x 1024 x 4KB = 4GB정도의 데이터를 접근할 수 있어요. 마지막으로 Triple IndirectDouble Indirect의 주소를 1024개 담고 있어요. 이러한 구조를 통해 파일은 비교적 적은 블록을 가지고 있어도 대량의 데이터를 관리할 수 있게 되는거에요.

inode에 대한 내용은 여기까지에요.

profile
#행복 #도전 #지속성
post-custom-banner

0개의 댓글