미새문지

크래프톤 정글 week09, day73 - inode, pintos project 2 end 본문

크래프톤 정글/TIL

크래프톤 정글 week09, day73 - inode, pintos project 2 end

문미새 2024. 3. 20. 23:56
728x90

inode

파일 시스템에서 inode(index node의 줄임말)는 파일이나 디렉터리의 메타데이터를 저장하는 데이터 구조이다.

 

이 메타데이터에는 파일의 크기, 소유권(사용자 ID와 그룹 ID), 접근 권한, 파일 내용의 위치 정보, 생성 시간, 마지막 수정 시간, 마지막 접근 시간 등이 포함되며, inode는 파일의 실제 내용을 저장하지 않고, 파일의 속성과 파일 데이터가 저장된 디스크 상의 위치만을 가리키는 역할을 한다.

inode의 특징

  • 고유한 식별자
    • 파일 시스템 내에서 각 inode는 고유한 번호로 식별되고, 이 번호를 통해 파일 시스템은 특정 파일이나 디렉터리의 메타데이터에 접근할 수 있다.
  • 메타데이터 저장
    • inode는 파일의 소유자, 그룹, 파일 모드(읽기, 쓰기, 실행 권한), 타임스탬프(생성, 수정, 접근 시간), 파일의 크기, 파일 데이터의 블록 포인터 등을 저장한다.
  • 데이터 블록 포인터
    • inode는 파일 데이터가 저장된 블록의 위치를 가리키는 포인터를 포함하며, 이 포인터를 통해 파일 시스템은 파일의 실제 내용을 디스크에서 찾을 수 있다.
  • 고정 크기
    • 시스템마다 다르지만, 일반적으로 모든 inode는 고정된 크기를 가지는데, 이는 파일 시스템의 설계와 효율성에 영향을 준다.
  • 디렉터리
    • 디렉터리도 파일의 한 종류로 간주되어 inode를 가진다. 디렉터리의 inode는 해당 디렉터리에 포함된 파일과 하위 디렉터리의 이름 및 해당 inode 번호를 포함하는 목록을 가리킨다.

 

inode의 한계와 문제점

  • 고정된 수
    • 파일 시스템을 생성할 때, inode의 총 수가 고정되는데, 이는 inode가 고갈될 수 있음을 의미하며, 이는 파일 시스템에 더 이상 파일이나 디렉터리를 생성할 수 없게 만들 수 있다.
  • 하드 링크
    • inode는 하드 링크를 통해 여러 이름(경로)을 가질 수 있는 파일의 구현을 가능하게 한다. 하지만, 이는 또한 파일을 삭제하거나 관리할 때 복잡성을 증가시킬 수 있다.

< 마지막 테스트 >

94개의 테스트가 끝나고 1개의 테스트만 남았다. 시스템 콜 부분은 싹 다 해결했지만 multi-oom 테스트가 실패했는데, 이 부분은 구글링을 해본 결과 모든 메모리 누수를 막고 파일 생성에 제한을 둬야 하는 것 같다. 열심히 찾아보고 수정해봤으나 해결이 안되어 유종의 미로 테스트 한 개를 남기고 WIL을 팀원과 함께 작성했다. 3주간 핀토스 개빡세게 달린 재희님과 강민님에게 건배🍺

WIL 및 코드 정리는 내일부터 올릴 예정이다.


팀원 블로그

https://jaenam615.github.io/

 

Blog

The official Hydejack blog. Version updates, example content and how-to guides on how to blog with Jekyll.

jaenam615.github.io

https://erin-loft.tistory.com/

 

다락방

치-타

erin-loft.tistory.com

 

728x90