상세 컨텐츠

본문 제목

Virtual Memory

Computer Science/OS

by yellowmarine 2024. 3. 20. 11:40

본문

  • Virtual Memory : 현재 수행되는 Process가 메모리에만 존재한다는 보장은 없다.
    • 즉, 수행되는 프로그램의 일부분만 메모리로 올라간다.
    • Logical Address Space는 Physical Address Space 보다 크거나 같아야한다.
    • Page를 Swap in 하고 out하는 것이 필요하다.
  • Virtual Memory는 Demand Paging, Demand Segmentation 기법을 통해서 표현될 수 있다.

Demand Paging

  • Page가 필요할 때에만 Memory에 올리자. (요청이 있을 때에만 Paging)
  • 즉, Page가 필요하지 않다면, Page는 Physical Memory로 로드되지 않는다.

Page Replacement

  • 비어있는 Frame이 존재하지 않을 때에는 Replacement가 필요하다 → 목표 : Page Fault를 최소한으로 줄이자!
  • 기본적인 Replacement의 과정

1. 먼저 Disk의 File System 또는 Swap Space에서 Memory 로 올라와야 하는 Page의 위치를 찾는다.

2. 비어있는 Frame 을 찾는다.

  • 만약 비어있는 Frame이 있다면 바로 사용하면 된다.
  • 하지만 비어있는 Frame이 없다면 Page Replacement Algorithm을 사용하여 Victim Frame을 찾아야 한다.(여기서 Victim Frame은 해석 그대로 Page out 되어야 하는 Page에 할당되어있는 Frame이다.)

3. 찾은 Page에 대해서 비어있는 Frame에 Page 를 할당하고, Page Table과 Frame Table 을 Update 해준다.

  1. 프로세스를 다시 실행한다.

Page Replacement Algorithms

  • FIFO
  • LRU
    • 미래에 대한 예측을 할 수 없기 때문에 LRU Algorithm을 사용한다.
    • LRU란, Least Recently Used 의 약자로, 가장 오랜 기간동안 Reference 되지 않은 Page를 교체하는 방식.
    1. Counter Implementation : 그 페이지에 언제 접근했는지 시간을 기록하여 표현하는 방법.
  • 2. Stack Implementation : Page가 참조되면, Stack의 Top으로 Page를 올려준다. 이후, Page Replacement가 필요할 때에는 Stack의 Bottom(LRU)에 있는 Page를 쫓아낸다.
  • counter base
    • 시간 개념이 없이 가장 적거나 많이 호출된 Page를 교체하자는 Algorithm이다.
    • 가장 최근이 아닌 오직 횟수만을 통해서 교체를 진행한다.
    • 각 Page마다 Reference 횟수를 기록하기 위한 Counter가 필요하다.
    • LFU Algorithm : 가장 적게 Reference 된 Page를 교체한다.
    • MFU Algorithm : 가장 많이 Reference 된 Page를 교체한다.

thrashing

  • 사용하는 프로세스가 많아질 때 어느 한계점 까지는 CPU이용율이 증가하다가 한계점 이상부터는 CPU 이용율이 떨어지는 현상.
    • CPU Utilization 감소
    • OS는 CPU 이용률이 떨어지는 것을 판단하고, Multiprogramming의 정도가 증가.
    • 때문에 또 다른 프로세스가 시스템에 추가.
    • Thrashing은 프로세스가 계속해서 Page in / Page out을 수행하게 되는 현상.

      Virtual Memory

      • Virtual Memory : 현재 수행되는 Process가 메모리에만 존재한다는 보장은 없다.
        • 즉, 수행되는 프로그램의 일부분만 메모리로 올라간다.
        • Logical Address Space는 Physical Address Space 보다 크거나 같아야한다.
        • Page를 Swap in 하고 out하는 것이 필요하다.
      • Virtual Memory는 Demand Paging, Demand Segmentation 기법을 통해서 표현될 수 있다.
      Demand Paging
      • Page가 필요할 때에만 Memory에 올리자. (요청이 있을 때에만 Paging)
      • 즉, Page가 필요하지 않다면, Page는 Physical Memory로 로드되지 않는다.
      • 비어있는 Frame이 존재하지 않을 때에는 Replacement가 필요하다 → 목표 : Page Fault를 최소한으로 줄이자!
      • 기본적인 Replacement의 과정
      1. 먼저 Disk의 File System 또는 Swap Space에서 Memory 로 올라와야 하는 Page의 위치를 찾는다.
      • 만약 비어있는 Frame이 있다면 바로 사용하면 된다.
      • 하지만 비어있는 Frame이 없다면 Page Replacement Algorithm을 사용하여 Victim Frame을 찾아야 한다.(여기서 Victim Frame은 해석 그대로 Page out 되어야 하는 Page에 할당되어있는 Frame이다.)
      3. 찾은 Page에 대해서 비어있는 Frame에 Page 를 할당하고, Page Table과 Frame Table 을 Update 해준다.
      1. 프로세스를 다시 실행한다.
      Page Replacement Algorithms
      • FIFO
      • LRU
        • 미래에 대한 예측을 할 수 없기 때문에 LRU Algorithm을 사용한다.
        • LRU란, Least Recently Used 의 약자로, 가장 오랜 기간동안 Reference 되지 않은 Page를 교체하는 방식.
        1. Counter Implementation : 그 페이지에 언제 접근했는지 시간을 기록하여 표현하는 방법.
      • 2. Stack Implementation : Page가 참조되면, Stack의 Top으로 Page를 올려준다. 이후, Page Replacement가 필요할 때에는 Stack의 Bottom(LRU)에 있는 Page를 쫓아낸다.
      • counter base
        • 시간 개념이 없이 가장 적거나 많이 호출된 Page를 교체하자는 Algorithm이다.
        • 가장 최근이 아닌 오직 횟수만을 통해서 교체를 진행한다.
        • 각 Page마다 Reference 횟수를 기록하기 위한 Counter가 필요하다.
        • LFU Algorithm : 가장 적게 Reference 된 Page를 교체한다.
        • MFU Algorithm : 가장 많이 Reference 된 Page를 교체한다.
      thrashing
      • 사용하는 프로세스가 많아질 때 어느 한계점 까지는 CPU이용율이 증가하다가 한계점 이상부터는 CPU 이용율이 떨어지는 현상.
        • CPU Utilization 감소
        • OS는 CPU 이용률이 떨어지는 것을 판단하고, Multiprogramming의 정도가 증가.
        • 때문에 또 다른 프로세스가 시스템에 추가.
        • Thrashing은 프로세스가 계속해서 Page in / Page out을 수행하게 되는 현상.
    • 2. 비어있는 Frame 을 찾는다.
    • Page Replacement

'Computer Science > OS' 카테고리의 다른 글

IPC(Inter Process Communication)  (0) 2024.03.20
Virtual Machine  (0) 2020.10.15
Multiprocessor, Multiprograming  (0) 2020.10.13
OS, DMA  (0) 2020.10.13

관련글 더보기