본문 바로가기
정글 2기/OS 운영체제

[Pintos] Project 4_File Allocating Table(FAT) vs multi-level index

by Dean30 2021. 10. 31.
728x90

[Pintos] Project 4_File Allocating Table(FAT) vs multi-level index

 

파일 시스템에서는 1) 자료구조 2) 접근방법 이 중요하다.

 

데이터 블록의 위치를 표현하는 대표적인 방식은 inode를 이용한 방식 중 하나인 multi-level index와 linked list 개념을 이용한 File allocating table(FAT)가 있다.

 

File allocating table(FAT)

  • 자료구조 : FAT
  • 접근방법 : linked list의 table화
  • File allocating table은 linked list의 pointer를 table로 따로 관리하고 있다.
  • 메모리에 올려 사용 가능히다.
  • inode가 없다.
  • linked list는 블럭을 읽는 연산이 필요한데 이것은 따로 블럭을 읽을 필요가 없어 빠르다.
  • 중요한 정보라 디스크에 두 개 이상 존재(복사본)한다.
  • 오버헤드를 줄이기 위해 파일 시스템은 섹터의 묶음인 클러스터 단위로 할당한다.

 

 

 

multi-level index

  • 자료구조 : inode + 기타 (super block, bitmap(inode, data))
  • 접근방법 : 직, 간접 포인터
  • inode를 이용한다.
  • file 하나당 inode 하나가 존재
  • 대부분의 작은 파일은 바로 접근(직접 포인터) 가끔 큰 파일은 indirect(간접 포인터, 이중, 삼중)를 통해 접근한다.
  • 간접 포인터 이용시 disk의 data 영역에 간접 블럭(간접 포인터가 가리키고, 직접 포인터를 가지는)이 존재한다.
  • 장점 : 순차적, 무작위 접근 모두 좋으며, 용량 제한이 거의 없다.
  • 단점 : 구현이 복잡하고 간접 포인터를 반복하면 느려진다.

 

 

 

 

 

참고 자료

http://forensic.korea.ac.kr/DFWIKI/index.php/%EA%B5%AC%EC%A1%B0%EB%B6%84%EC%84%9D/FAT

 

구조분석/FAT - Digital Forensic Wikipedia

Reserved Area[편집] 이 영역은 미래를 위해 예약해 놓은 영역이다. 보통 FAT16인 경우에는 1섹터를, FAT32인 경우에는 32섹터를 할당한다. Reserved Area의 구조는 아래 그림과 같다. Boot Record[편집] 이 영역

forensic.korea.ac.kr

https://one-step-a-day.tistory.com/category/SW%EC%82%AC%EA%B4%80%ED%95%99%EA%B5%90%20%EC%A0%95%EA%B8%80/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8

 

 

// 함수 실행 flow

main
    - filesys_init
        - inode_init
        - fat_init
        - do_format : FAT 생성 후 disk에 적음 포맷
            - fat_create : fat_fs의 FAT를 메모리에 할당, root directory를 disk로
            - dir_open_root
                - dir_add : . 와 .. 파일 추가
            - fat_close : FAT boot sector와 FAT를 memory -> disk
        - fat_open : disk로 부터 load
    
    - run_action
        - fsutil_put
            - filesys_create
            - filesys_open

 

728x90

댓글