요구 페이징

프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 것은 가져오기 정책이다.

요구 페이징의 개요

컴퓨터를 오래 켜두면 시스템이 느려지는 이유는 작업을 하지 않고 쉬는 프로세스좀비 프로세스가 메모리를 차지하여 메모리 관리가 복잡해지기 때문이다.

용량이 큰 프로세스를 실행한다고 가정하면 운영체제는 프로세스를 구성하는 모듈을 전부 메모리에 올리지 않는다. 필요한 모듈만 메모리에 올려 실행하고 나머지 모듈은 필요하다고 판단될 때 메모리로 불러온다.

프로세스의 일부만 메모리로 가져오는 이유⁉️

ex) 포토샵

포토샵과 같이 프로그램의 일부만 가져와 실행하고 사용자가 특정 기능을 요구할 때 해당 모듈을 메모리에 올리면 메모리의 절약, 메모리의 효율적 관리, 프로세스의 응답 속도 향상등의 효과를 볼 수 있다.

이처럼 사용자가 요구할 때 해당 페이지를 메모리로 가져오는 것을 요구 페이징이라고 한다.

미리 가져오기는 요구 페이징과 반대로 앞으로 필요할 것이라고 예상되는 페이지를 미리 가져오는 방식이다.

미리 가져오기의 대표적인 경우가 캐시이다. 캐시는 앞으로 필요할 것이라고 예상되는 부분을 고속의 캐시 메모리에 가져다 놓음으로써 시스템의 성능을 향상한다. 그러나 미리 가져온 데이터가 쓸모없을 경우 피해가 매우 크다. 따라서 현대 운영체제는 요구 페이징을 기본으로 사용하고 있다.

페이지 테이블 엔트리의 구조

가상 메모리의 크기는 물리 메모리와 스왑 영역을 합친 것이다. 스왑 영역은 하드디스크에 존재하나 메모리 관리자가 관리하는 영역이다.

스왑인 : 스왑 영역에서 물리 메모리로 데이터를 가져오는 것

스왑아웃 : 물리 메모리에서 스왑 영역으로 데이터를 내보내는 것

페이지가 스왑영역에 있는 경우⁉️

  1. 요구 페이징으로 인해 처음부터 물리 메모리에 올라가지 못한 경우
  2. 메모리가 꽉 차서 스왑 영역으로 옮겨 온 경우