Virtual Memory 2
메모리 관리자 MMU 세가지 정책에 따라 메모리를 관리한다.
fetch
정책- 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정
- demand paging, pre-fetch
placement
정책- 데이터를 메모리의 어느 위치에 올려놓을지 결정
- paging, segmentation, segmentated-paging
replacement
정책- 메모리가 꽉 찼을 때 메모리 내에 있는 어떤 프로세스를 내보낼지 결정
1. Fetch 정책 - Demand Paging¶
Demand Paging¶
- 프로세스가 요청할 때 메모리로 가져오는 일반적인 MMU의 fetch 정책
- 운영체제는 프로세스를 구성하는 모듈을 전부 메모리에 올리지 않는다.
- 필요한 모듈만 메모리에 올려 실행하고 나머지 모듈은 필요하다고 판단될 때 메모리로 불러온다.
- 이를 통해 메모리를 효율적으로 관리하고 응답 속도를 향상 시킬 수 있다.
Page Table Entry¶
access bit
- 메모리에 올라 온 후 사용한 적이 있는지 알려주는 비트
- a.k.a. reference bit
modified bit
- 페이지가 메모리에 올라온 후 데이터의 변경이 있었는지 알려주는 비트
- a.k.a. dirty bit
valid bit
- 페이지가 램에 있는지를 나타내는 비트
- 1 이라면 주소 필드에 스왑 영역 내 페이지의 주소가 저장된다 (2차 메모리) ~ page fault
- 0 이라면 주소 필드에는 프레임 번호가 저장된다.
- a.k.a. present bit
write, read, excute bit
- 페이지에 대한 쓰기, 읽기, 실행 권한을 나타낸다.
Page Fault¶
- 프로세스가 요청한 페이지가 메모리에 없고 스왑 영역에 있을때 (valid bit 가 1 일때)
- MMU 는 replacement policy 에 따라 해당 페이지를 스왑 영역에서 램으로 옮겨야 한다.
2. Replacement 정책(페이지 교체 알고리즘)¶
- 무작위, FIFO
- 최적
- LRU - 시간적으로 멀리 떨어진 페이지를 스왑 영역으로 보낸다.
- LFU - 사용 빈도가 적은 페이지를 스왑 영역으로 보낸다.
- NUR - 최근에 사용한 적이 없는 페이지를 스왑 영역으로 보낸다.
Last update:
February 26, 2023
Created: December 29, 2022
Created: December 29, 2022