페이징을 통한 가상 메모리 관리
프로세스를 메모리에 연속적으로
할당하는 방식은 이전 게시물을 통해
살펴본 외부 단편화 문제를 비롯하여
물리 메모리보다 큰 프로세스를
실행할 수 없다는 문제점이 있었다.
이러한 문제점들을 해결할 수 있는
개념들에 대해 알아보자
가상 메모리
가상 메모리(Virtual memeory)는
프로그램을 일부만 메모리에 적재하여
실제 물리 메모리보다 큰 프로세스를
실행할 수 있도록 하는 기술이다.
이러한 가상 메모리 관리 기법에는
페이징과 세그멘테이션이 있는데,
외부 단편화 문제도 해결할 수 있는
페이징 기법에 대해서 알아보자.
페이징
페이징(Paging)이란 메모리와 프로세스를
페이지라고 하는 일정한 단위로 자르고,
이를 메모리에 불연속적으로
할당하는 방식이다.
이전에 살펴본 외부 단편화의 원인은
각기 다른 크기의 프로세스가
메모리에 연속적으로 배치되었기 때문인데,
일정한 프로세스의 논리 주소 공간
크기 단위인 페이지(Page)와
메모리 물리 주소 공간
크기 단위인 프레임(Frame)을
적용함으로 외부 단편화 문제를 해결한다.
그리고 앞에서 살펴본 스와핑을
페이지 단위로 수행함으로
물리 메모리보다 더 큰 프로세스를
실행할 수 있게 된다.
페이징에서는 스왑 인/아웃을
페이징 인/아웃이라고 부르기도 한다.
페이지 테이블
페이징 기법을 사용하게 되면
프로세스가 메모리 내에
불연속적으로 배치된다.
이로 인해 CPU 입장에서
다음에 실행할 명령어 위치를
찾기가 어려워지는데,
이러한 문제를 해결하기 위해
페이지 테이블(Page table)을 이용한다.
페이지 테이블은 쉽게 말해
메모리 내에 흩어진 프로세스를
어떤 순서로 실행하면 되는지를
나타내는 이정표이다.
물리 주소로는 불연속적으로 배치된
프로세스일지라도, 논리 주소로는
연속적으로 배치될 수 있도록
어떤 페이지가 어떤 프레임에
배치되었는지를 알려준다.
PTBR
PTBR(Page Table Base Register)은
각 프로세스의 페이지 테이블이
적재된 메모리 주소를 가리킨다.
그러나, 페이지 테이블이 메모리에 적재되면
메모리 접근 시간이 두 배로
늘어나는 문제가 발생한다.
이를 해결하기 위해 TLB를 사용한다.
TLB
TLB(Transition Lookaside Buffer)는
CPU 옆에 놓인 페이지 테이블의
캐시 메모리로 페이지 테이블의
일부 내용이 저장되는 공간이다.
TLB 역시 캐시 메모리이기 때문에
참조 지역성에 근거해
TLB 히트와 미스를 이용하여
가져올 정보를 예측해 저장한다.
'개인 학습 > 운영체제' 카테고리의 다른 글
21 - 페이지 교체 (0) | 2023.02.13 |
---|---|
20 - 페이지 테이블 엔트리 (0) | 2023.02.13 |
18 - 메모리 할당 (0) | 2023.02.13 |
17 - 스와핑: 메모리 관리 기법 (0) | 2023.02.13 |
16 - 교착 상태 해결 방법 (0) | 2023.02.09 |