2 min read

<운영체제> File System 1

<운영체제> File System 1

본 게시물은 영남대학교 곽종욱 교수님의 강의를 기반으로 작성되었습니다.


I-list 앞 부분에는 bootblock,superblock이 존재
  1. I-List
    • 여러개의 i-node로 이루어져 있다.
    • i-node는 file-attribute 중 index pointer에 대한 정보를 가지고 있다.
    • i-node의 index 포인터를 따라가면 data-block(저장공간)이 나온다.
    • 위 그림의 3개의 포인터를 가진 i-node는 파일의 크기를 분할해서 저장하고 있다.
    • directory 하위에는 파일과 sub-directory가 존재 할 수 있다
    • directory block은 i-node number와 filename으로 구성(해당 inode-number와 이름은 일반 파일이 될수도 하위 디렉토리 폴더가 될수도 있다)
  1. I-Node Pointer
    • 아래 그림의 연두색 박스가 하나의 i-node이다.
    • 분홍색 박스 하나가 하나의 i-node pointer를 나타낸다.
    • 총 15개의 포인터를 가지며, 12개는 direct pointer이다.
    • 투명한 박스는 포인터로만 사용되는 data-block이다.
    • direct pointer로 파일의 용량을 전부 data-block에 저장하지 못하면, single indirect, double indirect...순으로 포인터를 사용한다.
    • 만약 block-size가 1024이고 1025 크기만큼의 data를 저장하려고 한다면 두개의 direct pointer를 사용해야한다.-> 한 block은 1023만큼의 공간을 낭비한다.
    • 최대 파일 사이즈 구하기 : block size(8KB), pointer size(4byte)->한 block에 2048개의 포인터 수용가능
    • 계산 : (8KB * 12direct pointers) + (8KB * 2048 indirect pointers) + (8KB * 2048 * 2048) + (8KB * 2048 * 2048 * 2048) = about 64TB
i-node의 포인터 구조

최대 파일의 개수

- > depends on the number of I-node entries in I-list

최대 파일의 크기

-> depends on the number of pointers and their structures

  • Windows OS에선 block을 cluster라고 한다.