본문 바로가기
컴퓨터과학/운영체제

[운영체제] 가상 메모리 (Virtual memory)

by 윤호 2021. 1. 22.

Virtual memory

  • 프로그램을 당장 실행에 필요한 부분만 실제 메모리에 올려서 실행

    • 프로그래머는 메모리 크기 제약에서 자유로워질 수 있음
    • 논리 메모리 개념을 통해 엄청나게 큰 메모리 구성 가능
    • 구현이 어려움
    • 잘못 사용하면 성능 저하가 심함
    • 시스템이 멈춰 버릴 수도...
  • MMU(Memory Management Unit)

    • 가상 주소를 물리 주소로 빠르게 맵핑

Demand Paging

  • Valid-Invalid Bit
  • page fault : i인 프레임에 접근하는 경우
    • 아예 참조할 수 없는 경우
      • abort
    • 메모리에 없을 뿐인 경우
      • 메모리에서 비어있는 프레임을 찾음
      • 찾은 페이지를 프레임으로 swap in
      • 페이지 테이블에서 i를 v로 바꿈
      • 이전 프레임으로 돌아가 재실행
  • pure demand paging : 프로그램을 처음 시작할 때 부터 page fault일 경우
    • 모든 프레임을 가져오는 과정이 demand paging임
  • 하드웨어 지원
    • valid-invalid bit를 갖는 페이지테이블을 제공해야함
    • 보조메모리의 swapping 기능 제공
    • Instruction restart 기능 제공
  • Copy-On-Write
    • 자식 프로세스가 부모프로세스를 복제할 경우 -> 메모리 페이지 내의 중복
    • 자식 프로세스가 부모 프로세스의 어떤 페이지라도 수정시
      • 복사하여 수정후 수정된 페이지 따로 저장

댓글