Machineboy空

가상메모리 ③ - 쓰기 시 복사와 계층적 페이징 본문

Computer/CS

가상메모리 ③ - 쓰기 시 복사와 계층적 페이징

안녕도라 2024. 1. 19. 10:43

페이징을 통해 외부단편화 문제를 해결할 수 있다

이외에도 페이징의 이점들이 있다.


쓰기 시 복사 (Copy on Write)

이론적인 fork()

*부모 시스템이 복제되어 자식 시스템으로 사용되는 것이 fork

  • 프로세스는 기본적으로 자원을 공유하지 않는다
  • 부모 프로세스가 적재된 별도의 공간에 자식 프로세스가 통째로 복제되어 적재
  • (자식) 프로세스 생성 시간 지연, 메모리 낭비

쓰기 시 복사 (copy on write)

 

부모 프로세스와 동일한 자식 프로세스가 복제되어 생성되면

자식 프로세스는 부모 프로세스와 동일한 프레임을 가리킴(쓰기 작업없다면 이상태 유지)

  • 부모 프로세스/자식 프로세스 둘 중 하나가 페이지에 쓰기 작업 수행 시
  • 해당 페이지는 별도의 공간으로 복제
  • 프로세스 생성 신간 절약, 메모리 절약

계층적 페이징 (Hierarchial Page Table)

  • 프로세스 테이블의 크기는 생각보다 작지 않다
  • 프로세스를 이루는 모든 페이지 테이블 엔트리를 메모리에 두는 것은 큰 낭비
  • 프로세스를 이루는 모든 페이지 테이블 엔트리를 항상 메모리에 유지하지 않을 방법

페이지 테이블을 페이징하여 여러 단계의 페이지를 두는 방식

 

계층적 페이징을 통해 모든 페이지 테이블을 항상 메모리에 적재할 필요가 없어짐

  • CPU와 가장 가까이 위치한 페이지 테이블(Outer 페이지 테이블)은 항상 메모리에 유지