본문 바로가기
Lecture/OS

요구 페이징

by YUNZEE 2023. 11. 16.
728x90

프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 것이 가져오기 정책이다. 일반적인 방법은 프로세스가 요청할 때 메모리로 가져오는 것으로 이를 요구 페이징이라고 한다. 

 

예를 들어 메모리에는 포토샵의 본체를 프로그램만 올리고 필터는 사용자가 필요로 할 때마다 메모리로 가져오는 것이 효율적이다. 포토샵의 예와 같이 프로그램 일부만 가져와 실행하고 사용자가 특정 기능을 요구할 때 해당 모듈을 메모리에 올리면 메모리의 절약과 효율적 관리, 프로세스의 응답 속도 향상 등의 효과를 볼 수 있다. 이처럼 사용자가 요구할 때 해당 페이지를 메모리로 가져오는 것을 요구 페이징 demand paging이라고 한다.

 

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

가상 메모리의 크기는 물리 메모리와 스왑 영역을 합친 것이다. 이때 스왑 영역은 하드디스크에 존재하나 메모리 관리자가 관리하는 것으로, 가상 메모리의 구성 요소 중 하나다. 스왑 영역에서 물리 메모리로 데이터를 가져오는  스왑인과 물리 메모리에서 스왑 영역으로 데이터를 내보내는 스왑아웃을 나타낸다.

 

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

접근 비트:  access bit: 페이지가 메모리에 올라온 후 사용한 적이 있는지 알려준다.

변경 비트: modified bit: 페이지가 메모리에 올라온 후 데이터 변경이 있었는지 알려준다.

유효 비트: valid bit: 실제 메모리가 있는지를 나타낸다.

읽기 비트, 쓰기 비트, 실행 비트: read bit, wirte bit, execute bit = 권한 비트 rights bit

 

페이지 부재

물리 메모리와 스왑 영역에 저장된 페이지 매칭

프로세스가 페이지를 요청했을 때 그 페이지가 메모리에 없는 상황을 페이지 부재 page fault라고 한다.

페이지 부재가 발생했을 때 메모리 관리자가 어떤 작업을 하는지 보여준다. 프로세스가 페이지 3을 요청하면 페이지 테이블의 유효 비트가 1이기 때문에 페이지 부재가 발생한다.

메모리 관리자는 스왑 영역의 0번에 있는 페이지를 메모리의 비어 있는 프레임인 5로 가져온다(스왑인). 프레임 5에 페이지가 들어오면 PTE 3의 유효 비트는 1에서 0으로, 주소 필드 값은 0에서 5로 바뀐다. 그러면 메모리 관리자는 프레임 5로 접근하여 해당 데이터를 프로세스에 넘긴다.

페이지 부재 발생 시의 조치

 

대상 페이지의 스왑아웃

 

1. 해당 페이지의 유효 비트가 1이다. 즉 페이지 부재가 발생한다.

2. 메모리가 꽉 차 있는 상태이기 때문에 스왑 영역에 있는 페이지 E를 가져오기 위해 메모리의 페이지 중 하나를 스왑 영역으로 내보내야 한다. (스왑아웃)

3. 이에 따라 대상 페이지 PTE 0의 유효 비트가 0에서 1로, 주소 필드 값이 스왑 주소 1에서 프레임 3으로 바뀐다.

4. 스왑 영역 1번에 있던 페이지E가 프레임 3으로 올라간다.(스왑인)

5. 이에 따라 PTE 4의 유효 비트가 1에서 0으로, 주소 필드 값이 스왑 주소 1에서 프레임 3으로 바뀐다.

 

* 작업할 때마다 스왑아웃과 스왑인을 해주면서 실행 속도가 늦어짐

 

퀴즈

1. 사용자가 요구할 때 해당 페이지를 메모리로 가져오는 것을 무엇이라고 하는가?

2. 스왑 영역에서 물리 메모리로 데이터를 가져오는 것을 무엇이라 하는가?

3. 물리 메모리에서 스왑 영역으로 데이터를 내보내는 것을 무엇이라 하는가?

4. 페이지 테이블 엔트리의 구성 중 실제 메모리가 있는지를 나타내는 것을 무엇이라 하는가?

5. 프로세스가 페이지를 요청했을 때 그 페이지가 메모리에 없는 상황을 무엇이라 하는가?

728x90

'Lecture > OS' 카테고리의 다른 글

스레싱과 프레임 할당  (2) 2023.11.23
페이지 교체 알고리즘  (2) 2023.11.22
세그먼테이션 기법  (0) 2023.11.15
페이징 기법  (0) 2023.11.14
가상 메모리  (2) 2023.11.09