정글사관학교 개발일지/운영체제-PintOS

운영체제 - File system (3) File system implementation 2 (정글사관학교 87일차 TIL)

Woonys 2022. 1. 29. 00:41
반응형

Page Cache and Buffer Cache

  • page cache
    • VM의 페이징 시스템에서 사용하는 페이지 프레임을 캐싱 관점에서 설명하는 용어
    • memory-mapped I/O를 쓰는 경우 file I/O에서도 page cache 사용!
  • Memory-mapped I/O
    • File 일부를 vm에 매핑
    • 매핑시킨 영역에 대한 메모리 접근 연산은 파일 입출력을 수행하게 한다.
  • Buffer cache
    • 파일 시스템 통한 I/O 연산은 메모리 특정 영역인 buffer cache 사용
    • 파일 사용의 locality 활용
      • 한번 읽어온 블록에 대한 후속 요청시 버퍼 캐시에서 즉시 전달
    • 모든 프로세스가 공용으로 사용하는 캐시!
    • Replacement algorithm 필요(LRU, LFU 사용 가능 → 모든 정보를 운영체제에서 관리하기 때문! page swap에서는 이게 불가능했음)
  • Unified Buffer Cache
    • 최근 OS에서는 기존 buffer cache가 page cache에 통합됨. ⇒ page cache와 buffer cache를 같이 합쳤어!

 

파일 입출력 방법 2가지

  1. Buffer cache를 이용: read/write 시스템 콜을 이용해 파일에 접근하는 방법이 있고
    • 파일 접근 방법: 파일 open()한 다음 read/write 시스템 콜! ⇒ 버퍼 캐시에 저장
  2. Memory-Mapped I/O: mmap()을 이용!
    • 파일 일정 부분을 메모리에다가 매핑시켜놓고 쓴다.
    • 매핑해놓고 나면 read/write 시스템콜하는 게 아니라 메모리에다가 읽고 쓰는! ⇒ 근데 이게 파일에 읽고 쓰는 효과가 나게 한다.

 

반응형