Virtual Memory
- (메인 메모리 크기) < (프로세스 크기)를 위해 나왔다.
- 필요한 부분만 메모리에 올림으로써 메인 메모리에 올라가는 프로세스의 크기를 줄인다.
- 페이징 과정을 걸쳐 필요한 페이지만 메모리에 적재 "요구 페이징(Demand Paging)"
Demand Paging
- 프로세스의 이미지를 backing store에 저장(swap device)
- valid bit를 페이지 테이블에 추가(1 - memory에 적재 중, 0 - memory에 없음)
- valid bit가 0인데 해당 페이지를 부르면 Page Fault 발생
- pure demand paging : 처음부터 모든 페이지를 적재시키지 않고 CPU가 요구할 때 valid를 바꾸어 페이지를 적재
- prepaging : 우선 필요할 것 같은 페이지를 적재시키고 필요할 때 다른 페이지를 적재
Page Replacement
FIFO
- First-In First-Out
- 메모리에 먼저 올라온 페이지를 먼저 내보낸다.
- victim page의 대상은 가장 먼저 메모리에 올라온 페이지
- 처음에 프로세스가 실행 될 때 최초 초기화를 시키는 역할만 진행
- 프레임의 수가 많을수록 page fault가 감소 (Belady's Anomaly)
OPT
- Optimal
- 가장 사용하지 않을 페이지를 가장 우선적으로 내보낸다.
- 미래를 알 수 없기 때문에 실질적으로 수행하기 어렵다.
LRU
- Least-Recently-Used
- 최근에 사용하지 않은 페이지를 가장 먼저 내보낸다.
- 과거를 보고 판단, 실질적으로 사용 가능!
- Global 교체 : 메모리상의 모든 프로세스 페이지에 대해 교체
- Local 교체 : 메모리상의 자기 프로세스 페이지에서만 교체
'Computer Science > Operating System' 카테고리의 다른 글
[개념] File System 1 (0) | 2021.08.12 |
---|---|
[개념] Storage Management (0) | 2021.08.12 |
[개념] Memory Management 4(Segmentation) (0) | 2021.08.12 |
[개념] Memory Management 3(Paging) (0) | 2021.08.12 |
[개념] Memory Management 2 (0) | 2021.08.12 |