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

[운영체제] 가상 메모리 (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

  • 자식 프로세스가 부모프로세스를 복제할 경우 -> 메모리 페이지 내의 중복
  • 자식 프로세스가 부모 프로세스의 어떤 페이지라도 수정시
    • 복사하여 수정후 수정된 페이지 따로 저장

댓글