내 잡다한 노트
챕터 8. 2. 페이징 기법 본문
페이징 기법이란 물리 메모리에서 고정 분할 방식과 비슷하다.
메모리의 크기를 고정적으로 사용한다 그러다보니 관리가 수월하다.
가상 주소의 분할된 각 영역을 페이지라고 하고 물리 주소의 분할된 각 영역을 프레임이라고 부른다.
둘 다 번호를 매겨 관리한다. 또한 각각의 페이지와 프레임은 크기가 같다.
페이징 매핑 테이블
페이징 기법에서 사용하는 매핑 테이블이다.
여러 할당 기법에 따라 다르지만 보통 프레임 번호가 담긴다.
프레임 번호가 아닌 invalid가 적혀 있다면 그것은 해당 페이지가 스왑 영역에 있다는 것이다.
페이징 기법의 주소 변환
가상 주소는 0번 주소부터 시작한다 페이지의 크기를 20이라고 가정할 때,
45번 주소는 3번 페이지에 있고 3번 페이지는 프레임 5번과 매핑됐을 때 프레임 5번은 100번부터 시작할 것이고
5칸 더 가면 105번 물리 주소로 변환될 수 있다.
정형화된 주소 변환
VA = < P, D >
va는 가상주소, p는 페이지, d는 distance로 페이지의 처음 위치에서 해당 주소까지의 거리를 의미한다.
가상주소 45번이라고 한다면 VA = <3, 5>가 된다.
PA = <F, D>
pa는 물리 주소, f는 프레임, d는 distance이다.
VA = <3, 5> -> PA = <5, 5> . 가상 주소가 물리주소로 변환됐다는 뜻이다.
P는 (가상주소 / 한 페이지의 크기) 의 몫
D는 (가상주소 / 한 페이지의 크기) 의 나머지가 된다.
페이지 테이블 관리
페이지 테이블 관리가 복잡한 이유는 각 프로세스마다 페이지 테이블을 가지고 있기 때문이다.
그리고 크기도 큰 편이다. 그래서 프로세스가 많으면 많을수록 페이지 테이블의 용량도 커지게 된다.
페이지 테이블은 메모리 관리자가 자주 사용하는 자료 구조이므로 빨리 접근해야해서 운영체제 영역의
일부분에 모아 놓는다. 용량이 커지면 운영체제의 영역도 커지게 돼서 메모리의 대부분을 운영체제가 차지하게
될 수 있다.
그래서 페이지 테이블도 프로세스처럼 스왑 영역으로 보내지기도 한다.
메모리 관리자는 페이지 테이블의 위치를 빠르게 파악할 필요가 있어서 페이지 테이블 기준 레지스터라고
따로 레지스터가 존재한다. 이것을 통해 페이지 테이블들의 위치를 저장하고 있다.
페이지 테이블 매핑 방식
페이지 테이블이 운영체제 영역에 있을 수도 스왑 영역에 있을 수도 있다 이 위치에 따라 가상 주소를 물리 주소로 변환하는 방식도 달라진다.
직접 매핑
페이지 테이블 전체가 물리 메모리의 운영체제 영역에 존재하는 방식이다.
별다른 부가 작업 없이 바로 주소 변환이 가능해 직접 매핑이라고 부른다. 1개의 열이 존재한다.
연관 매핑
페이지 테이블 전체를 스왑 영역에서 관리하는 방식이다.
물리 메모리의 여유 공간이 작을 때 사용하는 방식으로, 전체를 스왑 영역에 저장하고 일부만 물리 메모리에 가지고 있다.
일부만 무작위로 배치하기 때문에 매핑 테이블에 페이지 번호와 매핑되는 프레임번호 2개의 열이 존재한다.
연관 매핑은 물리 메모리 내의 페이지 테이블을 다 검색하고 찾지 못한다면 스왑 영역에 있는 페이지 테이블을 검색한다.
그래서 시간을 많이 낭비하게 된다.
물리 메모리에 일부 테이블을 변환 색인 버퍼(Translation Look-aside Buffer)라고 부른다. 작동 방식이 캐시와 유사하다.
원하는 데이터가 변환 색인 버퍼에 있다면 TLB 히트, 없으면 TLB 미스라고 한다.
직접-연관 매핑
연관 매핑의 시간을 낭비하는 문제를 해결하는 방식이다.
모든 페이지 테이블을 스왑 영역에서 관리하고 일부만 물리 메모리로 가져오는 것은 동일하지만
페이지 테이블을 일정한 집합으로 자르고 자른 단위로 물리 메모리에 가져온다. 이렇게 하면 연관 매핑에서 무작위로 가져와 찾지 못하면 일일이 다 찾아봐야 하는 시간낭비를 줄일 수 있게 된다.
테이블을 일정한 집합으로 자른 것을 관리하는 페이지 테이블을 하나 더 생성한다. 이 집합 테이블에는
일정하게 자른 페이지 테이블이 물리 영역에 있는지 스왑 영역에 있는지에 대한 위치 정보를 표시한다
페이지 주소를 세분화한다. VA = <P1, P2, D>
p1은 집합 테이블에서의 위치 정보, p2는 묶음 내에서의 위치 정보를 뜻한다.
역매핑
앞의 세가지 매핑과 반대로 테이블을 구성한다.
물리 메모리의 영역들인 프레임이 어떤 페이지와 매핑돼있는지 프레임을 기준으로 테이블을 구성한다.
가장 큰 특징은 프로세스의 수와 상관없이 테이블이 하나만 존재한다는 것이다.
그래서 크기가 작다는 것이 장점이다. 하지만 프로세스가 가상 메모리에 접근할 때 프로세스 아이디와 페이지 번호를
모두 찾아야 하는 단점이 있다.
그래서 모든 테이블을 다 검색해봐야해서 속도가 느리다.
'운영체제' 카테고리의 다른 글
챕터8. 세그먼테이션-페이징 혼용 기법 (0) | 2022.09.17 |
---|---|
챕터 8. 3. 세그먼테이션 기법 (0) | 2022.09.16 |
챕터7. 다중 프로그래밍 환경에서의 메모리 할당 (0) | 2022.09.09 |
챕터7. 단일 프로그래밍 환경에서의 메모리 할당 (0) | 2022.09.09 |
챕터7. 2. 메모리 주소 (0) | 2022.09.09 |