inode 포인터 구조

inode pointer structure

inode 포인터 구조는 파일의 데이터 블록 주소를 나열하기 위해 UFS(Unix File System)에 있는 파일의 inode에 의해 채택된 구조다.또한 리눅스 사용자들에게 인기가 있는 ext3 파일 시스템을 포함한 많은 관련 파일 시스템에서도 채택되고 있다.

구조

과거에는 이 구조가 11~13개의 포인터로 구성되었을 수 있지만 대부분의 현대 파일 시스템은 15개의 포인터를 사용한다.이러한 포인터는 (인노드에서 15개의 포인터를 가정)로 구성된다.

  • 파일 데이터 블록을 직접 가리키는 12개의 포인터(직접 포인터)
  • 단일 간접 포인터(파일 데이터 블록을 가리키는 포인터 블록을 가리키는 포인터 1개)
  • 한 개의 이중 간접 포인터(파일 데이터 블록을 가리키는 다른 포인터 블록을 가리키는 포인터 블록)
  • 삼각형 간접 포인터(파일 데이터 블록을 가리키는 다른 포인터 블록을 가리키는 포인터 블록을 가리키는 포인터 블록)

주요 기능

고정 논리 블록 크기

그 구조는 이 기사에 첨부된 도표에 부분적으로 설명되어 있다.이 구조는 이노드가 고정된 논리 블록 크기를 가진 파일 시스템에서 매우 큰 파일을 설명할 수 있게 한다.이 메커니즘의 중심은 주소 블록(간접 블록이라고도 함)이 필요한 경우에만 할당된다는 것이다.예를 들어, 12 블록 파일은 그 블록이 사용 가능한 직접 포인터의 수에 맞기 때문에 inode만을 사용하여 설명될 것이다.그러나 13블록 파일은 13번째 주소를 포함하기 위해 간접 블록을 필요로 한다.

간편한 데이터 위치

inode 포인터 구조는 파일을 연속성이 없는 블록에 쉽게 할당할 수 있을 뿐만 아니라 파일 내부의 특정 위치에 있는 데이터를 쉽게 찾을 수 있게 해준다.논리 블록 크기가 고정되어 있기 때문에 가능한 일이다.예를 들어 각 블록이 8kB인 경우 112kB ~ 120kB의 파일 데이터는 첫 번째 간접 블록의 세 번째 포인터가 가리킨다(inode pointer 구조에서 12개의 직접 포인터를 가정).

간접블록

숫자로 고정되고 파일 시스템의 특별한 부분에 할당되는 inode와는 달리, 간접 블록은 임의의 숫자로 구성될 수 있으며, 데이터 블록과 동일한 파일 시스템의 부분에 할당된다.간접 블록에서 포인터의 수는 블록 크기와 블록 포인터의 크기에 따라 달라진다.예: 512바이트 블록 크기와 4바이트 블록 포인터를 사용하여 각 간접 블록은 128개(512/4) 포인터로 구성될 수 있다.

참조

  • 대형 파일 시스템용 Ext3. LWN.net, 2006년 6월 12일.
  • Marshall Kirk McKusick; William N. Joy; Samuel J Leffler; Robert S. Fabry (February 18, 1984). "A Fast File System for UNIX" (PDF). {{cite journal}}:Cite 저널은 필요로 한다. journal=(도움말)