Overall organization2

Jin Hur·2021년 7월 1일
0

[Linux] File system

목록 보기
9/22

reference: https://pages.cs.wisc.edu/~remzi/OSTEP/, 시스템 프로그래밍, 운영체제 수업(최종무 교수님)

inode manipulation example

  • 64개의 디스크 블록으로 이루어진 파티션 가정.
  • 파일시스템 레이아웃

    inode size: 256B, a block size: 4KB -> 한 블록에 16개의 inode 저장 가능.

  • inode manipulation example
    • 루트 디렉터리에 'hello.c' 소스코드 생성 후 컴파일 -> 'a.out' 실행파일 생성
    • hello.c size: 7KB / a.out size: 70KB

    • inode for '/'(루트 디렉터리) - 0번 (0 <- i_number: the index in inode table)
      • 데이터 블록의 위치: 8
    • 8번 데이터 블록
      • <hello.c(파일 이름), 1(inode)> <- 디렉터리 엔트리(directory entry)
      • <a.out, 2>

    • inode for hello.c - 1번
      • 데이터 블록 위치: 9, 10 (7KB 이므로 두 개의 데이터 블록 필요.)
    • inode for a.out - 2번
      • 데이터 블록 위치: 11~23
      • ※ inode 자료구조에서 direct block pointer가 12개임을 가정하면, 23번 블록은 index block.
      • 11~22번 데이터 블록 => 48KB
      • 23번 인덱스 블록은 다시 24,25..29번 블록 가리킴. => 남은 22KB 내용 저장.

0개의 댓글