반응형
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 시스템콜하는 게 아니라 메모리에다가 읽고 쓰는! ⇒ 근데 이게 파일에 읽고 쓰는 효과가 나게 한다.
반응형
'정글사관학교 개발일지 > 운영체제-PintOS' 카테고리의 다른 글
PintOS Project 4 - File Systems (2) Extensible Files(91일차 TIL) (0) | 2022.02.03 |
---|---|
PintOS Project 4 - File Systems (1) Indexed and Extensible Files(정글사관학교 88일차 TIL) (0) | 2022.01.30 |
운영체제 - File system (2) File system implementation (정글사관학교 86일차 TIL) (0) | 2022.01.28 |
운영체제 - File system (1) File system (정글사관학교 85일차 TIL) (0) | 2022.01.27 |
PintOS Project 3 - WIL(정글사관학교 84일차 TIL) (0) | 2022.01.25 |