[OS] Ch13-15 File System (3)

흐짜짜! 🫒 올리브·2020년 12월 12일
0

OS

목록 보기
9/9
post-thumbnail

8. Free Space Management

Linked list(Free list)

  • 빈 블록의 linked list로 관리
  • 비효율적
  • 연속적인 공간을 얻을 수 없다.
  • 하지만 공간 낭비는 없음

Bit vector

더 많이 사용

  • bit map/ bit vector로 구현
  • 각 블록은 1 bit로 표현된다. free : 1 / allocated : 0
  • 어떤 게 비어 있는지 찾기 빠르다.
  • calculation of bit number = (number of bits per word) * (number of 0-value words) + offset of first 1 bit
  • bit map은 추가적인 공간을 요구한다.(메모리에)
    block size = 2^12 bytes (4 KB)
    disk size = 2^30 bytes (1 GB)
    bit map 크기 n = 2^30/2^12 = 2^18 bits (32 KB) (2^18개의 block이 있는 것)

linux

9. Efficiency and Performance

efficiency dependent on

  • disk allocation, free space, directory algorithm
  • file directory data type(ex.i-node in Unix) ; attribute는 file 수정할 때마다 update

performance

  • disk cache : 자주 쓰이는 블록을 위한 메모리의 구분된 영역
  • synchronous write(metadata) vs. asynchronous write(data)
    disk operation
    metadata는 매번 바꿀 때마다 disk에 써준다 중요하기 때문
    data는 asynchronous
    중간에 power나가면 metadata는 남아있지만 data는 날아감
  • optimization in sequential access
    - free-behind : 다음 페이지가 요청될 때 buffer에서 페이지 지운다...? 앞에 있는 거 썼으니까 뒤에 있는 애를 위해 비워준다
    • read-ahead : 순차적으로 읽는 것 -- 다음에 읽을 게 뻔하다면 미리 읽어놓는다
      ex. 음악, 영상 재생
  • using virtual disk, RAM(power나가면 없어짐)

Various Disk-Caching Locations

Page cache

초기에는 page cache/buffer cache 나누어져 있었다.

Unified Buffer Cache

요즘에는 모든 게 다 buffer cache로 통합

10. Recovery

  • consistency checking
    data 업데이트 asynchronous, consistency checking 필요
  • back up
    • Full backup : 모든 내용
    • Incremental backup : 변경된 내용만

0개의 댓글