본문 바로가기

CS

[CS] 페이징의 이점

목차

  • 쓰기 시 복사
  • 계층적 페이지

 

페이징의 이점

저번 포스팅에서도 설명했지만 페이징은 외부적 단편화를 해결할 수 있다는 장점이 있었다.

하지만 이 외에도 여러가지 이점들이 있다.

대표적으로 프로세스 간의 페이지를 공유할 수 있다는 장점이 있다.

 

쓰기 시 복사

 

이론적인 fork( )

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

 

쓰기 시 복사

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

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

 

  • 부모 프로세스 / 자식 프로세스 둘 중 하나가 페이지에 쓰기 작업 수행 시
  • 해당 페이지는 별도의 공간으로 복제(불변 객체 같은 느낌..?)
  • (프로세스 생성 시간 절약, 메모리 절약)

 

 

계층적 페이지

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

 

계층적 페이징

 

한 프로세스를 이루는 모든 페이지 엔트리를 전부 메모리에 저장하지 않기 위해

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

 

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

 

페이지 테이블을 여러 페이지로 쪼개고 이 페이지를 가리키는 페이지 테이블 (Outer 페이지 테이블)을 두는 방식

  • 모든 페이지 테이블을 항상 메모리에 있을 필요가 없어짐
  • CPU와 가장 가까이 위치한 페이지 테이블(Outer 페이지 테이블)은 항상 메모리에 유지

 

계층적 페이징을 이용하는 환경에서의 논리 주소

 

 

  • 계층적 페이징은 3단계, 4단계로도 구성될 수 있다.
  • 하지만 계층이 너무 많아지게 되면 페이지 폴트(페이지가 스왑 영역에)가 발생했을 경우에 메모리를
  • 참조해야하는 횟수가 많아지기 때문에 계층이 많다고 반드시 좋은 것은 아니다!

 

'CS' 카테고리의 다른 글

[CS] 파일 시스템  (0) 2024.05.27
[CS] 페이지 교체와 프레임 할당  (0) 2024.05.26
[CS] 운영체제의 메모리 관리 방식 페이징  (0) 2024.05.26
[CS] 교착 상태  (0) 2024.05.26
[CS] 동기화  (0) 2024.05.26