운영체제

요구 페이징

정재익 2025. 7. 24. 01:32

요구 페이징은 필요한 페이지만 메모리에 적재하는 것 스와핑 페이징과 유사하다

페이지테이블에 유효-무효 비트 기법을 써서 디스크에 있는지 메모리에 있는지 구분한다

메모리에 없는 페이지에 접근하려하면 페이지 폴트 트랩 발생한다

그럼 해당 페이지를 메모리에 올리고 페이지테이블의 유효-무효 비트를 바꾼다

 

순수 요구 페이징은 어떤 페이지가 필요해지기 전에는 그 페이지를 메모리로 적재하는 않는다

극단적인 경우 페이지가 하나도 없음에도 프로세스를 실행가능하다

페이지 폴트가 연쇄 발생하며 필요한 모든 페이지가 적재되고 나면 폴트가 더 발생하지는 않는다

 

한 명령어에도 여러 개의 페이지 폴트를 일으킬 수도 있다 (명령문 한 페이지, 데이터 한 페이지 이런 방식) 이렇게 되면 심각한 시스템 저하가 일어난다.

그러나 이런일은 거의 일어나지 않는다 모든 프로그램은 참조 지역성이 있어 프로그램의 어느 한 특정 작은 부분만 한동안 집중적으로 참조하기 때문.

여기서 쓰이는 디스크 영역을 스왑 공간이라고 한다.

 

페이지 폴트 오류 처리 후 명령어 처리를 다시 시작할 수 있어야한다. 페이지 폴트가 발생하여 중단된 프로세스 상태(레지스터, 상태 코드, 명령 카운터)를 보관해 두면 다시 이 프로세스를 시작할 때 해당 페이지가 메모리로 올라와서 정확히 같은 위치 같은 상태에서 프로세스를 다시 수행 가능하다

'운영체제' 카테고리의 다른 글

단편화  (0) 2025.07.24
페이징  (0) 2025.07.24
스와핑  (0) 2025.07.24
가상메모리  (0) 2025.07.24
페이지 교체  (0) 2025.07.24