Virtual Memory

Noah·2022년 8월 26일
0

OS Study

목록 보기
15/16

Virtual Memory

  • 가상 메모리를 사용하는 이유
    • 물리 메모리보다 큰 프로세스를 실행하기 위해
    • 예시) 100MB 크기를 가진 메인 메모리에서 200MB 크기의 프로세스를 실행할 때 사용
  • 가상 메모리를 사용하는 방법
    • 프로세스 이미지를 모두 메모리에 한번에 올려서 사용하지 않아도 된다
      • 현재 시점에서 필요한 부분만 메모리에 올리기
      • 보조 기억장치에 잠시 놔두는 부분 (예시)
        • 오류 처리 / 배열 일부 / 정렬 등등 -> 이런 부분들은 나중에 실행에 필요할 때 메모리에 올려서 사용한다
      • Dynamic loading과 비슷한 개념

요구 페이징

  • Demand Paging
  • 가상 메모리를 사용할 때, 프로세스의 필요한 부분만 메모리에 올려서 사용해야하므로, 이때 적용되는 개념
  • Demand Paging 말 그대로, 지금 요구되는 페이지만 메모리에 올려서 사용
  • 나머지 프로세스의 이미지들은 backing store (swap device)에 저장

페이지 결함

  • Page Fault
  • 접근하려는 페이지가 메모리에 없을 때 발생
  • Backing store에서 해당 페이지를 가져옴

여기서 질문

  • 위 내용만 살펴보았을 때, 요구페이징과 swapping이 거의 동일하게 동작하는데 두개의 차이는 무엇일까?
  • Demand paging의 실행 단위는 page!
  • Swapping의 실행 단위는 process!
  • 개념은 거의 동일하다
profile
BackEnd 개발자가 되기 위해 공부중입니다!

0개의 댓글