File System Case Studies_운영체제(14)

조권휘·2023년 1월 5일
0

운영체제

목록 보기
14/14

UNIX FS

On-disk layout

  • Boot block : boot volume/boot loader를 가리키는 block
  • Super block : 구성 정보(inode, freelist, datablock의 개수, 위치 등)를 담고 있는 block
  • I-node List(Table) : 모든 inode는 같은 size이고, inode list의 index를 참조하는 block
  • Data Blocks : 실제 데이터를 담고 있는 block

I-node

  • Ex) 4KB/block, 12개 → 4KB 12(direct) + 4KB 12(single indirect) + 4KB 12 12(double) + 4KB 12 12 * 12(triple)
  • 1개의 block에 담을 pointer 수 : if block pointer(address) = 4B → 1024개 담을 수 있다.
  • 즉, direct는 4KB * 1024(K) = 4MB의 file size

Directory

  • <file name, inode#> 형태의 array
  • hard link / soft link와 inode의 관계

Fast File System(FFS)

Original File system Problem

  • file이 시간이 지남에 따라 이를 구성하는 block이 흩어진다.
  • file의 inode와 block이 다른 cylinder에 담겨지는 경우가 생긴다.
  • 한 directory를 구성하는 file끼리도 흩어져있는 경우가 있다.
  • block size가 너무 작은 문제도 있다.

FFS

  • 기존 system이 쉽게 만들어진 반면 성능이 별로 좋지 못하다. 특히 seeking time이 길다.
  • BSD Unix에서 기존의 file system을 개선한 방식이다.
  • 한 원판의 인접한 cylinder들을 grouping을 하여 seek time을 줄였다.
  • 같은 directory안에 있는 file들끼리도 같은 cylinder에 위치하도록 한다.
  • inode와 file의 data block도 같은 cylinder에 위치하게 한다.
  • disk의 utilization, response time을 향상시켰다.

Ext2

Ext2 features

  • 각 관리자가 block size를 1~4KB로 설정할 수 있도록 하였다.
  • I-node의 수를 설정할 수 있다.
  • disk block을 group으로 partitioning한다.
  • file에 data block을 미리 할당해서 file fragmentation을 줄인다.
  • symbolic link를 효과적으로 한다.

Disk layout

  • Super Block : file system 전체에 대한 metadata를 저장하고 있다.
    • inode, block수, free block, group당 inode, block수 등..
    • 다른 group에도 동일한 정보들이 존재한다.
  • Group descriptors : free block 수, inode, bitmap...
    • system이 사용되면서 각 group마다 정보가 달라진다.

Block group size

  • block bitmap은 한 개의 block 안에 저장되어야한다.
  • 한 block이 b개의 byte로 구성된 block이라면, 그 group에서 support할 수 있는 block의 수는 8b개이다.
  • ex) 8GB Ext2 partition, 4KB block size
    • 4KB가 가리킬 수 있는 block의 수는 32KB개의 data block을 가리킬 수 있다. → 32K * 4K = 128MB
    • 8GB/128MB = 64개의 group이 만들어진다.

FAT file system

  • Boot sector에서 volume이 bootable하면 boot loader를 가리키거나 이를 가리키는 code를 담고 있다.
  • FAT2는 FAT1의 copy로 FAT1이 깨졌을 때 백업을 하기 위해 사용된다.
  • FAT32부터는 Root Dir.가 노란 블록 내부에 포함된다.
profile
안녕하세요 :) Data/AI 공부 중인 한국외대 컴퓨터공학부 조권휘입니다.

0개의 댓글