관리 메뉴

클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

가상 메모리 5 - 페이징의 이점과 계층적 페이징 본문

알고리즘 및 자료 관리/컴퓨터 구조 & 운영체제

가상 메모리 5 - 페이징의 이점과 계층적 페이징

huenuri 2024. 10. 18. 17:15

다시 힘을 내서 남은 1시간 동안 공부를 진행해보려고 한다. 이 내용은 가상 메모리 두 번째 장에 추가 내용으로 실려있었던 내용이었다. 혼자서 공부를 해보려다 너무 어려워서 포기했던 부분이었다. 마침 강의가 있으니 들으면서 정리해 볼 것이다.


 

 

 

 

페이징의 이점 - 쓰기 시 복사

외부 단편화 문제를 해결한다는 점 이외에도 페이징이 제공하는 이점은 다양하다. 대표적인 것이 프로세스 간에 페이지를 공유할 수 있다는 점이다. 대표적인 예시로 쓰기 복사가 있다.

 

 

 

 

 

 


 

 

 

 

계층적 페이징

 

여러 단계의 페이지를 둔다는 점에서 다단계 페이지 테이블 기법이라고도 부른다. 프로세스의 페이지 테이블을 여러 개의 페이지로 자르고, 바깥쪽 페이지 테이블을 하나 더 두어 잘린 페이지의 테이블의 페이지들을 가리키게 하는 방식이다.

한 페이지의 테이블이 위와 같다고 가정해보자. 계층적 페이징 기법을 사용하지 않으면 이 프로세스 테이블은 전체가 메모리에 있어야 한다.

 

 

 

페이지 테이블을 계층적으로 구성하면 모든 페이지 테이블을 항상 메모리에 유지할 필요가 없다. 페이지 테이블 중 몇 개는 보조기억장치에 있어도 무방하며, 추후 해당 페이지 테이블을 참조해야 할 때가 있으면 그때 메모리에 적재하면 그만이다. 

 

 

논리 주소를 토대로 주소 변환은 다음과 같이 이루어진다.

바깥 페이지 번호에 해당하는 항목은 CPU와 근접한 곳에 위치한 페이지 테이블 엔트리를 가리키고, 안쪽 페이지 번호는 첫 번째 페이지 테이블 바깥에 위치한 두 번째 페이지 테이블, 즉 페이지 테이블의 페이지 번호를 가리킨다.

 

위에서는 두 개의 계츤으로 페이지 테이블을 구성하는(2단계 페이징) 예시를 들었으나 페이지 테이블의 계층은 세 개, 네 개, 그 이상의 계층으로도 구성될 수 있다. 다만 페이지 테이블의 계층이 늘어날수록 페이지 참조 횟수가 많아지므로 계층이 많다고 해서 반드시 좋다고 볼 수는 없다.

 


 

 

 

학습을 마치고

무슨 내용인지 잘은 모르겠지만 그래도 책에 있는 내용을 건너뛰고 넘어가는 것이 좀 걸렸는데 학습을 하길 잘했다는 생각이 든다. 조금 전에는 정말 공부가 하기 싫었으나 그래도 이기고 다시 시작해 보니 할 만 해졌다. 언제나 이런 순간들이 있다. 사실 공부는 재미있는 건 아니다. 이전에 몰랐던 지식들을 머릿속에 넣는 거라 힘들기도 하고 답답하기도 하니까.

하지만 운동도 그렇고 자신의 한계를 뛰어넘어야 나의 지경과 수준이 높아질 수 있다. 어떤 일이 쉽고 재미있기만 하다면 난 그 일을 진짜로 제대로 하고 있지 않은 것이다. 힘들고 고통스러울 때 인간은 더욱 성장한다.

 

마치 상처가 난 후에 새 살이 돗는 것처럼 말이다. 이제 얼마 남지 않았으니 끝까지 마쳐볼 것이다.