[운영체제] 15. 가상 메모리와 페이징 기법
1. 가상 메모리 시스템
가상 메모리
• 물리 메모리 크기와 관계없이 프로세스에 큰 메모리 공간을 제공하는 기술
• 운영체제는 가상 메모리를 이용하여 프로세스가 물리 메모리 크기나 위치를 신경 쓰지 않고 사용할 수 있도록 함
가상 메모리의 크기와 주소
• 프로세스가 바라보는 메모리 영역과 메모리 관리자가 바라보는 메모리 영역으로 구분됨
• 가상 메모리는 부족한 물리 메모리 부분을 스왑 영역으로 보충하여 운영됨
가상 메모리의 크기
• 물리 메모리(실제 메모리)와 스왑 영역을 합한 크기가 가상 메모리의 전체 크기가 됨
동적 주소 변환(DAT; Dynamic Address Translation)
• 프로세스가 사용하는 가상 주소를 실제 물리 주소로 변환하는 과정
• 메모리 관리자는 물리 메모리를 나누고 사용자 프로세스를 배치하며 부족한 메모리를 처리하는 복잡한 문제를 해결함
2. 매핑 테이블의 필요성과 역할
매핑 테이블의 필요성(식당 예시)
• 식당에서 손님, 요리사, 관리자가 테이블 배정과 주문을 원활하게 처리하기 위해 매핑 테이블을 공유하는 것과 유사함
메모리 매핑 테이블
• 가상 메모리 시스템에서 가상 주소와 물리 주소를 일대일로 매핑하여 관리
• 가변 분할 방식: 세그먼테이션(Segmentation)
• 고정 분할 방식: 페이징(Paging)
• 페이지 매핑 테이블(Page Mapping Table) 또는 페이지 테이블(Page Table) 사용
• 세그먼테이션 매핑 테이블(Segmentation Mapping Table) 사용
지역성(locality)
• 특정 메모리 영역에 접근하는 패턴이 집중되는 성질
• 공간적 지역성(spatial locality): 가까운 데이터에 접근할 확률이 높음
• 시간적 지역성(temporal locality): 최근에 사용한 데이터가 다시 사용될 확률이 높음
• 순차적 지역성(sequential locality): 순서대로 진행되는 작업이 많음
3. 페이징 기법
페이징 기법의 구현
• 고정 분할 방식을 이용한 가상 메모리 관리 기법
• 물리 주소 공간을 동일 크기로 분할하여 사용
• 가상 주소는 프로세스 입장에서 0번지부터 시작
• 페이지(Page)와 프레임(Frame)으로 구분
- 페이지: 가상 주소를 일정 크기로 나눈 영역
- 프레임: 물리 메모리를 일정 크기로 나눈 영역
- 페이지와 프레임의 크기는 동일하여 어떤 페이지도 어떤 프레임에 배치 가능
- 매핑 정보는 페이지 테이블에 저장됨
페이징 기법의 주소 변환
• 가상 주소( VA = <P, D> ) → 물리 주소( PA = <F, D> )로 변환
• P: 페이지 번호, D: 페이지 내 오프셋
• 페이지 테이블을 이용해 P를 F로 변환
다양한 페이지 크기에서 가상 주소 변환 공식
• P = 가상 주소 / 페이지 크기의 몫
• D = 가상 주소 / 페이지 크기의 나머지
페이징 시스템 구성 예시
• 16bit CPU에서 한 페이지 크기가 1024B일 때, 가상 주소 공간은 65,536B
• 16bit 주소에서 6bit는 페이지 번호, 10bit는 페이지 내 오프셋으로 사용됨
• 전체 페이지 수: 64개, 프레임은 0~31번까지 존재
주소 변환 예시
• 가상 주소 980번지 → P = 0, D = 980 → 페이지 테이블에서 프레임 2에 매핑
• 물리 주소는 프레임 2의 시작 주소에서 980번 떨어진 위치
4. 페이지 테이블 관리
메모리 공유
• 각 프로세스마다 개별 페이지 테이블을 가지므로 관리가 복잡함
• 프로세스 수 증가 시 페이지 테이블 크기도 증가 → 메모리 공간 감소
• 페이지 테이블 크기를 적정하게 유지하는 것이 중요
물리 메모리 내 페이지 테이블의 구조
• 페이지 테이블의 시작 주소는 페이지 테이블 기준 레지스터(PTBR; Page Table Base Register)에 저장
• 물리 메모리가 부족할 경우 페이지 테이블 일부도 스왑 영역으로 이동 가능
쓰기 시점 복사(Copy on Write)
• 동일한 데이터를 여러 프로세스가 공유할 경우 불필요한 메모리 낭비 발생
• 데이터가 변경되기 전까지 복사를 미루어 메모리 절약
• 프레임을 공유하여 메모리 낭비를 최소화
이 내용은 휴넷사회복지평생교육원의 운영체제 강의를 듣고 정리한 것입니다.