JUST WRITE

Virtual Memory 본문

OS

Virtual Memory

천재보단범재 2022. 1. 25. 15:48
이 글은 KOCW 강좌 중 경성대학교 양희재 교수님의 '운영체제' 강의를 정리한 글입니다.

 

Virtual Memory

Virtual Memory

Memory 크기는 그렇게 크지 않다.

Memory보다 큰 Process를 실행할 수가 없다.

이러한 문제를 해결하기 위해서 Virtual Memory를 사용한다.

Process의 모든 부분을 Memory에 Load하지 않고 필요한 부분만 Load 하는 것이다.

Demand Paging

위에서 얘기한 것처럼 Process에서 현재 필요한 부분만 Load 하는 것을 demand Paging이라 한다.

Process를 Page 단위로 분할, 그중에서 필요한 Page만 Memory에 Load 하는 것이다.

CPU에서 Process 처리 중 Memory에 필요한 Page가 있을 수 있다.

이러한 부분을 처리하기 위해 Page Table에 valid bit를 추가되었다.

valid bit값으로 현재 Page가 Memory에 Load 되어 있는지 확인할 수 있다.

Memory에 Load되지 않은 Page가 있는 곳을 Backing Store라 하며 보통 Hard Disk이다.

Page Fault

CPU에서 Process 처리 중 Memory에 필요한 Page가 없는 것Page Fault라 한다.

Page Table에서 해당 Page의 valid bit값도 없음을 나타낸다.

Page Fault 처리 과정은 아래와 같다.

  1. Page Table에서 해당 Page의 valid bit 확인
  2. CPU에 Interrupt 발생 -> 운영체제 내부 해당 ISR 진행
  3. ISR에서 Backing Store에서 필요한 Page 탐색
  4. 해당 Page를 Memory의 Frame에 할당
  5. Page Table에서 해당 Page 값 갱신(Frame 번호, valid bit)
  6. Process 계속 진행

용어 정리

  • Pure Demand Paging
    • 필요한 Page만 Memory에 Load
    • Process 초반에 Load된 Page가 없어서 Page Fault 많이 발생 -> 초반 실행 시 속도 느림
    • Memory 효율 좋음
  • Prepaging
    • 필요할 것이라 판단되는 Page를 Memory에 미리 Load
    • Page Fault 발생 가능성 적음
    • Memory 효율 적음
  • Swapping
    • 장시간 Process 진행이 없을 시 Swap Device(Backing Store)에 Process 이동
    • Demend Paging은 Page 단위, Swapping은 Process 단위로 이동

Locality of reference

Page Fault가 일어날 확률은 매우 낮다.

Memory 접근은 시간적, 공간적 지역성을 가진다.

  • 시간적 지역성
    • CPU는 Memory 읽고 시간이 지나도, 같은 Memory 부분을 읽을 가능성이 높다(예. 반복문)
  • 공간적 지역성
    • CPU는 Memory를 인접한 범위 내에서 읽을 가능성이 높다.
728x90
반응형

'OS' 카테고리의 다른 글

Allocation of Frames  (0) 2022.01.27
Page Replacement  (0) 2022.01.26
Segmentation  (0) 2022.01.21
Paging  (0) 2022.01.20
Main Memory Management  (0) 2022.01.17
Comments