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

+ Recent posts