솜은 코튼

[OS] 요구 페이징 본문

OS

[OS] 요구 페이징

솜.코 2023. 5. 21. 20:08

 

 

요구 페이징

.

 

 

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

 

아래는 페이지 테이블 엔트리(PTE)의 구성을 나타낸 것이다.

이전 글에서는 PTE는 페이지 번호와 프레임 번호로 구성된다고 했는데,

정확히 말하면 페이지 번호, 플래그 비트, 프레임 번호로 구성된다.

 

 

 

 

접근 비트(a)는 페이지가 메모리에 올라온 후 사용한 적이 있는지 알려주는 비트이며, '참조 비트'라고도 한다.

변경 비트(m)는 페이지가 메모리에 올라온 후 데이터의 변경이 있었는지 알려주는 비트이며, '더티 비트'라고도 한다.

유효 비트(v)는 페이지가 실제 메모리에 있는지를 나타내는 비트이며, '현재 비트'라고도 한다.

읽기(r), 쓰기(w), 실행(x) 비트는 페이지에 대한 읽기 권한, 쓰기 권한, 실행 권한을 나타내는 비트이다.

이 세 비트를 합쳐서 '접근 권한 비트'라고도 한다.

 

 

페이지 부재

.

 

가상 메모리의 페이지 테이블에는 페이지가 물리 메모리에 있는지,

스왑 영역에 있는지 표시하기 위해 유효 비트를 사용한다.

 

유효 비트가 0일 때는 메모리에 있으므로 주소 필드에 물리 메모리의 프레임 번호가 저장되고,

유효비트가 1일 때는 스왑 영역에 있으므로 주소 필드에 스왑 영역 내 페이지의 주소가 저장된다.

 

 

 

 

 

 

예로, 가상 메모리의 페이지 0은 물리 메모리의 프레임 3에 있기 때문에

PTE 0의 유효 비트는 0, 주소 필드 값은 프레임 번호 3이다.

가상 메모리의 페이지 4는 스왑 영역의 1번에 있기 때문에

PTE 4의 유효 비트는 1, 주소 필드 값은 스왑 주소 1이다.

 

페이지 4번을 요청할 때 메모리에 없는 상황을 '페이지 부재'라고 한다.

즉, 유효 비트가 1이면 페이지 부재가 발생한다.

 

페이지 부재가 발생하면 스왑 영역에서 물리 메모리로 옮겨야 한다.

스왑 영역에 있는 페이지를 메모리의 비어 있는 프레임으로 가져온다. (Swap-In)

이때 유효 비트는 1에서 0으로 바뀌고, 주소 비트도 바뀐다.

 

 

 

 

이처럼 페이지 부재가 발생하면 위와 같은 과정을 거치고 페이지 테이블을 갱신한다.

 

 

그럼 빈 프레임이 없을 땐??

 

메모리에 있는 프레임 중 하나를 스왑 영역으로 보낸다. (Swap-Out)

이때 어떤 페이지를 보낼지 결정하는 알고리즘을 '페이지 교체 알고리즘'이라고 한다.

 

반대로 보낼 페이지 즉 '대상 페이지'는 유효 비트가 0에서 1로 바뀐다.

 

 

 

 

메모리 공간을 벗어난 세그먼테이션 오류는 프로세스를 강제 종료하지만

페이지 부재는 메모리 관리자가 스왑 영역에서 해당 페이지를 물리 메모리로 옮긴 후 작업을 진행한다.

 

 

지역성

.

 

빈 프레임이 없어 스왑 영역으로 보낼 때 앞으로 사용하지 않을 페이지를 보내는 것이 좋다.

 

지역성은 기억장치에 접근하는 패턴이 메모리 전체에 고루 분포되는 것이 아닌

특정 영역에 집중되는 성질을 말한다.

 

 

 

 

공간의 지역성은 현재 위치에서 가까운 데이터에 접근할 확률이 높은 것이다.

시간의 지역성은 현재를 기준으로 가장 가까운 시간에 접근한 데이터가 사용될 확률이 높은 것이다.

순차적 지역성은 여러 작업이 순서대로 진행되는 경향이 있다는 것이다.

 

이처럼 지역성을 고려하여 대상 페이지를 선정하면 페이지 부재를 줄이고 컴퓨터의 성능을 높인다.

 

 

 

 

 

 

 

 

* 해당 글은 '쉽게 배우는 운영체제' 책을 참고하여 작성하였습니다. 출처: 쉽게 배우는 운영체제 (조성호 지음)