Virtual Memory
실제 메모리보다 더 큰 용량을 사용하기 위해 논리주소와 물리주소를 매핑하여 메모리 관리하는 방식
마치 메모리가 무한대인 것처럼 동작하게 하는 Swapping이 핵심이며 여기서는 Paging단위를 사용
Demand Paging
프로세스의 모든 페이지가 아닌 순간순간 필요한 페이지만 메인 메모리에 적재하고, 나머지는 모두 가상 메모리에 적재하는 방식
페이지가 메인 메모리(물리적 메모리)에 적재되어 있는 않은 상태를 Invalid로 표시
Page Fault
지금 필요한 페이지가 실제 메모리에 올라와있지 않을때 발생
과정
1. 논리적 주소 요청이 들어온다.
2. 페이지 테이블에 접근해서 Valid/Invalid 확인했더니 Invalid여서, Trap을 걸어 운영체제에게 요청한다.
3. 운영체제는 하드디스크에 있는 해당 페이지를 꺼낸다.
4. 메인 메모리에 해당 페이지를 올린다.
5. 페이지 테이블에서 해당 페이지를 매핑시킨 후 Valid표시로 변경한다.
Page Replacement Algorithm
Page fault가 발생하였지만 메인 메모리에 빈공간이 없어서 페이지 공간을 확보해야하는 경우
어떤 페이지를 뺄지 결정하는 알고리즘
FIFO (First-in First-out)
가장 먼저 들어왔던 페이지, 즉 오래된 페이지와 교체
Optimal Algorithm
앞으로 가장 안쓰일 페이지와 교체
LRU Algorithm (Least Recently Used)
최근에 가장 오랫동안 사용하지 않은 페이지와 교체
'CS > 운영체제' 카테고리의 다른 글
[운영체제 OS] Memory Management (2) (0) | 2021.08.25 |
---|---|
[운영체제 OS] Memory Management (1) (0) | 2021.08.25 |
[운영체제 OS] Memory 구조 (0) | 2021.08.25 |
[운영체제 OS] Kernel Thread vs User Thread (0) | 2021.08.23 |
[운영체제 OS] 동기 VS 비동기 / Blocking vs Non-Blocking (0) | 2021.08.23 |
댓글