본문 바로가기
CS/운영체제

[운영체제 OS] Virtual Memory Management

by 루시킴 2021. 8. 25.

Virtual Memory

실제 메모리보다 더 큰 용량을 사용하기 위해 논리주소와 물리주소를 매핑하여 메모리 관리하는 방식

마치 메모리가 무한대인 것처럼 동작하게 하는 Swapping이 핵심이며 여기서는 Paging단위를 사용

Demand Paging

프로세스의 모든 페이지가 아닌 순간순간 필요한 페이지만 메인 메모리에 적재하고, 나머지는 모두 가상 메모리에 적재하는 방식

페이지가 메인 메모리(물리적 메모리)에 적재되어 있는 않은 상태를 Invalid로 표시


Page Fault

지금 필요한 페이지가 실제 메모리에 올라와있지 않을때 발생

 

과정 

1. 논리적 주소 요청이 들어온다.

2. 페이지 테이블에 접근해서 Valid/Invalid 확인했더니 Invalid여서, Trap을 걸어 운영체제에게 요청한다. 

3.  운영체제는 하드디스크에 있는 해당 페이지를 꺼낸다.

4. 메인 메모리에 해당 페이지를 올린다.

5. 페이지 테이블에서 해당 페이지를 매핑시킨 후 Valid표시로 변경한다.

Page fault 과정


Page Replacement Algorithm

Page fault가 발생하였지만 메인 메모리에 빈공간이 없어서 페이지 공간을 확보해야하는 경우 

어떤 페이지를 뺄지 결정하는 알고리즘

 

FIFO (First-in First-out)

가장 먼저 들어왔던 페이지, 즉 오래된 페이지와 교체

 

Optimal Algorithm

앞으로 가장 안쓰일 페이지와 교체

 

LRU Algorithm (Least Recently Used)

최근에 가장 오랫동안 사용하지 않은 페이지와 교체

댓글