무요구 (Demand-zero)

lsjoon·2024년 2월 21일
0

CS & PROGRAMMING

목록 보기
12/15

Demand-zero

물리 메모리에 어떤 요구도 하지 않는다
( = 가상 메모리나 CPU에선 어떤 작업을 해도 된다 )

무요구 메모리 영역 (Demand-zero memory)

무요구 메모리 영역은 요구 페이징의 결과물

요구 페이징이라는 것은, 프로세스가 실행 후 메모리를 요청하면 페이지 테이블에 할당되었다는 표시만 해두고, 실제로 가상 메모리를 물리 메모리에 할당하지는 않음

  • 위 과정에서 어떤 요구가 발생한 곳은 가상 메모리 안의 페이지 테이블
  • 물리 메모리에는 어떤 추가적인 할당도 발생하지 않음 = 무요구

무요구 페이지 (Demand-zero page)

물리 메모리의 공유 영역(모든 프로세스가 매핑 가능)에 미리 0으로 초기화 된 페이지(demand-zero page)가 할당되어 있음
( 실제로는 디스크에 존재하는 이진수 0으로 채워진 무기명 파일을 매핑함 )

어떤 프로세스에 의해 copy-on-write 가 발생하면 demand-zero page 영역 내에서 쓰기 작업을 진행할 페이지만 가져와서 작업함

  • 실제로 쓰기 작업이 저장될 필요가 있을 때만 물리 메모리에 새롭게 해당 페이지만 할당함
    ( 작업 중에 쓰기 작업을 진행하던 프로세스가 종료되면, demand-zero page는 다시 0으로 초기화됨 )
  • 각각의 프로세스는 demand-zero page를 활용함
  • demand-zero page를 활용하는 동안, 물리 메모리에는 어떤 추가적인 할당(=요구)도 발생하지 않음
  • demand-zero page를 활용한 작업을 하다가, 그 데이터를 계속 유지해야할 필요가 있을 때만 물리 메모리를 새롭게 할당한 뒤 demand-zero page를 활용했던 프로세스의 매핑을 새로 할당된 메모리 영역으로 변경함

결론

위의 두 과정을 쉽게 이해할 수 있도록 CSAPP라는 책 자체가 demand-zero 라는 임시적인 용어를 활용한 것일 뿐이며, 개념 자체는 None of demand가 알맞음

즉, 요구 페이징copy-on-write 를 제대로 이해하기만 했다면 용어 자체는 아무 의미가 없음.

profile
중요한 것은 꺾여도 그냥 하는 마음

0개의 댓글