정글사관학교 개발일지/운영체제-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가지
- Buffer cache를 이용: read/write 시스템 콜을 이용해 파일에 접근하는 방법이 있고
- 파일 접근 방법: 파일 open()한 다음 read/write 시스템 콜! ⇒ 버퍼 캐시에 저장
- Memory-Mapped I/O: mmap()을 이용!
- 파일 일정 부분을 메모리에다가 매핑시켜놓고 쓴다.
- 매핑해놓고 나면 read/write 시스템콜하는 게 아니라 메모리에다가 읽고 쓰는! ⇒ 근데 이게 파일에 읽고 쓰는 효과가 나게 한다.
반응형